%PDF- %PDF-
Direktori : /usr/share/vim/vim91/doc/ |
Current File : //usr/share/vim/vim91/doc/version9.txt |
*version9.txt* For Vim version 9.1. Last change: 2024 Jan 05 VIM REFERENCE MANUAL by Bram Moolenaar *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 the Vim9 script syntax is here! 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: > :version NEW FEATURES |new-9| Vim script enhancements |new-vim-script-9| Command line completion in a popup menu |new-popup-compl| Updated colorschemes |new-colorschemes-9| Various new items |new-items-9| INCOMPATIBLE CHANGES |incompatible-9| IMPROVEMENTS |improvements-9| COMPILE TIME CHANGES |compile-changes-9| PATCHES |patches-9| VERSION 9.1 |version-9.1| Changed |changed-9.1| Added |added-9.1| Patches |patches-9.1| See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0. See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and |version8.txt| for differences between Vim versions. 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 remember him! *Bram* *Moolenaar* *Bram-Moolenaar* Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd 2023 while still working full-time on Vim. The Vim project would not exist without his ongoing passion to lead and develop Vim and the community for more than 30 years. Bram was also passionate about his |ICCF| foundation to help children in Uganda. If you enjoy using Vim, please consider donating! We will miss his guidance, passion and leadership. Obituary Articles: https://github.com/vim/vim/discussions/12742 Say Farewell: https://github.com/vim/vim/discussions/12737 ============================================================================== NEW FEATURES *new-9* First an overview of the more interesting new features. A comprehensive list is below. Vim9 script ~ *new-vim-script-9* The Vim script language has been changed step by step over many years, preserving backwards compatibility. Several choices made in the early days got in the way of making it work better. At the same time, Vim script is being used much more often, since there are so many plugins being used. Vim9 script provides a syntax that is much more similar to other languages. In other words: "less weird". Compiled functions are introduced which allow for a large speed improvement. You can expect around ten times faster execution, or even more. The price to pay is that Vim9 script is not backwards compatible. But don't worry, you can still use your old scripts, the new script language is added, it does not replace the legacy script. Information about Vim9 script can be found in the |Vim9| help file. Command line completion in a popup menu ~ *new-popup-compl* Before there was the 'wildmenu' option, which uses the space of one line above the statusline to show matches. Only a few matches fit there. Now a popup menu can be used by setting 'wildoptions' to "pum". This allows for showing many more matches. This requires redrawing more of the display, but since computers are fast enough that is not a problem. Updated colorschemes ~ *new-colorschemes-9* Colorschemes from https://github.com/vim/colorschemes have been included. They were made to work consistently across many types of terminals. Although generally an improvement, a lot of personal preference is involved. You can always get the old version if you prefer it, look here: https://github.com/vim/colorschemes/blob/master/legacy_colors/ Various new items ~ *new-items-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 'xtermcodes' request terminal codes from an xterm Ex commands: ~ |:abstract| (reserved for future use) |:argdedupe| remove duplicates from the argument list |:balt| like ":badd" but also set the alternate file |:class| (reserved for future use) |:def| define a Vim9 user function |:defcompile| compile Vim9 user functions in current script |:disassemble| disassemble Vim9 user function |:echoconsole| like :echomsg but write to stdout |:endinterface| (reserved for future use) |:endclass| (reserved for future use) |:enddef| end of a user function started with :def |:endenum| (reserved for future use) |:enum| (reserved for future use) |:eval| evaluate an expression and discard the result |:export| Vim9: export an item from a script |:final| declare an immutable variable in Vim9 |:import| Vim9: import an item from another script |:interface| (reserved for future use) |:static| (reserved for future use) |:type| (reserved for future use) |:var| variable declaration in Vim9 |:vim9script| indicates Vim9 script file Ex command modifiers: ~ |:legacy| make following command use legacy script syntax |:vim9cmd| make following command use Vim9 script syntax 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 |charidx()| character index of a byte in a string |digraph_get()| get digraph |digraph_getlist()| get all digraphs |digraph_set()| register digraph |digraph_setlist()| register multiple digraphs |echoraw()| output characters as-is |exists_compiled()| like exists() but check at compile time |extendnew()| make a new Dictionary and append items |flatten()| flatten a List |flattennew()| flatten a copy of a List |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 |getcmdscreenpos()| return the current cursor position in the cmdline |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 |matchfuzzypos()| fuzzy matches a string in a list of strings |menu_info()| get information about a menu item |popup_list()| get list of all popup window IDs |prompt_getprompt()| get the effective prompt text for a buffer |prop_add_list()| attach a property at multiple positions |prop_find()| search for a property |readblob()| read a file into a Blob |readdirex()| get a List of file information in a directory |reduce()| reduce a List to a value |searchcount()| get number of matches before/after the cursor |setcellwidths()| set character cell width overrides |setcharpos()| set character position of cursor, mark, etc. |setcursorcharpos()| set character position of the cursor |slice()| take a slice of a List |strcharlen()| length of a string in characters |terminalprops()| properties of the terminal |test_gui_event()| generate a GUI event for testing |test_null_function()| return a null Funcref |test_srand_seed()| set the seed value for srand() |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 |windowsversion()| get MS-Windows version New Vim variables: ~ |v:numbermax| maximum value of a number |v:numbermin| minimum value of a number (negative) |v:numbersize| number of bits in a Number |v:collate| current locale setting for collation order |v:exiting| vim exit code |v:colornames| dictionary that maps color names to hex color strings |v:sizeofint| number of bytes in an int |v:sizeoflong| number of bytes in a long |v:sizeofpointer| number of bytes in a pointer |v:maxcol| maximum line length New autocommand events: ~ |CompleteDonePre| after Insert mode completion done, before clearing info |DirChangedPre| before the working directory will change |InsertLeavePre| just before leaving Insert mode |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 operators: ~ |>>| bitwise right shift |<<| bitwise left shift |??| falsy operator New runtime files: ~ Too many to list here. ============================================================================== INCOMPATIBLE CHANGES *incompatible-9* There is only one change that is incompatible with previous releases: - Lua arrays are now one-based, they used to be zero-based. Note that when using |Vim9| script several things work differently, see |vim9-differences|. ============================================================================== IMPROVEMENTS *improvements-9* Various small and useful improvements have been made since Vim 8.2, here is a summary. Many memory leaks, invalid memory accesses and crashes have been fixed. See the list of patches below: |bug-fixes-9|. Support for Vim expression evaluation in a string. |interpolated-string| Support for evaluating Vim expressions in a heredoc. |:let-heredoc| Support for fuzzy matching: - a string in a List of strings. |fuzzy-matching| - completion support for command line completion using 'wildoptions'. - for |:vimgrep|. Added support for the |Haiku| OS. Support for "lsp" channel mode to simplify LSP server RPC communication |language-server-protocol|. Support for using a Unix domain socket with a |channel|. IPv6 support in channels |channel-address|. Support for sourcing lines from the current buffer. |:source-range| Terminal window improvements: - Support for opening a terminal in a popup window. |popup-terminal| - Allow setting underline color in terminal. - Detect focus events in terminal (|FocusGained| and |FocusLost|). - Add bell support for the terminal window. ('belloff') - Support mouse left-right scrolling in a terminal window. Support for stopping profiling a Vim script: `:profile stop` and dumping the report to a file: `:profile dump` . |:profile| Completion improvements: - Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|, |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands. - Support using any Vim type for user_data with the completion functions (|complete-items|). - Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|). - Add the "cmdline" option to |getcompletion()| to return the command line arguments. Support for setting the 'foldtext', 'completefunc', 'omnifunc', 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc', 'imactivatefunc' and 'imstatusfunc' options to a function reference or a lambda function or a script-local function. Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr', 'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', 'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function. Improvements in 'fillchars': - Support for configuring the character used to mark the beginning of a fold, show a closed fold and show a fold separator using "foldopen", "foldclose" and "foldsep" respectively in 'fillchars'. - Support for configuring the character displayed in non existing lines using "eob" in 'fillchars'. - Support for using multibyte items with the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items in the 'fillchars' option. Support for the XChaCha20 encryption method. 'cryptmethod' Spell checking: - Spell check current word with |z=| even when 'spell' is off. - Add "timeout" to 'spellsuggest' to limit the searching time for spell suggestions. - Add support for spell checking CamelCased words by adding "camel" to 'spelloptions'. Support for executing Ex commands in a map without changing the current mode |<Cmd>| and |<ScriptCmd>|. Add optional error code to |:cquit|. Recognize numbers as unsigned when "unsigned" is set in 'nrformats'. Expand script ID using expand('<SID>') and script name using expand('<script>'). |expand()| Jump to the last accessed tab page using |g<Tab>| and support using the last accessed tab page in |:tabnext| et al. Locale aware sorting using |:sort| and |sort()|. Hide cursor when sleeping using |:sleep!|. Add "multispace" to 'listchars' to show two or more spaces no matter where they appear. Add "leadmultispace" to 'listchars' to show two or more leading spaces. Add "lead" to 'listchars' to set the character used to show leading spaces. Support specifying a character using the hexadecimal notation in 'listchars' (\x, \u and \U). Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options. 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 the 'P' command in visual mode to paste text in Visual mode without yanking the deleted text to the unnamed register. |put-Visual-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 the |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. Add support for logging on Vim startup (|--log|). Add support for customizing the quickfix buffer contents using 'quickfixtextfunc'. Support for the "note" error type (%t) in |errorformat|. Add support for parsing the end line number (%e) and end column number (%k) using 'errorformat'. Support truncating the tag stack using |settagstack()|. Display every option in a separate line when "!" is used with |:set|. Add "nostop" to 'backspace' to allow backspacing over the start of insert for |CTRL-W| and |CTRL-U| also. Sync the undo file if 'fsync' is set. Support excluding the 'runtimepath' and 'packpath' options from a session file using "skiprtp" in 'sessionoptions'. Support for getting the number of lines (line count) in a buffer using |getbufinfo()|. Support |filter()| and |map()| for blob and string types. Support for using a multi-byte character for the tag kind. |tags-file-format| Add support for checking whether a function name is valid using |exists()|. Update xdiff to version 2.33. Update libvterm to revision 789. Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc. Add the |t_AU| and |t_8u| termcap codes for underline and undercurl. Add the t_fd and t_fe termcap codes for detecting focus events. Support for indenting C pragmas like normal code. (|cino-P|) Add support for defining the syntax fold level. (|:syn-foldlevel|) Add support for using \<*xxx> in a string to prepend a modifier to a character. (|expr-quote|) Add support trimming characters at the beginning or end of a string using |trim()|. Make ":verbose pwd" show the scope of the directory. |:pwd-verbose| Add the "0o" notation for specifying octal numbers. |scriptversion-4| Support for changing to the previous tab-local and window-local directories using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|) Add support for skipping an expression using |search()|. Add support for sorting the directory contents returned by the |readdir()| and |readdirex()| functions by case. Add support for executing (|:@|) a register containing line continuation. Lua support: - Call Vim functions from Lua (vim.call() and vim.fn()). - Convert a Lua function and a closure to a Vim funcref so that it can be accessed in a Vim script (|lua-funcref|). - Not backwards compatible: Make Lua arrays one based. - Add support for using table.insert() and table.remove() functions with Vim lists. - Support for running multiple Ex-mode commands using vim.command(). - Add vim.lua_version to get the Lua version. - Add support for accessing Vim namespace dictionaries from Lua (|lua-vim-variables|). Support for new UTF-8 characters from Unicode release 13. Support for using a command block (|:command-repl|) when defining a |:command| or an |:autocmd|. Support for using |:z!| to use the Vim display height instead of the current window height. Support for deleting a buffer-local command using ":delcommand -buffer {cmd}". When formatting a // comment after a statement, find the start of the line comment, insert the comment leader and indent the comment properly (|fo-/|). Add the "numhl" argument to `:sign define` to use a separate highlight group for the line number on a line where a sign is placed. |:sign-define| When $SHELL ends in "nologin" or "false", start Vim in restricted mode. TermDebug enhancements: - Support for showing the disassembled code in a separate window. - Support for the GDB until command. - Use a separate group for the signs. xxd: Support for showing offset as a decimal number (-d). The C omni-complete plugin (|ft-c-omni|), the file type detection script (ft.vim) and the syntax menu generation script (makemenu.vim) have been rewritten using the Vim9 script syntax. 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. Many Coverity static analysis warnings have been fixed. ============================================================================== COMPILE TIME CHANGES *compile-changes-9* The following features are now enabled in all the builds: |+cindent| |+jumplist| |+lispindent| |+num64| |+smartindent| |+tag_binary| |+title| The following features have been removed. They are either obsolete or didn't work properly: - Athena and neXTaw GUI support (use Motif instead) - EBCDIC support - Atari MiNT and BeOS - Mac Carbon GUI (use MacVim instead) The rgb.txt file is no longer included, use colors/lists/default.vim instead. Several large source files were split, mainly to make it easier to inspect code coverage information. Source files have also been refactored for maintainability. Support for building Vim with Mingw64 clang compiler on MS-Windows. Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and Ruby 3.1.0. ============================================================================== PATCHES *patches-9* *bug-fixes-9* *patches-after-8.2* The list of patches that got included since 8.2.0. This includes all the new features, but does not include runtime file changes (syntax, indent, help, etc.) Patch 8.2.0001 Problem: #endif comments do not reflect corresponding #ifdef. Solution: Update the comments. (Rene Nyffenegger, closes #5351) Files: src/ui.c Patch 8.2.0002 Problem: "dj" only deletes first line of closed fold. Solution: Adjust last line of operator for linewise motion. (closes #5354) Files: src/ops.c, src/testdir/test_fold.vim Patch 8.2.0003 Problem: Build file dependencies are incomplete. Solution: Fix the dependencies. (Ken Takata, closes #5356) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile Patch 8.2.0004 Problem: Get E685 and E931 if buffer reload is interrupted. Solution: Do not abort deleting a dummy buffer. (closes #5361) Files: src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim, src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c, src/window.c, src/vim.h Patch 8.2.0005 Problem: Duplication in version info. Solution: Use preprocessor string concatenation. (Ken Takata, closes #5357) Files: src/version.h Patch 8.2.0006 Problem: Test using long file name may fail. (Vladimir Lomov) Solution: Limit the name length. (Christian Brabandt, closes #5358) Files: src/testdir/test_display.vim Patch 8.2.0007 Problem: Popup menu positioned wrong with folding in two tabs. Solution: Update the cursor line height. (closes #5353) Files: src/move.c, src/proto/move.pro, src/popupmenu.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_pum_with_folds_two_tabs.dump Patch 8.2.0008 Problem: Test72 is old style. Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5362) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test72.in, src/testdir/test72.ok, src/testdir/test_undo.vim Patch 8.2.0009 Problem: VMS: terminal version doesn't build. Solution: Move MIN definition. Adjust #ifdefs. (Zoltan Arpadffy) Files: src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms Patch 8.2.0010 Problem: Test64 is old style. Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5363) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test64.in, src/testdir/test64.ok, src/testdir/test95.in, src/testdir/test_regexp_latin.vim Patch 8.2.0011 Problem: Screen updating wrong when opening preview window. Solution: Redraw the window when the preview window opens. Files: src/popupmenu.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_pum_with_preview_win.dump Patch 8.2.0012 Problem: Some undo functionality is not tested. Solution: Add a few more test cases. (Dominique Pellé, closes #5364) Files: src/testdir/test_undo.vim Patch 8.2.0013 Problem: Not using a typedef for condstack. Solution: Add a typedef. Files: src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c, src/ex_cmds.h, src/proto/ex_eval.pro Patch 8.2.0014 Problem: Test69 and test95 are old style. Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5365) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test69.in, src/testdir/test69.ok, src/testdir/test95.in, src/testdir/test95.ok, src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim Patch 8.2.0015 Problem: Not all modeline variants are tested. Solution: Add modeline tests. (Dominique Pellé, closes #5369) Files: src/testdir/test_modeline.vim Patch 8.2.0016 Problem: Test name used twice, option not restored properly. Solution: Rename function, restore option with "&". Files: src/testdir/test_textformat.vim Patch 8.2.0017 Problem: OS/2 and MS-DOS are still mentioned, even though support was removed long ago. Solution: Update documentation. (Yegappan Lakshmanan, closes #5368) Files: runtime/doc/autocmd.txt, runtime/doc/change.txt, runtime/doc/cmdline.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt, runtime/doc/options.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/repeat.txt, runtime/doc/starting.txt, runtime/doc/usr_01.txt, runtime/doc/usr_05.txt, runtime/doc/usr_41.txt, runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim, runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h Patch 8.2.0018 Problem: :join does not add white space where it should. (Zdenek Dohnal) Solution: Handle joining multiple lines properly. Files: src/ops.c, src/testdir/test_join.vim Patch 8.2.0019 Problem: Cannot get number of lines of another buffer. Solution: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto, closes #5370) Files: src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim, runtime/doc/eval.txt Patch 8.2.0020 Problem: Mouse clicks in the command line not tested. Solution: Add tests. (Dominique Pellé, closes #5366) Files: src/testdir/test_termcodes.vim Patch 8.2.0021 Problem: Timer test fails too often on Travis with macOS. Solution: Be less strict with the time. Files: src/testdir/test_timers.vim Patch 8.2.0022 Problem: Click in popup window doesn't close it in the GUI. (Sergey Vlasov) Solution: When processing the selection also send a button release event. (closes #5367) Files: src/gui.c Patch 8.2.0023 Problem: Command line editing not sufficiently tested. Solution: Add more tests. (Dominique Pellé, closes #5374) Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim Patch 8.2.0024 Problem: Filetype Rego not recognized. Solution: Add *.rego. (Matt Dunford, closes #5376) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0025 Problem: Repeated word in comment. Solution: Remove one. (Rene Nyffenegger, closes #5384) Files: src/structs.h Patch 8.2.0026 Problem: Still some /* */ comments. Solution: Convert to // comments. Files: src/message.c, src/message_test.c, src/misc1.c, src/misc2.c, src/move.c Patch 8.2.0027 Problem: Still some /* */ comments. Solution: Convert to // comments. Files: src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c, src/version.c Patch 8.2.0028 Problem: Searchpairpos() is not tested. Solution: Add tests. Also improve searchpair() testing. (Dominique Pellé, closes #5388) Files: src/testdir/test_search.vim Patch 8.2.0029 Problem: MS-Windows: crash with empty job command. Solution: Check for NULL result. (Yasuhiro Matsumoto, closes #5390) Files: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0030 Problem: "gF" does not work on output of "verbose command". Solution: Recognize " line " and translations. (closes #5391) Files: src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim Patch 8.2.0031 (after 8.2.0029) Problem: MS-Windows: test for empty job fails Solution: Check for error message, make it also fail on Unix. Files: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0032 (after 8.2.0031) Problem: MS-Windows: test for blank job fails Solution: Check before escaping. Files: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0033 Problem: Crash when make_extmatch() runs out of memory. Solution: Check for NULL. (Dominique Pellé, closes #5392) Files: src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.0034 Problem: Missing check for out of memory. Solution: Check for NULL after vim_strsave(). (Dominique Pellé, closes #5393) Files: src/filepath.c Patch 8.2.0035 Problem: Saving and restoring called_emsg is clumsy. Solution: Count the number of error messages. Files: src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c, src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c, src/regexp.c, src/search.c, src/testing.c, src/globals.h Patch 8.2.0036 Problem: Not enough test coverage for match functions. Solution: Add a few more test cases. (Dominique Pellé, closes #5394) Add error number. Files: src/testdir/test_match.vim Patch 8.2.0037 Problem: Missing renamed message. Solution: Now really add the error number. Files: src/highlight.c Patch 8.2.0038 Problem: Spell suggestions insufficiently tested. Solution: Add spell suggestion tests. (Dominique Pellé, closes #5398) Files: src/testdir/test_spell.vim Patch 8.2.0039 Problem: Memory access error when "z=" has no suggestions. Solution: Check for negative index. Files: src/testdir/test_spell.vim, src/spellsuggest.c Patch 8.2.0040 Problem: Timers test is still flaky on Travis for Mac. Solution: Run separately instead of as part of test_alot. Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim Patch 8.2.0041 Problem: Leaking memory when selecting spell suggestion. Solution: Free previous value at the right time. Files: src/spellsuggest.c Patch 8.2.0042 Problem: Clearing funccal values twice. Solution: Remove clearing individual fields. Files: src/userfunc.c Patch 8.2.0043 Problem: Timers test is still flaky on Travis for Mac. Solution: Increase maximum expected time. Files: src/testdir/test_timers.vim Patch 8.2.0044 Problem: Expression type is used inconsistently. Solution: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename "TYPE_" to "ETYPE_" to avoid confusion. Files: src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c Patch 8.2.0045 (after 8.2.0044) Problem: Script test fails. Solution: For numbers "is" and "isnot" work like "==" and "!=". Files: src/eval.c Patch 8.2.0046 Problem: Tests for spell suggestions are slow. Solution: Use shorter words. Test with latin1 and utf-8 to cover more code. (Dominique Pellé, closes #5399) Files: src/testdir/test_spell.vim Patch 8.2.0047 Problem: Cannot skip tests for specific MS-Windows platform. Solution: Add windowsversion(). Files: src/os_win32.c, src/globals.h, src/evalfunc.c, runtime/doc/eval.txt, src/testdir/gen_opt_test.vim, src/testdir/test_options.vim Patch 8.2.0048 Problem: Another timers test is flaky on Travis for Mac. Solution: Increase maximum expected time. Files: src/testdir/test_timers.vim Patch 8.2.0049 Problem: Command line completion not fully tested. Solution: Add more test cases. Make help sorting stable. (Dominique Pellé, closes #5402) Files: src/ex_cmds.c, src/testdir/test_cd.vim, src/testdir/test_cmdline.vim, src/testdir/test_help.vim, src/testdir/test_menu.vim, src/testdir/test_options.vim, src/testdir/test_syntax.vim Patch 8.2.0050 Problem: After deleting a file mark it is still in viminfo. Solution: When a file mark was deleted more recently than the mark in the merged viminfo file was updated, do not store the mark. (Pavol Juhas, closes #5401, closes #1339) Files: src/mark.c, src/testdir/test_marks.vim, src/testdir/test_viminfo.vim, src/viminfo.c Patch 8.2.0051 (after 8.2.0049) Problem: Command line completion test skipped. (Christian Brabandt) Solution: Invert condition. Files: src/testdir/test_cmdline.vim Patch 8.2.0052 Problem: More-prompt not properly tested. Solution: Add a test case. (Dominique Pellé, closes #5404) Files: src/testdir/test_messages.vim Patch 8.2.0053 Problem: windowsversion() does not always return the right value. Solution: Add a compatibility section in the manifest. (Ken Takata, closes #5407) Files: src/gvim.exe.mnf Patch 8.2.0054 Problem: :diffget and :diffput don't have good completion. Solution: Add proper completion. (Dominique Pellé, closes #5409) Files: runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c, src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h Patch 8.2.0055 Problem: Cannot use ":gui" in vimrc with VIMDLL enabled. Solution: Change the logic, check "gui.starting". (Ken Takata, closes #5408) Files: src/gui.c Patch 8.2.0056 Problem: Execution stack is incomplete and inefficient. Solution: Introduce a proper execution stack and use it instead of sourcing_name/sourcing_lnum. Create a string only when used. Files: src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c, src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro, src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c, src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c, src/kword_test.c, src/testdir/test_debugger.vim Patch 8.2.0057 (after 8.2.0056) Problem: Cannot build with small features. Solution: Add #ifdefs. Files: src/scriptfile.c Patch 8.2.0058 Problem: Running tests changes ~/.viminfo. Solution: Make 'viminfo' empty when summarizing tests results. (closes #5414) Files: src/testdir/summarize.vim Patch 8.2.0059 Problem: Compiler warnings for unused variables in small build. (Tony Mechelynck) Solution: Add #ifdef. Files: src/scriptfile.c Patch 8.2.0060 Problem: Message test only runs with one encoding. (Dominique Pellé) Solution: Run the test with "utf-8" and "latin1". Fix underflow. (related to #5410) Files: src/message_test.c, src/message.c Patch 8.2.0061 Problem: The execute stack can grow big and never shrinks. Solution: Reduce the size in garbage collect. Files: src/eval.c Patch 8.2.0062 Problem: Memory test is flaky on FreeBSD. Solution: Add a short sleep before getting the first size. Files: src/testdir/test_memory_usage.vim Patch 8.2.0063 Problem: Wrong size argument to vim_snprintf(). (Dominique Pellé) Solution: Reduce the size by the length. (related to #5410) Files: src/ops.c Patch 8.2.0064 Problem: Diffmode completion doesn't use per-window setting. Solution: Check if a window is in diff mode. (Dominique Pellé, closes #5419) Files: src/buffer.c, src/testdir/test_diffmode.vim Patch 8.2.0065 Problem: Amiga and alikes: autoopen only used on Amiga OS4. Solution: Adjust #ifdefs. (Ola Söder, closes #5413) Files: src/os_amiga.c Patch 8.2.0066 Problem: Some corners of vim_snprintf() are not tested. Solution: Add a test in C. (Dominique Pellé, closes #5422) Files: src/message_test.c Patch 8.2.0067 Problem: ERROR_UNKNOWN clashes on some systems. Solution: Rename ERROR_ to FCERR_. (Ola Söder, closes #5415) Files: src/evalfunc.c, src/userfunc.c, src/vim.h Patch 8.2.0068 Problem: Crash when using Python 3 with "utf32" encoding. (Dominique Pellé) Solution: Use "utf-8" whenever enc_utf8 is set. (closes #5423) Files: src/testdir/test_python3.vim, src/if_py_both.h Patch 8.2.0069 Problem: ETYPE_ is used for two different enums. Solution: Rename one to use EXPR_. Files: src/structs.h, src/eval.c, src/debugger.c Patch 8.2.0070 Problem: Crash when using Python 3 with "debug" encoding. (Dominique Pellé) Solution: Use "euc-jp" whenever enc_dbcs is set. Files: src/testdir/test_python3.vim, src/if_py_both.h Patch 8.2.0071 Problem: Memory test often fails on Cirrus CI. Solution: Allow for more tolerance in the upper limit. Remove sleep. Files: src/testdir/test_memory_usage.vim Patch 8.2.0072 (after 8.2.0071) Problem: Memory test still fails on Cirrus CI. Solution: Allow for a tiny bit more tolerance in the upper limit. Files: src/testdir/test_memory_usage.vim Patch 8.2.0073 Problem: Initializing globals with COMMA is clumsy. Solution: Use INIT2(), INIT3(), etc. Files: src/vim.h, src/globals.h Patch 8.2.0074 Problem: Python 3 unicode test sometimes fails. Solution: Make 'termencoding' empty. Correct number of error message. Files: src/change.c, runtime/doc/options.txt, runtime/doc/message.txt, src/testdir/test_python3.vim Patch 8.2.0075 Problem: Python 3 unicode test still sometimes fails. Solution: Skip the test when 'termencoding' is not empty. Files: src/testdir/test_python3.vim Patch 8.2.0076 Problem: Python 3 unicode test fails on MS-Windows. Solution: Do not set 'encoding' to "debug" on MS-Windows. Files: src/testdir/test_python3.vim Patch 8.2.0077 Problem: settagstack() cannot truncate at current index. Solution: Add the "t" action. (Yegappan Lakshmanan, closes #5417) Files: runtime/doc/eval.txt, src/evalfunc.c, src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.0078 Problem: Expanding <sfile> works differently the second time. Solution: Keep the expanded name when redefining a function. (closes #5425) Files: src/testdir/test_vimscript.vim, src/userfunc.c Patch 8.2.0079 Problem: Python 3 unicode test still fails on MS-Windows. Solution: Do not set 'encoding' to "euc-tw" on MS-Windows. Files: src/testdir/test_python3.vim Patch 8.2.0080 Problem: Globals using INIT4() are not in the tags file. Solution: Adjust the tags command. Files: src/configure.ac, src/auto/configure Patch 8.2.0081 Problem: MS-Windows also need the change to support INIT4(). Solution: Add the ctags arguments. (Ken Takata) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0082 Problem: When reusing a buffer listeners are not cleared. (Axel Forsman) Solution: Clear listeners when reusing a buffer. (closes #5431) Files: src/testdir/test_listener.vim, src/buffer.c Patch 8.2.0083 Problem: Text properties wrong when tabs and spaces are exchanged. Solution: Take text properties into account. (Nobuhiro Takasaki, closes #5427) Files: src/edit.c, src/testdir/test_textprop.vim Patch 8.2.0084 Problem: Complete item "user_data" can only be a string. Solution: Accept any type of variable. (closes #5412) Files: src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c, src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt Patch 8.2.0085 Problem: Dead code in builtin functions. Solution: Clean up the code. Files: src/evalvars.c, src/sound.c, src/textprop.c Patch 8.2.0086 (after 8.2.0084) Problem: Build error for small version. (Tony Mechelynck) Solution: Only use "user_data" with the +eval feature. Remove unused variable. Files: src/insexpand.c, src/dict.c Patch 8.2.0087 Problem: Crash in command line expansion when out of memory. Solution: Check for NULL pointer. Also make ExpandGeneric() static. (Dominique Pellé, closes #5437) Files: src/cmdexpand.c, src/proto/cmdexpand.pro Patch 8.2.0088 Problem: Insufficient tests for tags; bug in using extra tag field when using an ex command to position the cursor. Solution: Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439) Files: runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim Patch 8.2.0089 Problem: Crash when running out of memory in :setfiletype completion. Solution: Do not allocate memory. (Dominique Pellé, closes #5438) Files: src/cmdexpand.c Patch 8.2.0090 Problem: Generated files show up in git status. Solution: Ignore a few more files. Files: .gitignore Patch 8.2.0091 Problem: Compiler warnings for size_t / int types. Solution: Change type to size_t. (Mike Williams) Files: src/scriptfile.c Patch 8.2.0092 Problem: Tags functionality insufficiently tested. Solution: Add more tags tests. (Yegappan Lakshmanan, closes #5446) Files: src/testdir/test_tagjump.vim Patch 8.2.0093 Problem: win_splitmove() can make Vim hang. Solution: Check windows exists in the current tab page. (closes #5444) Files: src/testdir/test_window_cmd.vim, src/evalwindow.c Patch 8.2.0094 Problem: MS-Windows: cannot build with Strawberry Perl 5.30. Solution: Define __builtin_expect() as a workaround. (Ken Takata, closes #5267) Files: src/if_perl.xs Patch 8.2.0095 Problem: Cannot specify exit code for :cquit. Solution: Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442) Files: runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_quickfix.vim Patch 8.2.0096 Problem: Cannot create tiny popup window in last column. (Daniel Steinberg) Solution: Remove position limit. (closes #5447) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_20.dump, src/testdir/dumps/Test_popupwin_21.dump Patch 8.2.0097 Problem: Crash with autocommand and spellfile. (Tim Pope) Solution: Do not pop exestack when not pushed. (closes #5450) Files: src/testdir/test_autocmd.vim, src/spellfile.c Patch 8.2.0098 Problem: Exe stack length can be wrong without being detected. Solution: Add a check when ABORT_ON_INTERNAL_ERROR is defined. Files: src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c, src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c, src/userfunc.c Patch 8.2.0099 Problem: Use of NULL pointer when out of memory. Solution: Check for NULL pointer. (Dominique Pellé, closes #5449) Files: src/cmdexpand.c Patch 8.2.0100 Problem: Macros for Ruby are too complicated. Solution: Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata, closes #5452) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/configure.ac, src/if_ruby.c Patch 8.2.0101 Problem: Crash when passing null object to ":echomsg". Solution: Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460) Files: src/eval.c, src/testdir/test_messages.vim Patch 8.2.0102 Problem: Messages test fails in small version. Solution: Only use test_null_job() when available. Files: src/testdir/test_messages.vim Patch 8.2.0103 Problem: Using null object with execute() has strange effects. Solution: Give an error message for Job and Channel. Files: src/testdir/test_execute_func.vim, src/globals.h, src/eval.c, src/evalfunc.c Patch 8.2.0104 Problem: Using channel or job with ":execute" has strange effects. Solution: Give an error message for Job and Channel. Files: src/testdir/test_eval_stuff.vim, src/eval.c Patch 8.2.0105 Problem: Vim license not easy to find on github. Solution: Add a separate LICENCE file. (closes #5458) Files: LICENSE, Filelist Patch 8.2.0106 Problem: Printf formats are not exactly right. Solution: Adjust signed/unsigned conversions. (Frazer Clews, closes #5456) Files: runtime/tools/ccfilter.c, src/libvterm/src/parser.c, src/libvterm/src/pen.c, src/ui.c Patch 8.2.0107 Problem: Hgignore is out of sync from gitignore. Solution: Add lines to hgignore. (Ken Takata) Files: .hgignore Patch 8.2.0108 Problem: When sign text is changed a manual redraw is needed. (Pontus Lietzler) Solution: Redraw automatically. (closes #5455) Files: src/testdir/test_signs.vim, src/sign.c, src/testdir/dumps/Test_sign_cursor_1.dump, src/testdir/dumps/Test_sign_cursor_2.dump, src/testdir/dumps/Test_sign_cursor_3.dump, src/testdir/dumps/Test_sign_cursor_01.dump, src/testdir/dumps/Test_sign_cursor_02.dump Patch 8.2.0109 Problem: Corrupted text properties when expanding spaces. Solution: Reallocate the line. (Nobuhiro Takasaki, closes #5457) Files: src/edit.c, src/testdir/test_textprop.vim Patch 8.2.0110 Problem: prop_find() is not implemented. Solution: Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970) Files: src/evalfunc.c, src/proto/textprop.pro, src/testdir/test_textprop.vim, src/textprop.c, runtime/doc/textprop.txt Patch 8.2.0111 Problem: VAR_SPECIAL is also used for booleans. Solution: Add VAR_BOOL for better type checking. Files: src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h, src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro, src/testing.c, src/vim.h, src/viminfo.c Patch 8.2.0112 Problem: Illegal memory access when using 'cindent'. Solution: Check for NUL byte. (Dominique Pellé, closes #5470) Files: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.0113 (after 8.2.0095) Problem: "make cmdidxs" fails. Solution: Allow address for ":cquit". Add --not-a-term to avoid a delay. Files: src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0114 Problem: Info about sourced scripts is scattered. Solution: Use scriptitem_T for info about a script, including s: variables. Drop ga_scripts. Files: src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c Patch 8.2.0115 Problem: Byte2line() does not work correctly with text properties. (Billie Cleek) Solution: Take the bytes of the text properties into account. (closes #5334) Files: src/testdir/test_textprop.vim, src/memline.c Patch 8.2.0116 Problem: BufEnter autocmd not triggered on ":tab drop". (Andy Stewart) Solution: Decrement autocmd_no_enter for the last file. (closes #1660, closes #5473) Files: src/arglist.c, src/testdir/test_tabpage.vim Patch 8.2.0117 Problem: Crash when using gettabwinvar() with invalid arguments. (Yilin Yang) Solution: Use "curtab" if "tp" is NULL. (closes #5475) Files: src/evalwindow.c, src/testdir/test_getvar.vim Patch 8.2.0118 Problem: Crash when cycling to buffers involving popup window. Solution: Do not decrement buffer reference count. Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_infopopup_7.dump Patch 8.2.0119 Problem: Message test fails on some platforms. (Elimar Riesebieter) Solution: Add type cast to vim_snprintf() argument. (Dominique Pellé) Files: src/message_test.c Patch 8.2.0120 Problem: virtcol() does not check arguments to be valid, which may lead to a crash. Solution: Check the column to be valid. Do not decrement MAXCOL. (closes #5480) Files: src/evalfunc.c, src/testdir/test_marks.vim Patch 8.2.0121 Problem: filter() and map() on blob don't work. Solution: Correct the code. (closes #5483) Files: src/list.c, src/testdir/test_blob.vim Patch 8.2.0122 Problem: Readme files still mention MS-DOS. Solution: Update readme files. (Ken Takata, closes #5486) Files: README.md, README.txt, READMEdir/README_dos.txt, READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt, runtime/doc/os_win32.txt Patch 8.2.0123 Problem: complete_info() does not work when CompleteDone is triggered. Solution: Trigger CompleteDone before clearing the info. Files: src/insexpand.c, runtime/doc/autocmd.txt, src/testdir/test_ins_complete.vim Patch 8.2.0124 Problem: Compiler warnings for variable types. Solution: Change type, add type cast. (Mike Williams) Files: src/memline.c Patch 8.2.0125 Problem: :mode no longer works for any system. Solution: Always give an error message. Files: src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c, src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro, src/os_unix.c, src/proto/os_unix.pro Patch 8.2.0126 (after 8.2.0124) Problem: Textprop test fails. Solution: Fix sign in computation. Files: src/memline.c Patch 8.2.0127 Problem: Some buffer commands work in a popup window. Solution: Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494) Files: src/ex_docmd.c, src/testdir/test_popupwin.vim Patch 8.2.0128 Problem: Cannot list options one per line. Solution: Use ":set!" to list one option per line. Files: src/ex_docmd.c, src/option.c, src/proto/option.pro, src/vim.h, src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.vim, runtime/doc/options.txt Patch 8.2.0129 Problem: MS-Windows installer doesn't use Turkish translations. Solution: Enable the Turkish translations and fix a few. (Emir Sarı, closes #5493) Files: nsis/gvim.nsi, nsis/lang/turkish.nsi Patch 8.2.0130 Problem: Python3 ranges are not tested. Solution: Add test. (Dominique Pellé, closes #5498) Files: src/testdir/test_python3.vim Patch 8.2.0131 Problem: Command line is not cleared when switching tabs and the command line height differs. Solution: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino, closes #5495) Files: src/testdir/dumps/Test_cmdlineclear_tabenter.dump, src/testdir/test_cmdline.vim, src/window.c Patch 8.2.0132 Problem: Script may be re-used when deleting and creating a new one. Solution: When the inode matches, also check the file name. Files: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.0133 Problem: Invalid memory access with search command. Solution: When :normal runs out of characters in bracketed paste mode break out of the loop.(closes #5511) Files: src/testdir/test_search.vim, src/edit.c Patch 8.2.0134 Problem: Some map functionality not covered by tests. Solution: Add tests. (Yegappan Lakshmanan, closes #5504) Files: src/testdir/test_maparg.vim, src/testdir/test_mapping.vim Patch 8.2.0135 (after 8.2.0133) Problem: Bracketed paste can still cause invalid memory access. (Dominique Pellé) Solution: Check for NULL pointer. Files: src/edit.c, src/testdir/test_search.vim Patch 8.2.0136 Problem: Stray ch_logfile() call. Solution: Remove it. (closes #5503) Files: src/testdir/test_source.vim Patch 8.2.0137 Problem: Crash when using win_execute() from a new tab. Solution: Set the tp_*win pointers. (Ozaki Kiichi, closes #5512) Files: src/testdir/test_winbuf_close.vim, src/window.c Patch 8.2.0138 Problem: Memory leak when starting a job fails. Solution: Free the list of arguments. (Ozaki Kiichi, closes #5510) Files: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0139 Problem: MS-Windows: default for IME is inconsistent. Solution: Also make IME default enabled with MVC. (Ken Takata, closes #5508) Files: src/Make_mvc.mak Patch 8.2.0140 Problem: CI does not test building doc tags. Solution: Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi, closes #5513) Files: .travis.yml, Filelist, ci/if_ver-1.vim, ci/if_ver-2.vim, ci/if_ver-cmd.vim, runtime/doc/Makefile, runtime/doc/doctags.vim, src/testdir/if_ver-1.vim, src/testdir/if_ver-2.vim Patch 8.2.0141 Problem: No swift filetype detection. Solution: Add swift, swiftgyb and sil. (Emir Sarı, closes #5517) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0142 Problem: Possible to enter popup window with CTRL-W p. (John Devin) Solution: Check entered window is not a popup window. (closes #5515) Files: src/window.c, src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_previewpopup_9.dump, src/testdir/dumps/Test_popupwin_previewpopup_10.dump Patch 8.2.0143 Problem: Coverity warning for possible use of NULL pointer. Solution: Check argv is not NULL. Files: src/channel.c Patch 8.2.0144 Problem: Some mapping code is not fully tested. Solution: Add more test cases. (Yegappan Lakshmanan, closes #5519) Files: src/testdir/test_langmap.vim, src/testdir/test_maparg.vim, src/testdir/test_mapping.vim Patch 8.2.0145 Problem: Using #error for compilation errors should be OK now. Solution: Use #error. (Ken Takata, closes #5299) Files: src/blowfish.c, src/vim.h Patch 8.2.0146 Problem: Wrong indent when 'showbreak' and 'breakindent' are set and 'briopt' includes "sbr". Solution: Reset "need_showbreak" where needed. (Ken Takata, closes #5523) Files: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0147 Problem: Block Visual mode operators not correct when 'linebreak' set. Solution: Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524) Files: src/ops.c, src/testdir/test_listlbr.vim Patch 8.2.0148 Problem: Mapping related function in wrong source file. Solution: Move the function. Add a few more test cases. (Yegappan Lakshmanan, closes #5528) Files: src/map.c, src/proto/term.pro, src/term.c, src/testdir/test_mapping.vim Patch 8.2.0149 Problem: Maintaining a Vim9 branch separately is more work. Solution: Merge the Vim9 script changes. Files: README.md, README_VIM9.md, runtime/doc/Makefile, runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/tags, runtime/doc/vim9.txt, runtime/ftplugin/vim.vim, runtime/indent/vim.vim, runtime/syntax/vim.vim, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/blob.c, src/channel.c, src/dict.c, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, src/ex_cmdidxs.h, src/ex_cmds.h, src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/globals.h, src/gui.c, src/if_lua.c, src/if_py_both.h, src/insexpand.c, src/json.c, src/list.c, src/macros.h, src/main.c, src/message.c, src/misc1.c, src/proto.h, src/proto/blob.pro, src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/evalvars.pro, src/proto/ex_docmd.pro, src/proto/ex_eval.pro, src/proto/list.pro, src/proto/message.pro, src/proto/scriptfile.pro, src/proto/userfunc.pro, src/proto/vim9compile.pro, src/proto/vim9execute.pro, src/proto/vim9script.pro, src/scriptfile.c, src/session.c, src/structs.h, src/syntax.c, src/testdir/Make_all.mak, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testing.c, src/userfunc.c, src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/viminfo.c Patch 8.2.0150 Problem: Cannot define python function when using :execute. (Yasuhiro Matsumoto) Solution: Do not recognize "def" inside "function. Files: src/testdir/test_vim9_script.vim, src/userfunc.c Patch 8.2.0151 Problem: Detecting a script was already sourced is unreliable. Solution: Do not use the inode number. Files: src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.0152 Problem: Restoring ctrl_x_mode is not needed. Solution: Remove restoring the old value, it's changed again soon. Files: src/insexpand.c Patch 8.2.0153 Problem: Warning shows when listing version info. Solution: Use "-u NONE". (Ozaki Kiichi, closes #5534) Files: .travis.yml Patch 8.2.0154 Problem: Reallocating the list of scripts is inefficient. Solution: Instead of using a growarray of scriptitem_T, store pointers and allocate each scriptitem_T separately. Also avoids that the growarray pointers change when sourcing a new script. Files: src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c, src/profiler.c, src/scriptfile.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c Patch 8.2.0155 Problem: Warnings from MinGW compiler. (John Marriott) Json test fails when building without +float feature. Solution: Init variables. Fix Json parsing. Skip a few tests that require the +float feature. Files: src/vim9script.c, src/vim9compile.c, src/vim9execute.c, src/if_py_both.h, src/json.c, src/testdir/test_method.vim Patch 8.2.0156 Problem: Various typos in source files and tests. Solution: Fix the typos. (Emir Sarı, closes #5532) Files: Makefile, src/INSTALLvms.txt, src/Make_vms.mms, src/beval.h, src/buffer.c, src/charset.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/getchar.c, src/gui.c, src/gui_mac.c, src/gui_photon.c, src/if_perl.xs, src/libvterm/t/11state_movecursor.test, src/libvterm/t/41screen_unicode.test, src/mbyte.c, src/memline.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/os_unix.c, src/os_win32.c, src/quickfix.c, src/register.c, src/spell.c, src/tag.c, src/term.c, src/testdir/test_breakindent.vim, src/testdir/test_channel.vim, src/testdir/test_cindent.vim, src/testdir/test_digraph.vim, src/testdir/test_edit.vim, src/testdir/test_netbeans.vim, src/testdir/test_quickfix.vim, src/testdir/test_registers.vim, src/testdir/test_stat.vim, src/ui.c, src/xxd/xxd.c Patch 8.2.0157 Problem: Vim9 script files not in list of distributed files. Solution: Add the entries. Files: Filelist Patch 8.2.0158 (after 8.2.0123) Problem: Triggering CompleteDone earlier is not backwards compatible. (Daniel Hahler) Solution: Add CompleteDonePre instead. Files: src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c, src/vim.h, src/testdir/test_ins_complete.vim Patch 8.2.0159 Problem: Non-materialized range() list causes problems. (Fujiwara Takuya) Solution: Materialize the list where needed. Files: src/testdir/test_functions.vim, src/testdir/test_python3.vim, src/userfunc.c, src/evalfunc.c, src/highlight.c, src/evalvars.c, src/popupmenu.c, src/insexpand.c, src/json.c, src/channel.c, src/eval.c Patch 8.2.0160 (after 8.2.0159) Problem: Range test fails. Solution: Include change in list code. (#5541) Files: src/list.c Patch 8.2.0161 Problem: Not recognizing .gv file as dot filetype. Solution: Add *.gv to dot pattern. (closes #5544) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0162 Problem: Balloon test fails in the GUI. Solution: Skip test in the GUI. Files: src/testdir/test_functions.vim Patch 8.2.0163 Problem: Test hangs on MS-Windows console. Solution: use feedkeys() instead of test_feedinput(). (Ken Takata) Files: src/testdir/test_functions.vim, src/testing.c Patch 8.2.0164 Problem: Test_alot takes too long. Solution: Run several tests individually. Files: src/testdir/test_alot.vim, src/testdir/Make_all.mak Patch 8.2.0165 Problem: Coverity warning for using NULL pointer. Solution: Add missing "else". Files: src/vim9compile.c Patch 8.2.0166 Problem: Coverity warning for using uninitialized variable. Solution: Check for failure. Files: src/vim9execute.c Patch 8.2.0167 Problem: Coverity warning for ignoring return value. Solution: Check the return value and jump if failed. Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0168 Problem: Coverity warning for assigning NULL to an option. Solution: Use empty string instead of NULL. Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0169 Problem: Coverity warning for dead code. Solution: Check if inside try-finally. Files: src/vim9execute.c Patch 8.2.0170 Problem: Coverity warning for ignoring return value. Solution: Check the return value and return if failed. Files: src/vim9compile.c Patch 8.2.0171 Problem: Coverity warning for using uninitialized buffer. Solution: Check the skip flag. Files: src/userfunc.c Patch 8.2.0172 Problem: Coverity warning for not restoring character. Solution: Restore the character also in case of failure. Files: src/vim9script.c Patch 8.2.0173 Problem: Build fails with old compiler. Solution: Do not use anonymous unions. (John Marriott) Files: src/vim9compile.c, src/evalvars.c, src/list.c, src/structs.h, src/evalfunc.c, src/channel.c, src/if_mzsch.c, src/if_py_both.h Patch 8.2.0174 Problem: Various commands not completely tested. Solution: Add more test cases. (Yegappan Lakshmanan, closes #5551) Files: src/testdir/test_excmd.vim, src/testdir/test_fnameescape.vim, src/testdir/test_ga.vim, src/testdir/test_global.vim, src/testdir/test_move.vim, src/testdir/test_options.vim, src/testdir/test_packadd.vim, src/testdir/test_sort.vim, src/testdir/test_substitute.vim, src/testdir/test_textformat.vim, src/testdir/test_writefile.vim Patch 8.2.0175 Problem: Crash when removing list element in map(). Solution: Lock the list. (closes #2652) Files: src/testdir/test_filter_map.vim, src/list.c Patch 8.2.0176 Problem: Generating os headers does not work for Swedish. Solution: Set the locale to C. (Christian Brabandt, closes #5258) Files: src/osdef.sh Patch 8.2.0177 Problem: Memory leak in get_tags(). Solution: Free matches when finding a pseudo-tag line. (Dominique Pellé, closes #5553) Files: src/tag.c Patch 8.2.0178 Problem: With VTP the screen may not be restored properly. Solution: Add another set of saved RGB values. (Nobuhiro Takasaki, closes #5548) Files: src/os_win32.c Patch 8.2.0179 Problem: Still a few places where range() does not work. Solution: Fix using range() causing problems. Files: src/terminal.c, src/testdir/test_functions.vim, src/testdir/test_popupwin.vim, src/popupwin.c, src/tag.c, src/testdir/dumps/Test_popupwin_20.dump, src/testdir/dumps/Test_popupwin_21.dump, src/testdir/dumps/Test_popup_settext_07.dump, src/globals.h Patch 8.2.0180 Problem: Test for wrapmargin fails if terminal is not 80 columns. Solution: Vertical split the window. (Ken Takata, closes #5554) Files: src/testdir/test_textformat.vim Patch 8.2.0181 Problem: Problems parsing :term arguments. Solution: Improve parsing, fix memory leak, add tests. (Ozaki Kiichi, closes #5536) Files: src/channel.c, src/proto/channel.pro, src/structs.h, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0182 Problem: Min() and max() materialize a range() list. Solution: Compute the result without materializing the list. (#5541) Files: src/evalfunc.c Patch 8.2.0183 Problem: Tests fail when the float feature is disabled. Solution: Skip tests that don't work without float support. Files: src/testdir/shared.vim, src/testdir/test_blob.vim, src/testdir/test_channel.vim, src/testdir/test_cscope.vim, src/testdir/test_execute_func.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_lambda.vim, src/testdir/test_listdict.vim, src/testdir/test_lua.vim, src/testdir/test_options.vim, src/testdir/test_partial.vim, src/testdir/test_ruby.vim, src/testdir/test_sort.vim, src/testdir/test_timers.vim, src/testdir/test_true_false.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_glob2regpat.vim Patch 8.2.0184 Problem: Blob test fails. Solution: Check for different error when float feature is missing. Files: src/testdir/test_blob.vim Patch 8.2.0185 Problem: Vim9 script: cannot use "if has()" to skip lines. Solution: Evaluate constant expression at runtime. Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0186 Problem: A couple of tests may fail when features are missing. Solution: Check for features. (Dominique Pellé, closes #5561) Files: src/testdir/test_functions.vim, src/testdir/test_highlight.vim Patch 8.2.0187 Problem: Redundant code. Solution: Remove unused assignments. (Dominique Pellé, closes #5557) Files: src/vim9compile.c Patch 8.2.0188 Problem: Check commands don't work well with Vim9 script. Solution: Improve constant expression handling. Files: src/vim9compile.c, src/testdir/check.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0189 Problem: cd() with NULL argument crashes. Solution: Check for NULL. (Ken Takata, closes #5558) Files: src/testdir/test_cd.vim, src/ex_docmd.c Patch 8.2.0190 Problem: Kotlin files are not recognized. Solution: Detect Kotlin files. (Alkeryn, closes #5560) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0191 Problem: Cannot put a terminal in a popup window. Solution: Allow opening a terminal in a popup window. It will always have keyboard focus until closed. Files: src/popupwin.c, src/proto/popupwin.pro, src/terminal.c, src/proto/terminal.pro, src/macros.h, src/mouse.c, src/highlight.c, src/drawline.c, src/optionstr.c, src/window.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump, src/testdir/dumps/Test_terminal_popup_2.dump, src/testdir/dumps/Test_terminal_popup_3.dump Patch 8.2.0192 (after 8.2.0191) Problem: Build failure without +terminal feature. Solution: Add #ifdefs. Files: src/popupwin.c Patch 8.2.0193 (after 8.2.0191) Problem: Still build failure without +terminal feature. Solution: Add more #ifdefs. Files: src/macros.h Patch 8.2.0194 (after 8.2.0193) Problem: Some commands can cause problems in terminal popup. Solution: Disallow more commands. Files: src/macros.h, src/popupwin.c, src/proto/popupwin.pro, src/arglist.c, src/ex_docmd.c, src/window.c, src/testdir/test_terminal.vim Patch 8.2.0195 Problem: Some tests fail when run in the GUI. Solution: Make sure the window width is enough. In the GUI run terminal Vim in the terminal, if possible. Files: src/testdir/test_highlight.vim, src/testdir/check.vim, src/testdir/test_terminal.vim Patch 8.2.0196 Problem: Blocking commands for a finished job in a popup window. Solution: Do not block commands if the job has finished. Adjust test. Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/window.c, src/terminal.c, src/proto/terminal.pro Patch 8.2.0197 Problem: Some Ex commands not sufficiently tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5565) Files: src/testdir/test_global.vim, src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim, src/testdir/test_options.vim, src/testdir/test_substitute.vim, src/testdir/test_textformat.vim, src/testdir/test_writefile.vim Patch 8.2.0198 Problem: No tests for y/n prompt. Solution: Add tests. (Dominique Pellé, closes #5564) Files: src/testdir/test_messages.vim Patch 8.2.0199 Problem: Vim9 script commands not sufficiently tested. Solution: Add more tests. Fix script-local function use. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/userfunc.c Patch 8.2.0200 Problem: Vim9 script commands not sufficiently tested. Solution: Add more tests. Fix storing global variable. Make script variables work. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim, src/misc1.c, src/proto/misc1.pro Patch 8.2.0201 Problem: Cannot assign to an imported variable. Solution: Make it work. Files: src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0202 Problem: When 'lazyredraw' is set the window title may not be updated. Solution: Set "do_redraw" before entering the main loop. (Jason Franklin) Files: src/main.c Patch 8.2.0203 Problem: :helptags and some other functionality not tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5567) Files: src/testdir/test_compiler.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_filechanged.vim, src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim, src/testdir/test_timers.vim, src/testdir/test_window_cmd.vim Patch 8.2.0204 Problem: Crash when using winnr('j') in a popup window. Solution: Do not search for neighbors in a popup window. (closes #5568) Files: src/window.c, src/testdir/test_popupwin.vim, src/evalwindow.c Patch 8.2.0205 Problem: Error code E899 used twice. Solution: Use E863 for the terminal in popup error. Files: src/popupwin.c Patch 8.2.0206 Problem: Calling Vim9 function using default argument fails. Solution: Give an appropriate error. (closes #5572) Files: src/testdir/test_vim9_script.vim, src/vim9compile.c, src/vim9execute.c Patch 8.2.0207 Problem: Crash when missing member type on list argument. Solution: Check for invalid type. (closes #5572) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0208 Problem: Fnamemodify() does not apply ":~" when followed by ":.". Solution: Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro Matsumoto, closes #5577) Files: runtime/doc/cmdline.txt, src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0209 Problem: Function a bit far away from where it's used. Solution: Move function close to where it's used. (Ken Takata, closes #5569) Files: src/fileio.c, src/filepath.c Patch 8.2.0210 Problem: Coverity complains about uninitialized field. Solution: Initialize the field. Files: src/vim9compile.c Patch 8.2.0211 Problem: Test for ANSI colors fails without an "ls" command. Solution: Use "dir". (Ken Takata, closes #5582) Files: src/testdir/test_functions.vim Patch 8.2.0212 Problem: Missing search/substitute pattern hardly tested. Solution: Add test_clear_search_pat() and tests. (Yegappan Lakshmanan, closes #5579) Files: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro, src/proto/search.pro, src/proto/testing.pro, src/regexp.c, src/search.c, src/testdir/test_quickfix.vim, src/testdir/test_search.vim, src/testdir/test_sort.vim, src/testdir/test_substitute.vim, src/testing.c Patch 8.2.0213 Problem: Configure does not recognize gcc 10.0 and later. Solution: Adjust the pattern matching the version number. (Sergei Trofimovich, closes #5580) Files: src/configure.ac, src/auto/configure Patch 8.2.0214 Problem: A popup window with a terminal can be made hidden. Solution: Disallow hiding a terminal popup. Files: src/testdir/test_terminal.vim, src/popupwin.c, src/testdir/dumps/Test_terminal_popup_4.dump Patch 8.2.0215 (after 8.2.0208) Problem: Wrong file name shortening. (Ingo Karkat) Solution: Better check for path separator. (Yasuhiro Matsumoto, closes #5583, closes #5584) Files: src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0216 Problem: Several Vim9 instructions are not tested. Solution: Add more tests. Fix :disassemble output. Make catch with pattern work. Files: src/testdir/test_vim9_script.vim, src/vim9execute.c, src/vim9compile.c Patch 8.2.0217 (after 8.2.0214) Problem: Terminal test fails on Mac. Solution: Add a short wait. Files: src/testdir/test_terminal.vim Patch 8.2.0218 Problem: Several Vim9 instructions are not tested. Solution: Add more tests. Files: src/testdir/test_vim9_script.vim Patch 8.2.0219 (after 8.2.0217) Problem: Terminal test still fails on Mac. Solution: Skip part of the test on Mac. Files: src/testdir/test_terminal.vim Patch 8.2.0220 Problem: Terminal test did pass on Mac. Solution: Remove the skip again. Files: src/testdir/test_terminal.vim Patch 8.2.0221 Problem: No test for Vim9 += and ..=. Solution: Add tests. Files: src/testdir/test_vim9_script.vim Patch 8.2.0222 Problem: Vim9: optional function arguments don't work yet. Solution: Implement optional function arguments. Files: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.0223 Problem: Some instructions not yet tested. Solution: Disassemble more instructions. Move tests to a new file. Compile call to s:function(). Files: src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak, src/testdir/test_vim9_disassemble.vim, src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/vim.h Patch 8.2.0224 Problem: compiling :elseif not tested yet. Solution: Add test for :elseif. Fix generating jumps. Files: src/testdir/test_vim9_script.vim, src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0225 Problem: compiling lambda not tested yet. Solution: Add test for lambda and funcref. Drop unused instruction arg. Files: src/testdir/test_vim9_disassemble.vim, src/vim9.h, src/vim9execute.c Patch 8.2.0226 Problem: Compiling for loop not tested. Solution: Add a test. Make variable initialization work for more types. Files: src/testdir/test_vim9_disassemble.vim, src/vim9compile.c Patch 8.2.0227 Problem: Compiling a few instructions not tested. Solution: Add more test cases. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0228 Problem: Configure does not recognize gcc version on BSD. Solution: Do not use "\+" in the pattern matching the version number. (Ozaki Kiichi, closes #5590) Files: src/configure.ac, src/auto/configure Patch 8.2.0229 Problem: Compare instructions not tested. Solution: Add test cases. Fix disassemble with line continuation. Files: src/testdir/test_vim9_disassemble.vim, src/vim9execute.c, src/vim9compile.c Patch 8.2.0230 Problem: Terminal popup test is flaky. Solution: Increase wait time a bit. Files: src/testdir/test_terminal.vim Patch 8.2.0231 Problem: Silent system command may clear the screen. Solution: Do not clear the screen in t_te. Files: src/term.c Patch 8.2.0232 Problem: The :compiler command causes a crash. (Daniel Steinberg) Solution: Do not use the script index if it isn't set. Files: src/ex_docmd.c, src/testdir/test_compiler.vim Patch 8.2.0233 Problem: Crash when using garbagecollect() in between rand(). Solution: Redesign the rand() and srand() implementation. (Yasuhiro Matsumoto, closes #5587, closes #5588) Files: src/evalfunc.c, src/testdir/test_random.vim, runtime/doc/testing.txt, runtime/doc/eval.txt Patch 8.2.0234 Problem: Message test fails on SunOS. Solution: Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595) Files: src/message_test.c Patch 8.2.0235 Problem: Draw error when an empty group is removed from 'statusline'. Solution: Do not use highlighting from a removed group. Files: src/buffer.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_1.dump Patch 8.2.0236 Problem: MS-Windows uninstall doesn't delete vimtutor.bat. Solution: Change directory before deletion. (Ken Takata, closes #5603) Files: src/uninstall.c Patch 8.2.0237 Problem: Crash when setting 'wincolor' on finished terminal window. (Bakudankun) Solution: Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes #5607, closes #5610) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0238 Problem: MS-Windows: job_stop() results in exit value zero. Solution: Call TerminateJobObject() with -1 instead of 0. (Yasuhiro Matsumoto, closes #5150, closes #5614) Files: src/os_win32.c, src/testdir/test_channel.vim Patch 8.2.0239 Problem: MS-Windows: 'env' job option does not override existing environment variables. (Tim Pope) Solution: Set the environment variables later. (Yasuhiro Matsumoto, closes #5485, closes #5608) Files: src/os_win32.c, src/testdir/test_channel.vim Patch 8.2.0240 Problem: Using memory after it was freed. (Dominique Pellé) Solution: Do not mix conversion buffer with other buffer. Files: src/viminfo.c, src/vim.h Patch 8.2.0241 Problem: Crash when setting 'buftype' to "quickfix". Solution: Check that error list is not NULL. (closes #5613) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0242 Problem: Preview popup window test fails with long directory name. (Jakub Kądziołka) Solution: Use "silent cd". (closes #5615) Files: src/testdir/test_popupwin.vim Patch 8.2.0243 Problem: Insufficient code coverage for ex_docmd.c functions. Solution: Add more tests. (Yegappan Lakshmanan, closes #5618) Files: src/testdir/Make_all.mak, src/testdir/test_arglist.vim, src/testdir/test_buffer.vim, src/testdir/test_cd.vim, src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_mapping.vim, src/testdir/test_quickfix.vim, src/testdir/test_search.vim, src/testdir/test_sort.vim, src/testdir/test_source.vim, src/testdir/test_substitute.vim, src/testdir/test_undo.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim Patch 8.2.0244 Problem: Compiler warning in Lua interface. Solution: Add type cast. (Ken Takata, closes #5621) Files: src/if_lua.c Patch 8.2.0245 Problem: MSVC: error message if the auto directory already exists. Solution: Add "if not exists". (Ken Takata, closes #5620) Files: src/Make_mvc.mak Patch 8.2.0246 Problem: MSVC: deprecation warnings with Ruby. Solution: Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata, closes #5622) Files: src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/vim.h, src/vimio.h Patch 8.2.0247 Problem: Misleading comment in NSIS installer script. Solution: Negate the meaning of the comment. (Ken Takata, closes #5627) Files: nsis/gvim.nsi Patch 8.2.0248 Problem: MS-Windows: dealing with deprecation is too complicated. Solution: Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken Takata, closes #5626) Files: src/Make_mvc.mak, src/dosinst.h, src/vim.h, src/vimio.h, src/winclip.c, Filelist Patch 8.2.0249 Problem: MS-Windows: various warnings. Solution: Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_. (Ken Takata, closes #5625) Files: src/GvimExt/Makefile, src/Make_mvc.mak Patch 8.2.0250 Problem: test_clear_search_pat() is unused. Solution: Remove the function. (Yegappan Lakshmanan, closes #5624) Files: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro, src/proto/search.pro, src/proto/testing.pro, src/regexp.c, src/search.c, src/testdir/test_writefile.vim, src/testing.c Patch 8.2.0251 Problem: A couple of function return types can be more specific. Solution: Use a better return type. (Ken Takata, closes #5629) Files: src/evalfunc.c, src/globals.h Patch 8.2.0252 Problem: Windows compiler warns for using size_t. Solution: Change to int. (Mike Williams) Files: src/vim9compile.c Patch 8.2.0253 Problem: Crash when using :disassemble without argument. (Dhiraj Mishra) Solution: Check for missing argument. (Dominique Pellé, closes #5635, closes #5637) Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/ex_cmds.h Patch 8.2.0254 Problem: Compiler warning for checking size_t to be negative. Solution: Only check for zero. (Zoltan Arpadffy) Files: src/vim9compile.c Patch 8.2.0255 Problem: VMS: missing files in build. Solution: Add the files. (Zoltan Arpadffy) Files: src/Make_vms.mms Patch 8.2.0256 Problem: Time and timer related code is spread out. Solution: Move time and timer related code to a new file. (Yegappan Lakshmanan, closes #5604) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/evalfunc.c, src/ex_cmds.c, src/ex_cmds2.c, src/main.c, src/memline.c, src/misc1.c, src/misc2.c, src/proto.h, src/proto/ex_cmds.pro, src/proto/ex_cmds2.pro, src/proto/main.pro, src/proto/memline.pro, src/proto/misc1.pro, src/proto/misc2.pro, src/proto/time.pro, src/time.c Patch 8.2.0257 Problem: Cannot recognize a terminal in a popup window. Solution: Add the win_gettype() function. Files: runtime/doc/eval.txt, src/evalfunc.c, src/evalwindow.c, src/proto/evalwindow.pro, src/testdir/test_cmdline.vim, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump Patch 8.2.0258 Problem: ModifyOtherKeys cannot be temporarily disabled. Solution: Add echoraw() with an example for modifyOtherKeys. Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/dumps/Test_functions_echoraw.dump Patch 8.2.0259 Problem: Terminal in popup test sometimes fails. Solution: Clear the command line. Files: src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump Patch 8.2.0260 Problem: Several lines of code are duplicated. Solution: Move duplicated code to a function. (Yegappan Lakshmanan, closes #5330) Files: src/option.c, src/os_unix.c, src/os_win32.c, src/proto/term.pro, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/term.c Patch 8.2.0261 Problem: Some code not covered by tests. Solution: Add test cases. (Yegappan Lakshmanan, closes #5645) Files: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, src/testdir/test_exists.vim, src/testdir/test_filechanged.vim, src/testdir/test_fileformat.vim, src/testdir/test_mapping.vim, src/testdir/test_marks.vim, src/testdir/test_normal.vim, src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, src/testdir/test_visual.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim Patch 8.2.0262 (after 8.2.0261) Problem: Fileformat test fails on MS-Windows. Solution: Set fileformat of buffer. Files: src/testdir/test_fileformat.vim Patch 8.2.0263 Problem: A few new Vim9 messages are not localized. Solution: Add the gettext wrapper. (Dominique Pellé, closes #5647) Files: src/vim9compile.c, src/vim9execute.c Patch 8.2.0264 (after 8.2.0262) Problem: Fileformat test still fails on MS-Windows. Solution: Set fileformat of buffer in the right place. Files: src/testdir/test_fileformat.vim Patch 8.2.0265 Problem: "eval" after "if 0" doesn't check for following command. Solution: Add "eval" to list of commands that check for a following command. (closes #5640) Files: src/ex_docmd.c, src/testdir/test_expr.vim Patch 8.2.0266 Problem: Terminal in popup test sometimes fails on Mac. Solution: Add a short delay. Files: src/testdir/test_terminal.vim Patch 8.2.0267 Problem: No check for a following command when calling a function fails. Solution: Also check for a following command when inside a try block. (closes #5642) Files: src/userfunc.c, src/testdir/test_user_func.vim Patch 8.2.0268 (after 8.2.0267) Problem: Trycatch test fails. Solution: When calling function fails only check for following command, do not give another error. Files: src/userfunc.c Patch 8.2.0269 Problem: Vim9: operator after list index does not work. (Yasuhiro Matsumoto) Solution: After indexing a list change the type to the list member type. (closes #5651) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0270 Problem: Some code not covered by tests. Solution: Add test cases. (Yegappan Lakshmanan, closes #5649) Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_expand.vim, src/testdir/test_filetype.vim, src/testdir/test_findfile.vim, src/testdir/test_join.vim, src/testdir/test_move.vim, src/testdir/test_normal.vim, src/testdir/test_registers.vim, src/testdir/test_source.vim, src/testdir/test_tabpage.vim, src/testdir/test_tagjump.vim, src/testdir/test_vimscript.vim, src/testdir/test_visual.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim Patch 8.2.0271 Problem: The "num64" feature is available everywhere and building without it causes problems. Solution: Graduate the "num64" feature. (James McCoy, closes #5650) Files: src/evalfunc.c, src/feature.h, src/message.c, src/structs.h, src/testdir/test_expr.vim, src/testdir/test_largefile.vim, src/testdir/test_sort.vim, src/testdir/test_vimscript.vim, src/version.c Patch 8.2.0272 Problem: ":helptags ALL" gives error for directories without write permission. (Matěj Cepl) Solution: Ignore errors for ":helptags ALL". (Ken Takata, closes #5026, closes #5652) Files: src/ex_cmds.c, src/testdir/test_help.vim Patch 8.2.0273 Problem: MS-Windows uninstall may delete wrong batch file. Solution: Add specific marker in the generated batch file. (Ken Takata, closes #5654) Files: src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c Patch 8.2.0274 Problem: Hang with combination of feedkeys(), Ex mode and :global. (Yegappan Lakshmanan) Solution: Add the pending_exmode_active flag. Files: src/ex_docmd.c, src/globals.h, src/getchar.c, src/testdir/test_ex_mode.vim Patch 8.2.0275 Problem: Some Ex code not covered by tests. Solution: Add test cases. (Yegappan Lakshmanan, closes #5659) Files: src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_excmd.vim, src/testdir/test_quickfix.vim, src/testdir/test_search.vim, src/testdir/test_swap.vim, src/testdir/test_window_cmd.vim Patch 8.2.0276 Problem: Vim9: not allowing space before ")" in function call is too restrictive. (Ben Jackson) Solution: Skip space before the ")". Adjust other space checks. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0277 Problem: Vim9: not all instructions covered by tests. Solution: Add more test cases. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0278 Problem: Channel test is flaky on Mac. Solution: Reset variable before sending message. Files: src/testdir/test_channel.vim Patch 8.2.0279 Problem: Vim9: no test for deleted :def function. Solution: Add a test. Clear uf_cleared flag when redefining a function. Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0280 Problem: Vim9: throw in :def function not caught higher up. Solution: Set "need_rethrow". Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0281 Problem: Two placed signs in the same line are not combined. E.g. in the terminal debugger a breakpoint and the PC cannot be both be displayed. Solution: Combine the sign column and line highlight attributes. Files: src/sign.c, src/testdir/test_signs.vim, src/testdir/dumps/Test_sign_cursor_3.dump, src/testdir/dumps/Test_sign_cursor_4.dump Patch 8.2.0282 Problem: Vim9: setting number option not tested. Solution: Add more tests. Fix assigning to global variable. Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/vim9execute.c Patch 8.2.0283 Problem: Vim9: failing to load script var not tested. Solution: Add more tests. Fix using s: in old script. Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0284 Problem: Vim9: assignment test fails. Solution: Avoid duplicating "s:". Files: src/vim9compile.c Patch 8.2.0285 Problem: Unused error message. Cannot create s:var. Solution: Remove the error message. Make assignment to s:var work. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0286 Problem: Cannot use popup_close() for a terminal popup. Solution: Allow using popup_close(). (closes #5666) Files: src/popupwin.c, runtime/doc/popup.txt, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_5.dump, src/testdir/dumps/Test_terminal_popup_6.dump Patch 8.2.0287 Problem: Vim9: return in try block not tested; catch with pattern not tested. Solution: Add tests. Make it work. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0288 Problem: Vim9: some float and blob operators not tested. Solution: Add float and blob tests. Fix addition. Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c Patch 8.2.0289 Problem: Vim9: :echo did not clear the rest of the line. Solution: Call msg_clr_eos(). (Ken Takata, closes #5668) Files: src/vim9execute.c Patch 8.2.0290 Problem: Running individual test differs from all tests. Solution: Pass on environment variables. (Yee Cheng Chin, closes #5672) Files: src/testdir/Makefile, src/testdir/README.txt Patch 8.2.0291 Problem: Vim9: assigning [] to list<string> doesn't work. Solution: Use void for empty list and dict. (Ken Takata, closes #5669) Files: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim Patch 8.2.0292 Problem: Vim9: CHECKNR and CHECKTYPE instructions not tested. Solution: Add tests. Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0293 Problem: Various Ex commands not sufficiently tested. Solution: Add more test cases. (Yegappan Lakshmanan, closes #5673) Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_expand.vim, src/testdir/test_filetype.vim, src/testdir/test_filter_cmd.vim, src/testdir/test_global.vim, src/testdir/test_normal.vim, src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim, src/testdir/test_trycatch.vim, src/testdir/test_vimscript.vim Patch 8.2.0294 Problem: Cannot use Ex command that is also a function name. Solution: Recognize an Ex command by a colon prefix. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt Patch 8.2.0295 Problem: Highlighting for :s wrong when using different separator. Solution: Use separate argument for search direction and separator. (Rob Pilling, closes #5665) Files: src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/normal.c, src/proto/search.pro, src/quickfix.c, src/search.c, src/spell.c, src/tag.c, src/testdir/dumps/Test_incsearch_substitute_15.dump, src/testdir/test_search.vim Patch 8.2.0296 Problem: Mixing up "long long" and __int64 may cause problems. (John Marriott) Solution: Pass varnumber_T to vim_snprintf(). Add v:numbersize. Files: src/message.c, src/eval.c, src/fileio.c, src/json.c, src/ops.c, src/vim.h, src/structs.h, src/evalvars.c, runtime/doc/eval.txt, runtime/doc/various.txt, src/testdir/test_eval_stuff.vim Patch 8.2.0297 Problem: Compiler warnings for the Ruby interface. Solution: Undefine a few macros, fix initialization. (Ozaki Kiichi, closes #5677) Files: src/if_ruby.c Patch 8.2.0298 Problem: Vim9 script: cannot start command with a string constant. Solution: Recognize expression starting with '('. Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt Patch 8.2.0299 Problem: Vim9: ISN_STORE with argument not tested. Some cases in tv2bool() not tested. Solution: Add tests. Add test_unknown() and test_void(). Files: src/testing.c, src/proto/testing.pro, src/evalfunc.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, runtime/doc/eval.txt, runtime/doc/testing.txt Patch 8.2.0300 Problem: Vim9: expression test fails without channel support. Solution: Add has('channel') check. Files: src/testdir/test_vim9_expr.vim Patch 8.2.0301 Problem: Insufficient testing for exception handling and the "attention" prompt. Solution: Add test cases. (Yegappan Lakshmanan, closes #5681) Files: src/testdir/test_swap.vim, src/testdir/test_trycatch.vim Patch 8.2.0302 Problem: Setting 'term' may cause error in TermChanged autocommand. Solution: Use aucmd_prepbuf() to switch to the buffer where the autocommand is to be executed. (closes #5682) Files: src/term.c, src/testdir/test_autocmd.vim Patch 8.2.0303 Problem: TermChanged test fails in the GUI. Solution: Skip the test when running the GUI. Files: src/testdir/test_autocmd.vim Patch 8.2.0304 Problem: Terminal test if failing on some systems. Solution: Wait for the job to finish. (James McCoy) Files: src/testdir/test_terminal.vim Patch 8.2.0305 Problem: Relativenumber test fails on some systems. (James McCoy) Solution: Clear the command line. Files: src/testdir/test_number.vim, src/testdir/dumps/Test_relnr_colors_2.dump, src/testdir/dumps/Test_relnr_colors_3.dump Patch 8.2.0306 Problem: Vim9: :substitute(pat(repl does not work in Vim9 script. Solution: Remember starting with a colon. (closes #5676) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.0307 Problem: Python 3 vim.eval not well tested. Solution: Add a test. (Dominique Pellé, closes #5680) Files: src/testdir/test_python3.vim Patch 8.2.0308 Problem: 'showbreak' does not work for a very long line. (John Little) Solution: Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523, closes #5684) Files: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0309 Problem: Window-local values have confusing name. Solution: Rename w_p_bri* to w_briopt_*. Files: src/structs.h, src/indent.c, src/drawline.c Patch 8.2.0310 Problem: Autocmd test fails on a slow system. Solution: Adjust the expectations. (James McCoy, closes #5685) Files: src/testdir/test_autocmd.vim Patch 8.2.0311 Problem: Vim9: insufficient script tests. Solution: Add tests. Free imports when re-using a script. Files: src/testdir/test_vim9_script.vim, src/scriptfile.c Patch 8.2.0312 Problem: Vim9: insufficient script tests. Solution: Add more tests. Make "import * as Name" work. Files: src/testdir/test_vim9_script.vim, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c Patch 8.2.0313 Problem: Vim9: insufficient script tests. Solution: Add tests. Make import of alphanumeric name work. Files: src/testdir/test_vim9_script.vim, src/vim9script.c Patch 8.2.0314 Problem: Short name not set for terminal buffer. Solution: Set the short name. (closes #5687) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0315 Problem: Build failure on HP-UX system. Solution: Use LONG_LONG_MIN instead of LLONG_MIN. Add type casts for switch statement. (John Marriott) Files: src/structs.h, src/json.c Patch 8.2.0316 Problem: ex_getln.c code has insufficient test coverage. Solution: Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693) Files: src/cmdhist.c, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_menu.vim Patch 8.2.0317 Problem: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build. Solution: Move where CFLAGS is updated. (Ken Takata, closes #5692) Files: src/Make_mvc.mak Patch 8.2.0318 Problem: Vim9: types not sufficiently tested. Solution: Add tests with more types. Files: src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0319 Problem: File missing in distribution, comments outdated. Solution: Correct path of README file. Update comments. Files: Filelist, src/evalvars.c, src/register.c, src/if_python3.c Patch 8.2.0320 Problem: No Haiku support. Solution: Add support for Haiku. (Emir Sarı, closes #5605) Files: Filelist, runtime/doc/Makefile, runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/help.txt, runtime/doc/options.txt, runtime/doc/os_haiku.txt, runtime/doc/starting.txt, runtime/doc/tags, runtime/gvimrc_example.vim, runtime/vimrc_example.vim, src/INSTALL, src/Makefile, src/auto/configure, src/configure.ac, src/evalfunc.c, src/feature.h, src/fileio.c, src/globals.h, src/gui.c, src/gui.h, src/gui_haiku.cc, src/gui_haiku.h, src/mbyte.c, src/menu.c, src/misc1.c, src/mouse.c, src/option.h, src/os_haiku.h, src/os_haiku.rdef, src/os_unix.c, src/os_unix.h, src/osdef1.h.in, src/proto.h, src/proto/gui_haiku.pro, src/pty.c, src/screen.c, src/structs.h, src/term.c, src/version.c, src/vim.h Patch 8.2.0321 Problem: Vim9: ":execute" does not work yet. Solution: Add ISN_EXECUTE. (closes #5699) Also make :echo work with more than one argument. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.0322 Problem: Vim9: error checks not tested. Solution: Add more test cases. Avoid error for function loaded later. Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.0323 Problem: Vim9: calling a function that is defined later is slow. Solution: Once the function is found update the instruction so it can be called directly. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0324 Problem: Text property not updated correctly when inserting/deleting. Solution: Use the right column when deleting. Make zero-width text properties respect start_incl and end_incl. (Axel Forsman, closes #5696, closes #5679) Files: src/change.c, src/textprop.c, src/testdir/test_listener.vim, src/testdir/test_textprop.vim Patch 8.2.0325 Problem: Ex_getln.c code not covered by tests. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #5702) Files: src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_options.vim Patch 8.2.0326 Problem: Compiler warning for using uninitialized variable. (Yegappan Lakshmanan) Solution: Do not jump to failed but return. Files: src/vim9execute.c Patch 8.2.0327 Problem: Crash when opening and closing two popup terminal windows. Solution: Check that prevwin is valid. (closes #5707) Files: src/popupwin.c, src/testdir/test_terminal.vim Patch 8.2.0328 Problem: No redraw when leaving terminal-normal mode in a terminal popup window. Solution: Redraw the popup window. (closes #5708) Files: src/macros.h, src/vim.h, src/terminal.c, src/drawscreen.c, src/move.c, src/popupwin.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_7.dump, src/testdir/dumps/Test_terminal_popup_8.dump Patch 8.2.0329 Problem: Popup filter converts 0x80 bytes. Solution: Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0330 Problem: Build error with popup window but without terminal. Solution: Add #ifdef. Files: src/popupwin.c Patch 8.2.0331 Problem: Internal error when using test_void() and test_unknown(). (Dominique Pellé) Solution: Give a normal error. Files: src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_vimscript.vim Patch 8.2.0332 Problem: Some code in ex_getln.c not covered by tests. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #5710) Files: src/testdir/test_arabic.vim, src/testdir/test_cmdline.vim Patch 8.2.0333 Problem: Terminal in popup test is flaky. Solution: Make sure redraw is done before opening the popup. Files: src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump Patch 8.2.0334 Problem: Abort called when using test_void(). (Dominique Pellé) Solution: Only give an error, don't abort. Files: src/message.c, src/proto/message.pro, src/evalfunc.c, src/eval.c, src/json.c, src/testdir/test_functions.vim Patch 8.2.0335 Problem: No completion for :disassemble. Solution: Make completion work. Also complete script-local functions if the name starts with "s:". Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, runtime/doc/vim9.txt Patch 8.2.0336 Problem: Vim9: insufficient test coverage for compiling. Solution: Add more tests. Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0337 Problem: Build fails on a few systems. Solution: Use vim_snprintf() instead of snprintf(). Files: src/cmdexpand.c Patch 8.2.0338 Problem: Build failure without the channel feature. Solution: Add #ifdef Files: src/vim9compile.c Patch 8.2.0339 Problem: Vim9: function return type may depend on arguments. Solution: Instead of a fixed return type use a function to figure out the return type. Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/evalbuffer.c, src/proto/evalbuffer.pro, src/testdir/test_vim9_script.vim Patch 8.2.0340 Problem: Vim9: function and partial types not tested. Solution: Support more for partial, add tests. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0341 Problem: Using ":for" in Vim9 script gives an error. Solution: Pass the LET_NO_COMMAND flag. (closes #5715) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0342 Problem: Some code in ex_getln.c not covered by tests. Solution: Add more tests. (Yegappan Lakshmanan, closes #5717) Files: src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, src/testdir/test_history.vim, src/testdir/test_iminsert.vim Patch 8.2.0343 Problem: Vim9: using wrong instruction, limited test coverage. Solution: Use ISN_PUSHJOB. Add a few more tests. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0344 Problem: ":def" not skipped properly. Solution: Add CMD_def to list of commands the require evaluation even when not being executed. Files: src/ex_docmd.c Patch 8.2.0345 Problem: Compiler warning when building without the float feature. Solution: Add #ifdef. (John Marriott) Files: src/evalfunc.c Patch 8.2.0346 Problem: Vim9: finding common list type not tested. Solution: Add more tests. Fix listing function. Fix overwriting type. Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_script.vim, src/testdir/runtest.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0347 Problem: Various code not covered by tests. Solution: Add more test coverage. (Yegappan Lakshmanan, closes #5720) Files: src/testdir/gen_opt_test.vim, src/testdir/test86.in, src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim, src/testdir/test_ex_mode.vim, src/testdir/test_history.vim Patch 8.2.0348 Problem: Vim9: not all code tested. Solution: Add a few more tests. fix using "b:" in literal dictionary. Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0349 Problem: Vim9: constant expression not well tested. Solution: Add tests for "if" with constant expression. Files: src/testdir/test_vim9_script.vim Patch 8.2.0350 Problem: Vim9: expression tests don't use recognized constants. Solution: Recognize "true" and "false" as constants. Make skipping work for assignment and expression evaluation. Files: src/vim9compile.c Patch 8.2.0351 Problem: Terminal in popup test is still a bit flaky. Solution: Clear and redraw before opening the popup. Files: src/testdir/test_terminal.vim Patch 8.2.0352 Problem: FreeBSD: test for sourcing utf-8 is skipped. Solution: Run the matchadd_conceal test separately to avoid that setting 'term' to "ansi" causes problems for other tests. (Ozaki Kiichi, closes #5721) Files: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim, src/testdir/test_source_utf8.vim Patch 8.2.0353 Problem: Vim9: while loop not tested. Solution: Add test with "while", "break" and "continue" Files: src/testdir/test_vim9_script.vim Patch 8.2.0354 Problem: Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal) Solution: Remove it, it was only for debugging. Files: src/if_python3.c Patch 8.2.0355 Problem: Vim9: str_val is confusing, it's a number Solution: Rename to stnr_val. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0356 Problem: MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly. Solution: Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken Takata, closes #5726) Files: src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.vim Patch 8.2.0357 Problem: Cannot delete a text property matching both id and type. (Axel Forsman) Solution: Add the "both" argument. Files: src/textprop.c, runtime/doc/textprop.txt, src/testdir/test_textprop.vim Patch 8.2.0358 Problem: Insufficient testing for indent.c. Solution: Add indent tests. (Yegappan Lakshmanan, closes #5736) Files: src/testdir/Make_all.mak, src/testdir/test_ex_mode.vim, src/testdir/test_expand_func.vim, src/testdir/test_indent.vim, src/testdir/test_lispwords.vim, src/testdir/test_smartindent.vim, src/testdir/test_vartabs.vim Patch 8.2.0359 Problem: popup_atcursor() may hang. (Yasuhiro Matsumoto) Solution: Take the decoration into account. (closes #5728) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0360 Problem: Yaml files are only recognized by the file extension. Solution: Check for a line starting with "%YAML". (Jason Franklin) Files: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.0361 Problem: Internal error when using "0" for a callback. Solution: Give a normal error. (closes #5743) Files: src/evalvars.c, src/testdir/test_timers.vim Patch 8.2.0362 Problem: MS-Windows: channel test fails if grep is not available. Solution: Use another command. (Ken Takata, closes #5739) Files: src/testdir/test_channel.vim Patch 8.2.0363 Problem: Some Normal mode commands not tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5746) Files: src/testdir/test_cindent.vim, src/testdir/test_cmdline.vim, src/testdir/test_edit.vim, src/testdir/test_indent.vim, src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim Patch 8.2.0364 Problem: Printf test failing on Haiku. Solution: Make a difference between int and short. (Dominique Pellé, closes #5749) Files: src/message.c Patch 8.2.0365 Problem: Tag kind can't be a multibyte character. (Marcin Szamotulski) Solution: Recognize multibyte character. (closes #5724) Files: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.0366 Problem: Hardcopy command not tested enough. Solution: Add tests for printing. (Dominique Pellé, closes #5748) Files: src/testdir/test_hardcopy.vim Patch 8.2.0367 Problem: Can use :pedit in a popup window. Solution: Disallow it. Files: src/ex_docmd.c, src/testdir/test_popupwin.vim Patch 8.2.0368 Problem: Vim9: import that redefines local variable does not fail. Solution: Check for already defined symbols. Files: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0369 Problem: Various Normal mode commands not fully tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5751) Files: src/testdir/test_arglist.vim, src/testdir/test_changelist.vim, src/testdir/test_charsearch.vim, src/testdir/test_cmdline.vim, src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_gf.vim, src/testdir/test_iminsert.vim, src/testdir/test_increment.vim, src/testdir/test_marks.vim, src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_put.vim, src/testdir/test_registers.vim, src/testdir/test_tagjump.vim, src/testdir/test_visual.vim Patch 8.2.0370 Problem: The typebuf_was_filled flag is sometimes not reset, which may cause a hang. Solution: Make sure typebuf_was_filled is reset when the typeahead buffer is empty. Files: src/edit.c, src/getchar.c, Patch 8.2.0371 Problem: Crash with combination of terminal popup and autocmd. Solution: Disallow closing a popup that is the current window. Add a check that the current buffer is valid. (closes #5754) Files: src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0372 Problem: Prop_find() may not find text property at start of the line. Solution: Adjust the loop to find properties. (Axel Forsman, closes #5761, closes #5663) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.0373 Problem: Type of term_sendkeys() is unknown. Solution: Just return zero. (closes #5762) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0374 Problem: Using wrong printf directive for jump location. Solution: Change "%lld" to "%d". (James McCoy, closes #5773) Files: src/vim9execute.c Patch 8.2.0375 Problem: Coverity warning for not using return value. Solution: Move error message to separate function. Files: src/popupwin.c Patch 8.2.0376 Problem: Nasty callback test fails on some systems. Solution: Increase the sleep time. Files: src/testdir/test_terminal.vim Patch 8.2.0377 Problem: No CI test for a big-endian system. Solution: Test with s390x. (James McCoy, closes #5772) Files: .travis.yml Patch 8.2.0378 Problem: prop_find() does not find all props. Solution: Check being in the start line. (Axel Forsman, closes #5776) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.0379 Problem: Gcc warns for ambiguous else. Solution: Add braces. (Dominique Pellé, closes #5778) Files: src/textprop.c Patch 8.2.0380 Problem: Tiny popup when creating a terminal popup without minwidth. Solution: Use a default minimum size of 5 lines of 20 characters. Files: src/popupwin.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_m1.dump Patch 8.2.0381 Problem: Using freed memory with :lvimgrep and autocommand. (extracted from POC by Dominique Pellé) Solution: Avoid deleting a dummy buffer used in a window. (closes #5777) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0382 Problem: Some tests fail when run under valgrind. Solution: Increase timeouts. Files: src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim, src/testdir/test_channel.vim, src/testdir/test_ins_complete.vim, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump, src/testdir/dumps/Test_terminal_popup_2.dump, src/testdir/dumps/Test_terminal_popup_3.dump, src/testdir/dumps/Test_terminal_popup_5.dump, src/testdir/dumps/Test_terminal_popup_6.dump, src/testdir/dumps/Test_terminal_popup_7.dump, src/testdir/dumps/Test_terminal_popup_8.dump, src/testdir/dumps/Test_terminal_popup_m1.dump Patch 8.2.0383 Problem: Wrong feature check causes test not to be run. Solution: Use CheckFunction instead of CheckFeature. (Ozaki Kiichi, closes #5781) Files: src/testdir/test_channel.vim Patch 8.2.0384 Problem: Travis CI has warnings. Solution: Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779) Files: .travis.yml Patch 8.2.0385 Problem: Menu functionality insufficiently tested. Solution: Add tests. Add menu_info(). (Yegappan Lakshmanan, closes #5760) Files: runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/menu.c, src/proto/menu.pro, src/testdir/test_menu.vim, src/testdir/test_popup.vim, src/testdir/test_termcodes.vim Patch 8.2.0386 (after 8.2.0385) Problem: Part from unfinished patch got included. Solution: Undo that part. Files: src/evalfunc.c Patch 8.2.0387 Problem: Error for possible NULL argument to qsort(). Solution: Don't call qsort() when there is nothing to sort. (Dominique Pellé, closes #5780) Files: src/spellsuggest.c Patch 8.2.0388 Problem: Printmbcharset option not tested. Solution: Add a test. Enable PostScript for AppVeyor build. (Dominique Pellé, closes #5783) Files: appveyor.yml, src/testdir/test_hardcopy.vim Patch 8.2.0389 Problem: Delayed redraw when shifting text from Insert mode. Solution: Use msg_attr_keep() instead of msg(). (closes #5782) Files: src/ops.c Patch 8.2.0390 Problem: Terminal postponed scrollback test is flaky. Solution: Add delay in between sending keys. Rename dump files. Files: src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_01.dump, src/testdir/dumps/Test_terminal_02.dump, src/testdir/dumps/Test_terminal_03.dump, src/testdir/dumps/Test_terminal_scrollback_1.dump, src/testdir/dumps/Test_terminal_scrollback_2.dump, src/testdir/dumps/Test_terminal_scrollback_3.dump Patch 8.2.0391 (after 8.2.0377) Problem: CI test coverage dropped. Solution: Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788) Files: .travis.yml Patch 8.2.0392 Problem: Coverity warns for using array index out of range. Solution: Add extra "if" to avoid warning. Files: src/menu.c Patch 8.2.0393 Problem: Coverity warns for not using return value. Solution: Add (void). Files: src/popupmenu.c Patch 8.2.0394 Problem: Coverity complains about using NULL pointer. Solution: Use empty string when option value is NULL. Files: src/optionstr.c Patch 8.2.0395 Problem: Build fails with FEAT_EVAL but without FEAT_MENU. Solution: Add #ifdef. (John Marriott) Files: src/evalfunc.c Patch 8.2.0396 Problem: Cmdexpand.c insufficiently tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5789) Files: src/testdir/test_cmdline.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_usercommands.vim Patch 8.2.0397 Problem: Delayed screen update when using undo from Insert mode. Solution: Update w_topline and cursor shape before sleeping. (closes #5790) Files: src/normal.c Patch 8.2.0398 Problem: Profile test fails when two functions take same time. Solution: Add a short sleep in once function. (closes #5797) Files: src/testdir/test_profile.vim Patch 8.2.0399 Problem: Various memory leaks. Solution: Avoid the leaks. (Ozaki Kiichi, closes #5803) Files: src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c, src/scriptfile.c, src/userfunc.c Patch 8.2.0400 Problem: Not all tests using a terminal are in the list of flaky tests. Solution: Introduce the test_is_flaky flag. Files: src/testdir/runtest.vim, src/testdir/term_util.vim, src/testdir/screendump.vim, src/testdir/test_autocmd.vim Patch 8.2.0401 Problem: Not enough test coverage for evalvars.c. Solution: Add more tests. (Yegappan Lakshmanan, closes #5804) Files: src/testdir/test_cmdline.vim, src/testdir/test_const.vim, src/testdir/test_diffmode.vim, src/testdir/test_excmd.vim, src/testdir/test_functions.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_spell.vim, src/testdir/test_unlet.vim, src/testdir/test_user_func.vim, src/testdir/test_vimscript.vim Patch 8.2.0402 (after 8.2.0401) Problem: Setting local instead of global flag. Solution: Prepend "g:" to "test_is_flaky". Files: src/testdir/term_util.vim, src/testdir/screendump.vim, src/testdir/test_autocmd.vim Patch 8.2.0403 Problem: When 'buftype' is "nofile" there is no overwrite check. Solution: Also check for existing file when 'buftype' is set. (closes #5807) Files: src/ex_cmds.c, src/testdir/test_options.vim Patch 8.2.0404 Problem: Writefile() error does not give a hint. Solution: Add remark about first argument. Files: src/filepath.c, src/testdir/test_writefile.vim Patch 8.2.0405 Problem: MSVC: build fails with some combination of features. Solution: Enable CHANNEL if TERMINAL is enabled. (Mike Williams) Files: src/Make_mvc.mak Patch 8.2.0406 Problem: FileReadCmd event not well tested. Solution: Add a test. Files: src/testdir/test_autocmd.vim Patch 8.2.0407 Problem: No early check if :find and :sfind have an argument. Solution: Add EX_NEEDARG. Files: src/ex_cmds.h, src/testdir/test_findfile.vim, src/testdir/test_find_complete.vim Patch 8.2.0408 Problem: Delete() commented out for testing. Solution: Undo commenting-out. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0409 Problem: Search test leaves file behind. Solution: Delete the file. Also use Check commands. Files: src/testdir/test_search.vim Patch 8.2.0410 Problem: Channel test fails too often on slow Mac. Solution: Increase waiting time to 10 seconds. Files: src/testdir/test_channel.vim Patch 8.2.0411 Problem: Mac: breakcheck is using a value from the stone ages. Solution: Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson) Files: src/os_mac.h Patch 8.2.0412 Problem: MS-Windows: cannot use vimtutor from the start menu. Solution: Better check for writable directory. Use the right path for the executable. (Wu Yongwei, closes #5774, closes #5756) Files: vimtutor.bat Patch 8.2.0413 Problem: Buffer menu does not handle special buffers properly. Solution: Keep a dictionary with buffer names to reliably keep track of entries. Also trigger BufFilePre and BufFilePost for command-line and terminal buffers when the name changes. Files: src/testdir/test_alot.vim, src/testdir/Make_all.mak, runtime/menu.vim, src/ex_getln.c, src/terminal.c, src/testdir/test_menu.vim Patch 8.2.0414 Problem: Channel connect_waittime() test is flaky. Solution: Set the test_is_flaky flag. Use test_is_flaky for more tests. Files: src/testdir/test_channel.vim, src/testdir/test_terminal.vim, src/testdir/runtest.vim Patch 8.2.0415 Problem: Bsdl filetype is not detected. Solution: Add an entry in the filetype list. (Daniel Kho, closes #5810) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0416 Problem: Test leaves file behind. Solution: Delete the file. Files: src/testdir/test_indent.vim Patch 8.2.0417 Problem: Travis CI config can be improved. Solution: Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE" to avoid messages about viminfo. (Ozaki Kiichi, closes #5813) Files: .travis.yml, ci/load-snd-dummy.sh Patch 8.2.0418 Problem: Code in eval.c not sufficiently covered by tests. Solution: Add more tests. (Yegappan Lakshmanan, closes #5815) Files: src/testdir/test_blob.vim, src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_job_fails.vim, src/testdir/test_lambda.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_marks.vim, src/testdir/test_method.vim, src/testdir/test_normal.vim, src/testdir/test_unlet.vim, src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim Patch 8.2.0419 Problem: Various memory leaks in Vim9 script code. Solution: Fix the leaks. (Ozaki Kiichi, closes #5814) Files: src/proto/vim9compile.pro, src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/vim9script.c Patch 8.2.0420 Problem: Vim9: cannot interrupt a loop with CTRL-C. Solution: Check for CTRL-C once in a while. Doesn't fully work yet. Files: src/misc1.c, src/proto/misc1.pro, src/testdir/test_vim9_script.vim Patch 8.2.0421 Problem: Interrupting with CTRL-C does not always work. Solution: Recognize CTRL-C while modifyOtherKeys is set. Files: src/ui.c, src/testdir/test_vim9_script.vim, src/evalfunc.c Patch 8.2.0422 Problem: Crash when passing popup window to win_splitmove(). (john Devin) Solution: Disallow moving a popup window. (closes #5816) Files: src/testdir/test_popupwin.vim, src/evalwindow.c Patch 8.2.0423 Problem: In some environments a few tests are expected to fail. Solution: Add $TEST_MAY_FAIL to list tests that should not cause make to fail. Files: src/testdir/runtest.vim Patch 8.2.0424 Problem: Checking for wrong return value. (Tom) Solution: Invert the check and fix the test. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0425 Problem: Code for modeless selection not sufficiently tested. Solution: Add tests. Move mouse code functionality to a common script file. (Yegappan Lakshmanan, closes #5821) Files: src/testdir/Make_all.mak, src/testdir/gen_opt_test.vim, src/testdir/mouse.vim, src/testdir/test_edit.vim, src/testdir/test_global.vim, src/testdir/test_modeless.vim, src/testdir/test_normal.vim, src/testdir/test_selectmode.vim, src/testdir/test_termcodes.vim, src/testdir/test_visual.vim, src/ui.c Patch 8.2.0426 Problem: Some errors were not tested for. Solution: Add tests. (Dominique Pellé, closes #5824) Files: src/testdir/test_buffer.vim, src/testdir/test_options.vim, src/testdir/test_tcl.vim, src/testdir/test_terminal.vim, src/testdir/test_window_cmd.vim Patch 8.2.0427 Problem: It is not possible to check for a typo in a feature name. Solution: Add an extra argument to has(). Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.vim, src/testdir/test_functions.vim Patch 8.2.0428 Problem: Buffer name may leak. Solution: Free the buffer name before overwriting it. Files: src/terminal.c Patch 8.2.0429 Problem: No warning when test checks for option that never exists. Solution: In tests check that the option can exist. Files: src/testdir/check.vim Patch 8.2.0430 Problem: Window creation failure not properly tested. Solution: Improve the test. (Yegappan Lakshmanan, closes #5826) Files: src/testdir/test_cmdline.vim, src/testdir/test_window_cmd.vim Patch 8.2.0431 Problem: Some compilers don't support using \e for Esc. (Yegappan Lakshmanan) Solution: use \033 instead. Files: src/ui.c Patch 8.2.0432 Problem: A few tests fail in a huge terminal. Solution: Make the tests pass. (Dominique Pellé, closes #5829) Files: src/testdir/test_autocmd.vim, src/testdir/test_options.vim, src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim, src/testdir/test_window_cmd.vim Patch 8.2.0433 Problem: INT signal not properly tested. Solution: Add a test. Also clean up some unnecessary lines. (Dominique Pellé, closes #5828) Files: src/testdir/test_display.vim, src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, src/testdir/test_messages.vim, src/testdir/test_signals.vim Patch 8.2.0434 Problem: MS-Windows with VTP: Normal color not working. Solution: After changing the Normal color update the VTP console color. (Nobuhiro Takasaki, closes #5836) Files: src/highlight.c Patch 8.2.0435 Problem: Channel contents might be freed twice. Solution: Call either channel_free_channel() or channel_free(), not both. (Nobuhiro Takasaki, closes #5835) Files: src/channel.c Patch 8.2.0436 Problem: No warnings for incorrect printf arguments. Solution: Fix attribute in declaration. Fix uncovered mistakes. (Dominique Pellé, closes #5834) Files: src/proto.h, src/eval.c, src/ops.c, src/spellfile.c, src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/gui.c Patch 8.2.0437 Problem: MS-Windows installer contains old stuff. Solution: Rely on Windows NT. (Ken Takata, closes #5832) Files: src/dosinst.c Patch 8.2.0438 Problem: Terminal noblock test is very flaky on BSD. Solution: Change WaitFor() to WaitForAssert() to be able to see why it failed. Add a short wait in between sending keys. Files: src/testdir/test_terminal.vim Patch 8.2.0439 Problem: :disassemble has minor flaws. Solution: Format the code. Use (int) instead of (char) for %c. (also by James McCoy, closes #5831) Files: src/vim9execute.c Patch 8.2.0440 Problem: Terminal noblock test is still very flaky on BSD. Solution: Increase the waiting time. Files: src/testdir/test_terminal.vim Patch 8.2.0441 Problem: Terminal noblock test is still failing on BSD. Solution: Reduce the amount of text. Files: src/testdir/test_terminal.vim Patch 8.2.0442 Problem: Channel contents might be used after being freed. Solution: Reset the job channel before freeing the channel. Files: src/channel.c Patch 8.2.0443 Problem: Clipboard code is spread out. Solution: Move clipboard code to its own file. (Yegappan Lakshmanan, closes #5827) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/clipboard.c, src/ops.c, src/proto.h, src/proto/clipboard.pro, src/proto/ops.pro, src/proto/register.pro, src/proto/ui.pro, src/register.c, src/ui.c Patch 8.2.0444 Problem: Swap file test fails on some systems. Solution: Preserve the swap file. Send NL terminated keys. Files: src/testdir/test_swap.vim Patch 8.2.0445 Problem: Png and xpm files not in MS-Windows zip file. Solution: Move files to shared between Unix and Windows target. Files: Filelist Patch 8.2.0446 Problem: Listener with undo of deleting all lines not tested. Solution: Add a test. Files: src/testdir/test_listener.vim Patch 8.2.0447 Problem: Terminal scroll tests fails on some systems. Solution: Remove the fixed 100msec wait for Win32. Add a loop to wait until scrolling has finished. (James McCoy, closes #5842) Files: src/testdir/test_terminal.vim Patch 8.2.0448 Problem: Various functions not properly tested. Solution: Add more tests, especially for failures. (Yegappan Lakshmanan, closes #5843) Files: runtime/doc/eval.txt, src/testdir/test_blob.vim, src/testdir/test_breakindent.vim, src/testdir/test_charsearch.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_exists.vim, src/testdir/test_expand_func.vim, src/testdir/test_expr.vim, src/testdir/test_file_perm.vim, src/testdir/test_functions.vim, src/testdir/test_gui.vim, src/testdir/test_listdict.vim, src/testdir/test_marks.vim, src/testdir/test_partial.vim, src/testdir/test_registers.vim, src/testdir/test_search.vim, src/testdir/test_spell.vim, src/testdir/test_substitute.vim, src/testdir/test_syn_attr.vim, src/testdir/test_syntax.vim, src/testdir/test_taglist.vim, src/testdir/test_utf8.vim, src/testdir/test_vartabs.vim, src/testdir/test_window_cmd.vim Patch 8.2.0449 Problem: Vim9: crash if return type is invalid. (Yegappan Lakshmanan) Solution: Always return some type, not NULL. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0450 Problem: Not enough testing for restricted mode and function calls. Solution: Add more tests. (Yegappan Lakshmanan, closes #5847) Files: src/testdir/test_method.vim, src/testdir/test_restricted.vim, src/testdir/test_vim9_script.vim Patch 8.2.0451 Problem: Win32: double-width character displayed incorrectly. Solution: First move the cursor to the first column. (Nobuhiro Takasaki, closes #5848) Files: src/os_win32.c Patch 8.2.0452 Problem: channel_parse_messages() fails when called recursively. Solution: Return for a recursive call. (closes #5835) Files: src/channel.c Patch 8.2.0453 Problem: Trailing space in job_start() command causes empty argument. Solution: Ignore trailing space. (closes #5851) Files: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.0454 Problem: Some tests fail when the system is slow. Solution: Make the run number global, use in the test to increase the waiting time. (closes #5841) Files: src/testdir/runtest.vim, src/testdir/test_functions.vim Patch 8.2.0455 Problem: Cannot set the highlight group for a specific terminal. Solution: Add the "highlight" option to term_start(). (closes #5818) Files: src/terminal.c, src/structs.h, src/channel.c, src/testdir/test_terminal.vim, runtime/doc/terminal.txt, src/testdir/dumps/Test_terminal_popup_Terminal.dump, src/testdir/dumps/Test_terminal_popup_MyTermCol.dump Patch 8.2.0456 Problem: Test_confirm_cmd is flaky. Solution: Add a term_wait() call. (closes #5854) Files: src/testdir/test_excmd.vim Patch 8.2.0457 Problem: Test_quotestar() often fails when run under valgrind. Solution: Wait longer for the GUI to start. Files: src/testdir/test_quotestar.vim Patch 8.2.0458 Problem: Missing feature check in test function. Solution: Add check commands. Files: src/testdir/test_excmd.vim Patch 8.2.0459 Problem: Cannot check if a function name is correct. Solution: Add "?funcname" to exists(). Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.vim, src/testdir/check.vim Patch 8.2.0460 (after 8.2.0459) Problem: Build failure because of wrong feature name. Solution: Correct feature name. Files: src/evalfunc.c Patch 8.2.0461 Problem: Confirm test fails on amd64 system. (Alimar Riesebieter) Solution: Add an extra WaitForAssert(). (Dominique Pellé) Files: src/testdir/test_excmd.vim Patch 8.2.0462 Problem: Previewwindow test fails on some systems. (James McCoy) Solution: Wait a bit after sending the "o". (closes #5849) Files: src/testdir/test_popup.vim, src/testdir/dumps/Test_popup_and_previewwindow_01.dump Patch 8.2.0463 Problem: Build error without float and channel feature. (John Marriott) Solution: Define return types always. Files: src/globals.h, src/evalfunc.c Patch 8.2.0464 Problem: Typos and other small problems. Solution: Fix the typos. Add missing files to the distribution. Files: Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c, src/os_unixx.h, src/proto/popupwin.pro Patch 8.2.0465 Problem: Vim9: dead code and wrong return type. Solution: Remove dead code. Fix return type. Add more tests. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0466 (after 8.2.0452) Problem: Not parsing messages recursively breaks the govim plugin. Solution: When called recursively do handle messages but do not close channels. Files: src/channel.c Patch 8.2.0467 Problem: Vim9: some errors are not tested Solution: Add more tests. Fix that Vim9 script flag is not reset. Files: src/vim9compile.c, src/scriptfile.c, src/dict.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0468 Problem: GUI: pixel dust with some fonts and characters. Solution: Always redraw the character before the cursor. (Nir Lichtman, closes #5549, closes #5856) Files: src/gui.c, src/proto/gui.pro, src/screen.c Patch 8.2.0469 Problem: Vim9: no error for missing ] after list. Solution: Add error message. Add more tests. Files: src/globals.h, src/list.c, src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_lambda.vim Patch 8.2.0470 Problem: Test_confirm_cmd_cancel() can fail on a slow system. Solution: Use WaitForAssert(). (Ozaki Kiichi, closes #5861) Files: src/testdir/test_excmd.vim Patch 8.2.0471 Problem: Missing change to compile_list(). Solution: Add error message. Files: src/vim9compile.c Patch 8.2.0472 Problem: Terminal highlight name is set twice, leaking memory. Solution: Delete one. Files: src/terminal.c Patch 8.2.0473 Problem: Variables declared in an outer scope. Solution: Declare variables only in the scope where they are used. Files: src/evalvars.c Patch 8.2.0474 (after 8.2.0403) Problem: Cannot use :write when using a plugin with BufWriteCmd. Solution: Reset BF_NOTEDITED after BufWriteCmd. (closes #5807) Files: src/fileio.c, src/testdir/test_autocmd.vim Patch 8.2.0475 Problem: Channel out_cb test still fails sometimes on Mac. Solution: Use an even longer timeout. Files: src/testdir/test_channel.vim Patch 8.2.0476 Problem: Terminal nasty callback test fails sometimes. Solution: use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865) Files: src/testdir/test_terminal.vim Patch 8.2.0477 Problem: Vim9: error messages not tested. Solution: Add more tests. Files: src/testdir/test_vim9_expr.vim, src/vim9execute.c Patch 8.2.0478 Problem: New buffers are not added to the Buffers menu. Solution: Turn number into string. (Yee Cheng Chin, closes #5864) Files: runtime/menu.vim, src/testdir/test_menu.vim Patch 8.2.0479 Problem: Unloading shared libraries on exit has no purpose. Solution: Do not unload shared libraries on exit. Files: src/if_lua.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c Patch 8.2.0480 Problem: Vim9: some code is not tested. Solution: Add more tests. Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c Patch 8.2.0481 Problem: Travis is still using trusty. Solution: Adjust config to use bionic. (Ozaki Kiichi, closes #5868) Files: .travis.yml, src/testdir/lsan-suppress.txt Patch 8.2.0482 Problem: Channel and sandbox code not sufficiently tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5855) Files: src/option.h, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_restricted.vim, src/testdir/test_smartindent.vim, src/testdir/test_substitute.vim, src/testdir/test_terminal.vim, src/testdir/test_textformat.vim, src/testdir/test_visual.vim Patch 8.2.0483 Problem: Vim9: "let x = x + 1" does not give an error. Solution: Hide the variable when compiling the expression. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0484 Problem: Vim9: some error messages not tested. Solution: Add more tests. Files: src/testdir/test_vim9_expr.vim Patch 8.2.0485 (after 8.2.0483) Problem: Vim9 script test fails. Solution: Stricter condition for adding new local variable. Files: Stricter condition for adding new local variable. Patch 8.2.0486 Problem: Vim9: some code and error messages not tested. Solution: Add more tests. Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0487 Problem: Vim9: compiling not sufficiently tested. Solution: Add more tests. Fix bug with PCALL. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0488 Problem: Vim9: Compiling can break when using a lambda inside :def. Solution: Do not keep a pointer to the dfunc_T for longer time. Files: src/vim9compile.c, src/vim9.h Patch 8.2.0489 Problem: Vim9: memory leaks. Solution: Free memory in the right place. Add hints for using asan. Files: src/vim9compile.c, src/testdir/lsan-suppress.txt, src/Makefile Patch 8.2.0490 Problem: Win32: VTP doesn't respect 'restorescreen'. Solution: Use escape codes to switch to alternate screen. (Nobuhiro Takasaki, closes #5872) Files: src/os_win32.c Patch 8.2.0491 Problem: Cannot recognize a <script> mapping using maparg(). Solution: Add the "script" key. (closes #5873) Files: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim Patch 8.2.0492 Problem: Vim9: some error messages not tested. Solution: Add more tests. Remove dead code. Fix uncovered bugs. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0493 Problem: Vim9: some error messages not tested. Solution: Add more tests. Fix uncovered bugs. Files: src/vim9compile.c, src/vim9execute.c, src/testing.c, src/eval.c, src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt, runtime/doc/testing.txt, src/testdir/test_vim9_script.vim Patch 8.2.0494 Problem: Vim9: asan error. Solution: Only get the type when there is one. Files: src/vim9compile.c Patch 8.2.0495 Problem: Vim9: some code not tested. Solution: Add more tests. Support more const expressions. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0496 Problem: Vim9: disassemble test fails. Solution: Separate test cases with recognized constant expressions. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0497 Problem: Too verbose output from the asan build in Travis. Solution: Filter out suppression messages. (Ozaki Kiichi, closes #5874) Files: .travis.yml Patch 8.2.0498 Problem: Coverity complains about uninitialized field. Solution: Initialize the whole typval_T. Files: src/vim9compile.c Patch 8.2.0499 Problem: Calling a lambda is slower than evaluating a string. Solution: Make calling a lambda faster. (Ken Takata, closes #5727) Files: src/userfunc.c Patch 8.2.0500 Problem: Using the same loop in many places. Solution: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339) Files: src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c, src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h, src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c, src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c, src/quickfix.c, src/screen.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c, src/userfunc.c, src/window.c Patch 8.2.0501 Problem: Vim9: script test fails when channel feature is missing. Solution: Add a has() condition. Files: src/testdir/test_vim9_script.vim Patch 8.2.0502 Problem: Vim9: some code is not tested. Solution: Add more tests. Fix uncovered problems. Files: src/vim9compile.c, src/regexp.c, src/proto/regexp.pro, src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c, src/tag.c, src/userfunc.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0503 Problem: Vim9: some code is not tested. Solution: Add tests. Fix uncovered problems. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0504 Problem: Vim9: leaking scope memory when compilation fails. Solution: Cleanup the scope list. Files: src/vim9compile.c Patch 8.2.0505 Problem: term_gettty() not sufficiently tested. Solution: Add more asserts. (Dominique Pellé, closes #5877) Files: src/testdir/test_terminal.vim Patch 8.2.0506 Problem: Coverity complains about ignoring return value. Solution: Add (void). Files: src/userfunc.c Patch 8.2.0507 (after 8.2.0472) Problem: Getbufvar() may get the wrong dictionary. (David le Blanc) Solution: Check for empty name. (closes #5878) Files: src/evalvars.c, src/testdir/test_functions.vim Patch 8.2.0508 Problem: Vim9: func and partial types not done yet Solution: Fill in details about func declaration, drop a separate partial declaration. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/globals.h, src/structs.h, src/evalfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0509 Problem: various code is not properly tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5871) Files: src/main.c, src/testdir/check.vim, src/testdir/shared.vim, src/testdir/term_util.vim, src/testdir/test_clientserver.vim, src/testdir/test_ex_mode.vim, src/testdir/test_expand.vim, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_startup.vim, src/testdir/test_textformat.vim, src/testdir/test_trycatch.vim, src/testdir/test_viminfo.vim Patch 8.2.0510 Problem: Coverity complains about using uninitialized variable. Solution: Assign a value to "scol". Move code inside NULL check. Files: src/beval.c, src/popupwin.c Patch 8.2.0511 Problem: Cscope code not fully tested. Solution: Add more test cases. (Dominique Pellé, closes #5886) Files: src/testdir/test_cscope.vim Patch 8.2.0512 Problem: Vim9: no optional arguments in func type. Solution: Check for question mark after type. Find function reference without function(). Files: src/vim9compile.c, src/vim9execute.c, src/structs.h, src/globals.h, src/vim.h, src/vim9.h, src/userfunc.c, src/testdir/Make_all.mak, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0513 Problem: Reading past allocated memory when using varargs. Solution: Fix copying function argument types. Files: src/vim9compile.c Patch 8.2.0514 Problem: Several global functions are used in only one file. Solution: Make the functions static. (Yegappan Lakshmanan, closes #5884) Files: src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c, src/proto/drawscreen.pro, src/proto/evalvars.pro, src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro, src/version.c Patch 8.2.0515 Problem: Some compilers cannot add to "void *". Solution: Cast to "char *". Files: src/vim9compile.c Patch 8.2.0516 Problem: Client-server code is spread out. Solution: Move client-server code to a new file. (Yegappan Lakshmanan, closes #5885) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h, src/proto/clientserver.pro, src/proto/main.pro Patch 8.2.0517 Problem: Vim9: cannot separate "func" and "func(): void". Solution: Use VAR_ANY for "any" and VAR_UNKNOWN for "no type". Files: src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c, src/evalvars.c, src/testing.c, src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/if_py_both.h, src/json.c, src/testdir/test_vim9_func.vim Patch 8.2.0518 Problem: A terminal falls back to setting $TERM to "xterm". Solution: Use "xterm-color" if more than 16 colors are supported and "xterm-256color" if at least 256 colors are supported. (closes #5887) Files: src/os_unix.c Patch 8.2.0519 Problem: Vim9: return type not properly checked. Solution: Check type properly, also at runtime. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0520 Problem: Tests are not listed in sorted order. Solution: Move test_ex_mode. (Doug Richardson, closes #5889) Files: src/testdir/Make_all.mak Patch 8.2.0521 Problem: Crash when reading a blob fails. Solution: Avoid keeping a pointer to a freed blob object. (Dominique Pellé, closes #5890) Adjust error messages. Files: src/filepath.c, src/testdir/test_blob.vim Patch 8.2.0522 Problem: Several errors are not tested for. Solution: Add tests. (Yegappan Lakshmanan, closes #5892) Files: src/testdir/test_autocmd.vim, src/testdir/test_clientserver.vim, src/testdir/test_digraph.vim, src/testdir/test_expand.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_gui.vim, src/testdir/test_highlight.vim, src/testdir/test_ins_complete.vim, src/testdir/test_lambda.vim, src/testdir/test_listdict.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_preview.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim Patch 8.2.0523 Problem: Loops are repeated. Solution: Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882) Files: src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c, src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c, src/userfunc.c, src/vim9compile.c Patch 8.2.0524 Problem: Win32: searching for file matches is slow. Solution: Instead of making another round to find any short filename, check for the short name right away. Avoid using an ordinary file like a directory. (Nir Lichtman, closes #5883) Files: src/filepath.c Patch 8.2.0525 (after 8.2.0524) Problem: Win32: typo in assignment and misplaced paren. Solution: Fix the syntax. Files: src/filepath.c Patch 8.2.0526 Problem: Gcc 9 complains about empty statement. Solution: Add {}. (Dominique Pellé, closes #5894) Files: src/evalfunc.c Patch 8.2.0527 Problem: Vim9: function types insufficiently tested. Solution: Add more tests. Fix white space check. Add "test_vim9" target. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/Makefile, src/testdir/Makefile, src/testdir/Make_all.mak Patch 8.2.0528 Problem: Vim9: function arguments insufficiently tested. Solution: Check types. Add more tests. Fix function with varargs only. Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0529 Problem: Vim9: function argument with default not checked. Solution: Check type of argument with default value. Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0530 Problem: Test crashes on s390. (James McCoy) Solution: Explicitly define an 8 big signed type. (closes #5897) Files: src/structs.h Patch 8.2.0531 Problem: Various errors not tested. Solution: Add tests. (Yegappan Lakshmanan, closes #5895) Files: src/testdir/test_search.vim, src/testdir/test_source.vim, src/testdir/test_syntax.vim, src/testdir/test_user_func.vim, src/testdir/test_vimscript.vim Patch 8.2.0532 Problem: Cannot use simplify() as a method. Solution: Add FEARG_1. (closes #5896) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.0533 Problem: Tests using term_wait() can still be flaky. Solution: Increase the wait time when rerunning a test. (James McCoy, closes #5899) Halve the initial times to make tests run faster when there is no rerun. Files: src/testdir/term_util.vim, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_balloon.vim, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, src/testdir/test_cursorline.vim, src/testdir/test_debugger.vim, src/testdir/test_diffmode.vim, src/testdir/test_display.vim, src/testdir/test_functions.vim, src/testdir/test_highlight.vim, src/testdir/test_ins_complete.vim, src/testdir/test_mapping.vim, src/testdir/test_match.vim, src/testdir/test_matchadd_conceal.vim, src/testdir/test_messages.vim, src/testdir/test_number.vim, src/testdir/test_popup.vim, src/testdir/test_popupwin.vim, src/testdir/test_profile.vim, src/testdir/test_search.vim, src/testdir/test_search_stat.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_statusline.vim, src/testdir/test_suspend.vim, src/testdir/test_swap.vim, src/testdir/test_tagjump.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal_fail.vim, src/testdir/test_timers.vim, src/testdir/test_vimscript.vim Patch 8.2.0534 Problem: Client-server test fails under valgrind. Solution: Use WaitForAssert(). Files: src/testdir/test_clientserver.vim Patch 8.2.0535 Problem: Regexp patterns not fully tested. Solution: Add more regexp tests and others. (Yegappan Lakshmanan, closes #5901) Files: src/testdir/test_marks.vim, src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim Patch 8.2.0536 Problem: Vim9: some compilation code not tested. Solution: Add more test cases. Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0537 Problem: Vim9: no check for sandbox when setting v:var. Solution: Check for sandbox. Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.0538 Problem: Vim9: VAR_PARTIAL is not used during compilation. Solution: Remove VAR_PARTIAL. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0539 Problem: Comparing two NULL list fails. Solution: Change the order of comparing two lists. Files: src/list.c, src/testdir/test_assert.vim Patch 8.2.0540 Problem: Regexp and other code not tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5904) Files: src/testdir/test_backspace_opt.vim, src/testdir/test_expr.vim, src/testdir/test_increment.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim, src/testdir/test_substitute.vim, src/testdir/test_terminal.vim, src/testdir/test_virtualedit.vim Patch 8.2.0541 Problem: Travis CI does not give compiler warnings. Solution: Add flags for warnings. Fix uncovered problems. (Ozaki Kiichi, closes #5898) Files: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c, src/libvterm/t/harness.c Patch 8.2.0542 Problem: No test for E386. Solution: Add a test. (Dominique Pellé, closes #5911) Files: src/testdir/test_search.vim Patch 8.2.0543 Problem: Vim9: function with varargs does not work properly. Solution: Improve function type spec and add tests. Fix bugs. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.0544 Problem: Memory leak in search test. Solution: Free msgbuf. (Dominique Pellé, closes #5912) Files: src/search.c Patch 8.2.0545 Problem: Unused arguments ignored in non-standard way. Solution: Add UNUSED instead of (void). Files: src/libvterm/t/harness.c Patch 8.2.0546 Problem: Vim9: varargs implementation is inefficient. Solution: Create list without moving the arguments. Files: src/vim9compile.c, src/vim9execute.c Patch 8.2.0547 Problem: Win32: restoring screen not always done right. Solution: Use a more appropriate method. (Nobuhiro Takasaki, closes #5909) Files: src/os_win32.c Patch 8.2.0548 Problem: Vim9: not all possible func type errors tested. Solution: Add more tests. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0549 Problem: User systemd files not recognized. Solution: Add filetype patterns. (Kevin Locke, closes #5914) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0550 Problem: Some changes in the libvterm upstream code. Solution: Include some changes. Files: src/libvterm/t/harness.c Patch 8.2.0551 Problem: Not all code for options is tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5913) Files: src/testdir/test_options.vim, src/testdir/test_python3.vim, src/testdir/test_undo.vim, src/testdir/test_vimscript.vim Patch 8.2.0552 Problem: Vim9: some errors not covered by tests. Solution: Add more tests. Check Funcref argument types. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0553 (after 8.2.0550) Problem: Error for unused argument. Solution: Add UNUSED. Files: src/libvterm/t/harness.c Patch 8.2.0554 Problem: The GUI doesn't set t_Co. Solution: In the GUI set t_Co to 256 * 256 * 256. (closes #5903) Files: src/term.c, src/proto/term.pro, src/gui.c, src/testdir/test_gui.vim Patch 8.2.0555 Problem: Vim9: line continuation is not always needed. Solution: Recognize continuation lines automatically in list and dict. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0556 Problem: Vim9: memory leak when finding common type. Solution: Store allocated memory in type growarray. Files: src/vim9compile.c Patch 8.2.0557 Problem: No IPv6 support for channels. Solution: Add IPv6 support. (Ozaki Kiichi, closes #5893) Files: .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c, src/proto/channel.pro, src/testdir/check.vim, src/testdir/runtest.vim, src/testdir/test_cdo.vim, src/testdir/test_channel.py, src/testdir/test_channel.vim, src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.vim, src/testdir/test_getcwd.vim, src/testdir/test_hide.vim Patch 8.2.0558 Problem: Vim9: dict code not covered by tests. Solution: Remove dead code, adjust test case. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0559 Problem: Clearing a struct is verbose. Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER(). Files: src/vim.h, src/blowfish.c, src/channel.c, src/charset.c, src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c, src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c, src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c, src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c, src/main.c, src/map.c, src/memfile.c, src/message_test.c, src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c, src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/search.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, src/time.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/if_py_both.h Patch 8.2.0560 Problem: Compiler warning in tiny build. Solution: Move declaration inside #ifdef. (Dominique Pellé, closes #5915) Files: src/ex_docmd.c Patch 8.2.0561 Problem: Vim9: cannot split function call in multiple lines. Solution: Find more arguments in following lines. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0562 Problem: Vim9: cannot split an expression into multiple lines. Solution: Continue in next line after an operator. Files: runtime/doc/vim9.txt, src/macros.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0563 Problem: Vim9: cannot split a function line. Solution: Continue in next line so long as the function isn't done. Files: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0564 Problem: Vim9: calling a def function from non-vim9 may fail. Solution: Convert varargs to a list. Files: src/testdir/test_vim9_func.vim, src/vim9execute.c Patch 8.2.0565 Problem: Vim9: tests contain superfluous line continuation. Solution: Remove line continuation no longer needed. Skip empty lines. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0566 Problem: Vim9: variable can be used uninitialized. Solution: Jump to after where variable is used. Files: src/vim9execute.c Patch 8.2.0567 Problem: Vim9: cannot put comments halfway expressions. Solution: Support # comments in many places. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0568 Problem: The man filetype plugin overwrites the unnamed register. Solution: Use the black hole register. (Jason Franklin) Files: runtime/ftplugin/man.vim, src/testdir/test_man.vim Patch 8.2.0569 Problem: Build failure with tiny version. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.0570 Problem: Vim9: no error when omitting type from argument. Solution: Enforce specifying argument types. Files: src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0571 Problem: Double free when passing invalid argument to job_start(). Solution: Clear the argument when freed. (Masato Nishihata, closes #5926) Files: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.0572 (after 8.2.0571) Problem: Using two lines for free and reset. Solution: Use VIM_CLEAR() instead. (Yegappan Lakshmanan) Files: src/misc2.c Patch 8.2.0573 Problem: using :version twice leaks memory Solution: Only initialize variables once. (Dominique Pellé, closes #5917) Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_version.vim, src/version.c, src/globals.h Patch 8.2.0574 Problem: Ipv6 feature not shown in :version output. Solution: Add ipv6 in :version output. (Ozaki Kiichi, closes #5924) Files: runtime/doc/eval.txt, src/version.c Patch 8.2.0575 Problem: :digraph! not tested. Solution: Add a test. (Dominique Pellé, closes #5925) Files: src/testdir/test_digraph.vim Patch 8.2.0576 Problem: Some errors are not covered by tests. Solution: Add a few more tests. (Dominique Pellé, closes #5920) Files: src/testdir/test_buffer.vim, src/testdir/test_digraph.vim, src/testdir/test_expr.vim, src/testdir/test_messages.vim Patch 8.2.0577 Problem: Not all modifiers supported for :options. Solution: Use all cmdmod.split flags. (closes #4401) Files: src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, src/testdir/test_options.vim, src/testdir/test_usercommands.vim Patch 8.2.0578 Problem: Heredoc for interfaces does not support "trim". Solution: Update the script heredoc support to be same as the :let command. (Yegappan Lakshmanan, closes #5916) Files: runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c, src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in, src/testdir/test87.in, src/testdir/test_lua.vim, src/testdir/test_perl.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim, src/testdir/test_tcl.vim, src/userfunc.c, src/vim9compile.c Patch 8.2.0579 Problem: Coverity warns for unused value. Solution: Change order and use "else if". Files: src/os_unix.c Patch 8.2.0580 Problem: Window size wrong if 'ea' is off and 'splitright' is on and splitting then closing a window. Solution: Put abandoned window space in the right place. (Mark Waggoner) Files: src/testdir/test_winbuf_close.vim, src/window.c Patch 8.2.0581 (after 8.2.0547) Problem: Win32 console: the cursor position is always top-left. Solution: Revert the patch for restoring screen. Files: src/os_win32.c Patch 8.2.0582 Problem: Color ramp test does not show text colors. Solution: Add a row of 16 text colors and 16 bold text colors. Files: src/testdir/color_ramp.vim Patch 8.2.0583 Problem: Vim9: # comment not recognized in :def function. Solution: Recognize and skip # comment. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0584 Problem: Viminfo file uses obsolete function file_readable(). Solution: Use filereadable(). (closes #5934) Files: src/session.c Patch 8.2.0585 Problem: Vim9: # comment not recognized after :vim9script. Solution: Check script type. Make comment after ":echo" work. And in several other places. Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0586 Problem: Vim9: # comment not sufficiently tested Solution: Check for preceding white space. Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0587 Problem: Compiler warning for unused variable. Solution: Add UNUSED. Files: src/ex_docmd.c Patch 8.2.0588 Problem: Putty does not use "sgr" 'ttymouse' by default. Solution: Make "sgr" the default for Putty. (Christian Brabandt, closes #5942) Files: src/term.c Patch 8.2.0589 Problem: .bsd file type not recognized. Solution: Recognize .bsd as BSDL. (Daniel Kho, closes #5945) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0590 Problem: No 'backspace' value allows ignoring the insertion point. Solution: Add the "nostop" and 3 values. (Christian Brabandt, closes #5940) Files: runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h, src/optionstr.c, src/testdir/gen_opt_test.vim, src/testdir/test_backspace_opt.vim Patch 8.2.0591 Problem: MS-Windows: should always support IPv6 Solution: Add build flag. (Ozaki Kiichi, closes #5944) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0592 Problem: MS-Windows with VTP: cursor is not made invisible. Solution: Output the code to make the cursor visible or invisible. (Nobuhiro Takasaki, closes #5941) Files: src/os_win32.c Patch 8.2.0593 Problem: Finding a user command is not optimal. Solution: Start further down in the list of commands. Files: src/ex_cmds.h, src/ex_docmd.c Patch 8.2.0594 Problem: MS-Windows: cannot build with WINVER set to 0x0501. Solution: Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/channel.c, src/config.h.in, src/configure.ac Patch 8.2.0595 Problem: Vim9: not all commands using ends_excmd() tested. Solution: Find # comment after regular commands. Add more tests. Report error for where it was caused. Files: src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/usercmd.c, src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0596 Problem: Crash in test49. Solution: Check the right pointer. Files: src/userfunc.c, src/testdir/test_eval.ok Patch 8.2.0597 Problem: Test_eval is old style. Solution: Change some tests to a new style test. Files: src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_stuff.vim Patch 8.2.0598 Problem: Test_eval_stuff fails in normal terminal. Solution: Close the new window. Files: src/testdir/test_eval_stuff.vim Patch 8.2.0599 Problem: Netbeans interface insufficiently tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5921) Files: runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c, src/testdir/runtest.vim, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim Patch 8.2.0600 Problem: Vim9: cannot read or write w:, t: and b: variables. Solution: Implement load and store for w:, t: and b: variables. (closes #5950) Files: src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0601 Problem: Vim9: :unlet is not compiled. Solution: Implement :unlet instruction and check for errors. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0602 Problem: :unlet $VAR does not work properly. Solution: Make ":lockvar $VAR" fail. Check the "skip" flag. Files: src/evalvars.c, src/globals.h, src/testdir/test_vimscript.vim Patch 8.2.0603 Problem: Configure does not detect moonjit. Solution: Add check for moonjit. (Shlomi Fish, closes #5947) Files: src/configure.ac, src/auto/configure Patch 8.2.0604 Problem: :startinsert in a terminal window used later. Solution: Ignore :startinsert in a terminal window. (closes #5952) Files: src/ex_docmd.c, src/testdir/test_terminal.vim Patch 8.2.0605 Problem: Vim9: cannot unlet an environment variable. Solution: Implement unlet for $VAR. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0606 Problem: Several syntax HL errors not checked. Solution: Add tests. (Yegappan Lakshmanan, closes #5954) Files: src/testdir/test_syntax.vim Patch 8.2.0607 Problem: Gcc warns for using uninitialized variable. (John Marriott) Solution: Set name_end also for environment variables. Files: src/evalvars.c Patch 8.2.0608 Problem: Warning from clang when building message test. Solution: Use a void pointer. (Dominique Pellé, closes #5958) Files: src/message_test.c Patch 8.2.0609 Problem: Configure does not detect moonjit correctly. Solution: Double the brackets. (Ozaki Kiichi) Files: src/configure.ac, src/auto/configure Patch 8.2.0610 Problem: Some tests are still old style. Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5957) Files: src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim, src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_sort.vim, src/testdir/test_syntax.vim, src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim Patch 8.2.0611 Problem: Vim9: no check for space before #comment. Solution: Add space checks. Files: src/eval.c, src/evalvars.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.0612 Problem: Vim9: no check for space before #comment. Solution: Add space checks. Files: src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro, src/gui.c, src/highlight.c, src/testdir/test_vim9_script.vim, src/testdir/test_sort.vim Patch 8.2.0613 Problem: Vim9: no check for space before #comment. Solution: Add space checks. Files: src/highlight.c, src/menu.c, src/syntax.c, src/testdir/test_vim9_script.vim, runtime/lang/menu_de_de.latin1.vim Patch 8.2.0614 Problem: Get ml_get error when deleting a line in 'completefunc'. (Yegappan Lakshmanan) Solution: Lock the text while evaluating 'completefunc'. Files: src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c, src/undo.c, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_gf.vim, src/testdir/test_popup.vim, src/testdir/test_ex_mode.vim, runtime/doc/insert.txt Patch 8.2.0615 Problem: Regexp benchmark test is old style. Solution: Make it a new style test. Fix using a NULL list. Add more tests. (Yegappan Lakshmanan, closes #5963) Files: src/evalbuffer.c, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile, src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim, src/testdir/test_autocmd.vim, src/testdir/test_bench_regexp.vim, src/testdir/test_blob.vim, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim Patch 8.2.0616 Problem: Build error when disabling the diff feature. Solution: Move parenthesis outside of #ifdef. (Tom Ryder) Files: src/drawline.c Patch 8.2.0617 Problem: New error check triggers in Swedish menu. Solution: Insert backslash. (Mats Tegner, closes #5966) Files: runtime/lang/menu_sv_se.latin1.vim Patch 8.2.0618 Problem: Echoing a null list results in no output. (Yegappan Lakshmanan) Solution: Return "[]" instead of NULL in echo_string_core(). Files: src/eval.c, src/testdir/test_messages.vim Patch 8.2.0619 Problem: Null dict is not handled like an empty dict. Solution: Fix the code and add tests. (Yegappan Lakshmanan, closes #5968) Files: src/dict.c, src/eval.c, src/testdir/test_blob.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_search.vim, src/testdir/test_unlet.vim, src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim Patch 8.2.0620 Problem: Error in menu translations. Solution: Insert a backslash before a space. Files: runtime/lang/menu_it_it.latin1.vim, runtime/lang/menu_chinese_gb.936.vim Patch 8.2.0621 Problem: After running tests asan files may remain. Solution: Clean up asan files with "make testclean". Files: src/testdir/Makefile, src/Makefile Patch 8.2.0622 Problem: Haiku: GUI does not compile. Solution: Various fixes. (Emir Sarı, closes #5961) Files: Filelist, README.md, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt, src/Makefile, src/beval.h, src/gui_haiku.cc, src/proto/gui_haiku.pro Patch 8.2.0623 Problem: Typo in test comment. (Christ van Willegen) Solution: Avoid mixing up a data structure with a body part. Files: src/testdir/test_listdict.vim Patch 8.2.0624 Problem: Vim9: no check for space before #comment. Solution: Add space checks. Fix :throw with double quoted string. Files: src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0625 Problem: Vim9: confusing error when calling unknown function. Solution: Give error while compiling. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0626 Problem: Vim9: wrong syntax of function in Vim9 script. Solution: Give error for missing space. Implement :echomsg and :echoerr. (closes #5670) Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c, src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.0627 Problem: Vim9: error message does not work. (Yegappan Lakshmanan) Solution: Swap lines. Files: src/userfunc.c Patch 8.2.0628 Problem: Error in menu translations. Solution: Insert a backslash before a space in one more file. (Shun Bai, Emir Sarı) Files: runtime/lang/menu_zh_cn.utf-8.vim, runtime/lang/menu_ca_es.latin1.vim, runtime/lang/menu_cs_cz.iso_8859-2.vim, runtime/lang/menu_cs_cz.utf-8.vim, runtime/lang/menu_czech_czech_republic.1250.vim, runtime/lang/menu_czech_czech_republic.ascii.vim, runtime/lang/menu_da.utf-8.vim, runtime/lang/menu_fi_fi.latin1.vim, runtime/lang/menu_hu_hu.iso_8859-2.vim, runtime/lang/menu_hu_hu.utf-8.vim, runtime/lang/menu_is_is.latin1.vim, runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim, runtime/lang/menu_sk_sk.iso_8859-2.vim, runtime/lang/menu_sl_si.latin2.vim, runtime/lang/menu_slovak_slovak_republic.1250.vim, runtime/lang/menu_tr_tr.cp1254.vim, runtime/lang/menu_tr_tr.iso_8859-9.vim, runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_vi_vn.vim Patch 8.2.0629 Problem: Setting a boolean option to v:false does not work. Solution: Do not use the string representation of the value. (Christian Brabandt, closes #5974) Files: src/evalvars.c, src/testdir/test_options.vim Patch 8.2.0630 Problem: "make tags" does not cover Haiku GUI file. Solution: Add *.cc files. Files: src/Make_all.mak Patch 8.2.0631 Problem: Haiku file formatted with wrong tabstop. Solution: Use normal tabstop. Fix white space. Files: src/gui_haiku.cc Patch 8.2.0632 Problem: Crash when using Haiku. Solution: Lock the screen. (closes #5975, closes #5973) Files: src/screen.c Patch 8.2.0633 Problem: Crash when using null partial in filter(). Solution: Fix crash. Add more tests. (Yegappan Lakshmanan, closes #5976) Files: src/eval.c, src/testdir/test_blob.vim, src/testdir/test_channel.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_execute_func.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, src/testdir/test_functions.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_partial.vim, src/testdir/test_usercommands.vim Patch 8.2.0634 Problem: Crash with null partial and blob. Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan, closes #5984) Files: src/eval.c, src/list.c, src/testdir/test_blob.vim, src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim, src/testdir/test_channel.vim, src/testdir/test_cursor_func.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fnamemodify.vim, src/testdir/test_functions.vim, src/testdir/test_getvar.vim, src/testdir/test_listdict.vim, src/testdir/test_messages.vim, src/testdir/test_partial.vim, src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_writefile.vim Patch 8.2.0635 Problem: When using 256 colors DarkYellow does not show expected color. Solution: Use color 3 instead of 130. (Romain Lafourcade, closes #5985) Files: src/highlight.c Patch 8.2.0636 Problem: :messages does not show the maintainer when $LANG is unset. Solution: Call get_mess_lang() if available. (closes #5978) Files: src/message.c Patch 8.2.0637 Problem: Incsearch highlighting does not work for ":sort!". Solution: Skip over the exclamation point. (closes #5983) Files: src/ex_getln.c, src/testdir/test_search.vim, src/testdir/dumps/Test_incsearch_sort_02.dump Patch 8.2.0638 Problem: MS-Windows: messages test fails. Solution: Clear environment variables. Files: src/testdir/test_messages.vim Patch 8.2.0639 Problem: MS-Windows: messages test still fails. Solution: Filter out the maintainer message. Files: src/testdir/test_messages.vim Patch 8.2.0640 Problem: Vim9: expanding `=expr` does not work. Solution: Find wildcards in not compiled commands. Reorganize test files. Files: Filelist, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak Patch 8.2.0641 Problem: Vim9: `=expr` not expanded in :hardcopy and "syntax include". Solution: Add the EX_EXPAND flag. Expend "syntax include". Files: src/ex_cmds.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.0642 Problem: Vim9: using invalid index. Solution: Check index for being valid. Fix memory leak. Files: src/vim9compile.c, src/clientserver.c Patch 8.2.0643 (after 8.2.0635) Problem: Terminal uses brown instead of dark yellow. (Romain Lafourcade) Solution: Use color index 3 instead of 130. (closes #5993) Files: src/terminal.c Patch 8.2.0644 Problem: Insufficient testing for invalid function arguments. Solution: Add more tests. (Yegappan Lakshmanan, closes #5988) Files: runtime/doc/eval.txt, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_listener.vim, src/testdir/test_match.vim, src/testdir/test_menu.vim, src/testdir/test_quickfix.vim, src/testdir/test_registers.vim, src/testdir/test_reltime.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_writefile.vim Patch 8.2.0645 Problem: MS-Windows terminal: CTRL-C does not get to child job. Solution: Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro Takasaki, closes #5987) Files: src/terminal.c Patch 8.2.0646 Problem: t_Co uses the value of $COLORS in the GUI. (Masato Nishihata) Solution: Ignore $COLORS for the GUI. (closes #5992) Files: src/os_unix.c, src/term.c Patch 8.2.0647 Problem: MS-Windows: repeat count for events was not used. Solution: Check the repeat count. (Nobuhiro Takasaki, closes #5989) Files: src/os_win32.c Patch 8.2.0648 Problem: Semicolon search does not work in first line. Solution: Allow the cursor to be in line zero. (Christian Brabandt, closes #5996) Files: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.0649 Problem: Undo problem when an InsertLeave autocommand resets undo. (Kutsan Kaplan) Solution: Do not create a new undo block when leaving Insert mode. Files: src/edit.c, src/testdir/test_edit.vim Patch 8.2.0650 Problem: Vim9: script function can be deleted. Solution: Disallow deleting script function. Delete functions when sourcing a script again. Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/scriptfile.c, src/testing.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0651 Problem: Old style benchmark test still in list of distributed files. Solution: Remove the files from the list. Files: Filelist Patch 8.2.0652 (after 8.2.0650) Problem: Compiler warning for char conversion. Solution: Use unsigned char buffer. Files: src/userfunc.c Patch 8.2.0653 (after 8.2.0650) Problem: using uninitialized pointer. Solution: Move assignment up. (John Marriott) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0654 Problem: Building with Python fails. Solution: Add missing argument. Files: src/if_py_both.h Patch 8.2.0655 Problem: Search code not sufficiently tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #5999) Files: src/testdir/test_charsearch.vim, src/testdir/test_gn.vim, src/testdir/test_goto.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_search.vim, src/testdir/test_textformat.vim, src/testdir/test_textobjects.vim, src/testdir/test_visual.vim Patch 8.2.0656 Problem: MS-Windows: redrawing right screen edge may not be needed. Solution: Check the build version. (Nobuhiro Takasaki, closes #6002) Files: src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro Patch 8.2.0657 Problem: Vim9: no check if called variable is a FuncRef. Solution: Add a type check. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0658 (after 8.2.0646) Problem: HP-UX build fails when setenv() is not defined. Solution: Change "colors" to "t_colors". (John Marriott) Files: src/os_unix.c Patch 8.2.0659 Problem: Vim9: no test for equal func type. Solution: Add a test. Improve type check. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0660 Problem: The search.c file is a bit big. Solution: Split off the text object code to a separate file. (Yegappan Lakshmanan, closes #6007) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/proto.h, src/proto/search.pro, src/proto/textobject.pro, src/search.c, src/textobject.c Patch 8.2.0661 Problem: Eval test is still old style. Solution: Change into new style tests. (Yegappan Lakshmanan, closes #6009) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_stuff.vim Patch 8.2.0662 Problem: Cannot use input() in a channel callback. Solution: Reset vgetc_busy. (closes #6010) Files: src/globals.h, src/ex_getln.c, src/evalfunc.c, src/testdir/test_channel.vim Patch 8.2.0663 Problem: Not all systemd temp files are recognized. Solution: Add two more patterns. (Jamie Macdonald, closes #6003) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0664 Problem: Included undesired changes in Makefile. Solution: Revert the changes. Files: src/Makefile Patch 8.2.0665 Problem: Wrongly assuming Python executable is called "python". Solution: Use detected python command. (Ken Takata, closes #6016) Also use CheckFunction if possible. Files: src/testdir/test_terminal.vim, src/testdir/check.vim Patch 8.2.0666 Problem: Ruby test fails on MS-Windows. Solution: Remove the "maintainer" line. (Ken Takata, closes #6015) Files: src/testdir/shared.vim, src/testdir/test_messages.vim, src/testdir/test_ruby.vim Patch 8.2.0667 Problem: Cannot install Haiku version from source. Solution: Update Makefile and rdef file. (Emir Sarı, closes #6013) Files: Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt, src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef Patch 8.2.0668 Problem: Compiler warning for int/size_t usage. Solution: Change "int" to "size_t". (Mike Williams) Files: src/vim9execute.c Patch 8.2.0669 Problem: MS-Windows: display in VTP is a bit slow. Solution: Optimize the code. (Nobuhiro Takasaki, closes #6014) Files: src/os_win32.c, src/screen.c Patch 8.2.0670 Problem: Cannot change window when evaluating 'completefunc'. Solution: Make a difference between not changing text or buffers and also not changing window. Files: src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c, src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c, src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c, src/undo.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.0671 Problem: Haiku: compiler warnings. Solution: Avoid the warnings. Drop display_errors() copy. (Emir Sarı, closes #6018) Files: .gitignore, src/gui.c, src/gui_haiku.cc Patch 8.2.0672 Problem: Heredoc in scripts does not accept lower case marker. Solution: Allow lower case only in non-Vim scripts. (Ken Takata, closes #6019) Files: src/evalvars.c, src/testdir/test_lua.vim, src/testdir/test_perl.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim Patch 8.2.0673 Problem: Cannot build Haiku in shadow directory. Solution: Add symlink. (Ozaki Kiichi, closes #6023) Files: src/Makefile Patch 8.2.0674 Problem: Some source files are too big. Solution: Move text formatting functions to a new file. (Yegappan Lakshmanan, closes #6021) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h, src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro, src/proto/option.pro, src/proto/textformat.pro, src/textformat.c Patch 8.2.0675 Problem: Vim9: no support for closures. Solution: Do not re-use stack entries. Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/evalvars.c, src/proto/evalvars.pro Patch 8.2.0676 Problem: Pattern in list of distributed files does not match. Solution: Drop "testdir/test_[a-z]*.ok". Add CI sed files. Files: Filelist Patch 8.2.0677 Problem: Vim9: no support for closures. Solution: Find variables in the outer function scope, so long as the scope exists. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9execute.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.0678 Problem: Rare crash for popup menu. Solution: Check for NULL pointer. (Nobuhiro Takasaki, closes #6027) Files: src/popupmenu.c Patch 8.2.0679 Problem: Vim9: incomplete support for closures. Solution: At the end of a function copy arguments and local variables if they are still used by a referenced closure. Files: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0680 Problem: PTYGROUP and PTYMODE are unused. Solution: Remove from autoconf. (closes #6024) Files: src/configure.ac, src/auto/configure, src/config.h.in Patch 8.2.0681 Problem: Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé) Solution: Call end_search_hl() to make sure the previous pattern is freed. (closes #6028) Files: src/screen.c Patch 8.2.0682 Problem: Vim9: parsing function argument type can get stuck. Solution: Bail out when not making progress. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0683 Problem: Vim9: parsing type does not always work. Solution: Handle func type without return value. Test more closures. Fix type check offset. Fix garbage collection. Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0684 Problem: Vim9: memory leak when using lambda. Solution: Move the funccal context to the partial. Free the function when exiting. Files: src/vim9.h, src/structs.h, src/vim9execute.c, src/userfunc.c, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.0685 (after 8.2.0684) Problem: Build failure. Solution: Include missing changes. Files: src/vim9compile.c Patch 8.2.0686 Problem: Formatoptions not sufficiently tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6031) Files: src/testdir/test_normal.vim, src/testdir/test_textformat.vim Patch 8.2.0687 Problem: Some tests do not work on FreeBSD. Solution: Enable modeline. Use WaitFor() in more cases. (Ozaki Kiichi, closes #6036) Files: src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim Patch 8.2.0688 Problem: Output clobbered if setting 'verbose' to see shell commands. Solution: Only output "Searching for" when 'verbose' is 11 or higher. Files: src/scriptfile.c, runtime/doc/options.txt Patch 8.2.0689 Problem: When using getaddrinfo() the error message is unclear. Solution: Use gai_strerror() to get the message. (Ozaki Kiichi, closes #6034) Files: src/channel.c Patch 8.2.0690 Problem: Line number of option set by modeline is wrong. Solution: Do not double the line number. (Ozaki Kiichi, closes #6035) Files: src/option.c, src/testdir/test_modeline.vim Patch 8.2.0691 Problem: Startup test fails. Solution: Adjust expected output from -V2 argument. Files: src/testdir/test_startup.vim Patch 8.2.0692 Problem: Startup test fails on MS-Windows. Solution: Allow for any path. Files: src/testdir/test_startup.vim Patch 8.2.0693 Problem: Closure using argument not tested. Solution: Add a test, make it work. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0694 Problem: Haiku: channel and terminal do not work. Solution: Close files when the job has finished. (Ozaki Kiichi, closes #6039) Files: src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c Patch 8.2.0695 Problem: Vim9: cannot define a function inside a function. Solution: Initial support for :def inside :def. Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0696 Problem: Vim9: nested function does not work properly Solution: Create a function reference. Check argument count. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0697 Problem: Vim9: memory leak when using nested function. Solution: Unreference function when deleting instructions. Adjust reference count for local variables. Files: src/vim9compile.c, src/vim9execute.c Patch 8.2.0698 Problem: Insert mode completion not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6041) Files: src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_textformat.vim Patch 8.2.0699 Problem: Vim9: not all errors tested. Solution: Add test for deleted function. Bail out on first error. Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.0700 Problem: Vim9: converting error message to exception not tested. Solution: Test exception from error. Do not continue after :echoerr. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0701 Problem: Vim9 test fails without job feature. Solution: Add feature check. Files: src/testdir/test_vim9_script.vim Patch 8.2.0702 Problem: Running channel tests may leave running process behind. Solution: Make Python client exit when running into EOF. (Kurtis Rader, part of #6046) Files: src/testdir/test_channel_pipe.py Patch 8.2.0703 Problem: Vim9: closure cannot store value in outer context. Solution: Make storing value in outer context work. Make :disassemble accept a function reference. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/eval.c, src/structs.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.0704 Problem: Vim9: memory leak in disassemble test. Solution: Decrement refcount when creating funccal. Files: src/vim9execute.c Patch 8.2.0705 Problem: Indent tests don't run on CI for FreeBSD. Solution: Set modeline. (Ozaki Kiichi, closes #6048) Files: .cirrus.yml, runtime/indent/testdir/runtest.vim Patch 8.2.0706 Problem: Vim9: using assert_fails() causes function to finish. Solution: Check did_emsg instead of called_emsg. Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.0707 Problem: Vim9 function test fails. Solution: Adjust expected error code. Files: src/testdir/test_vim9_func.vim Patch 8.2.0708 Problem: Vim9: constant expressions are not simplified. Solution: Simplify string concatenation. Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0709 Problem: MS-Windows: compiler warning for int vs size_t. Solution: Add type cast. (Mike Williams) Files: src/channel.c Patch 8.2.0710 Problem: Netbeans test sometimes fails. Solution: Mark any test using an external command as flaky. Files: src/testdir/shared.vim Patch 8.2.0711 Problem: With a long running Vim the temp directory might be cleared on some systems. Solution: Lock the temp directory. (closes #6044) Files: src/config.h.in, src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h, src/os_unix.h Patch 8.2.0712 Problem: Various code not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6049) Files: src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_system.vim, src/testdir/test_termcodes.vim Patch 8.2.0713 Problem: The pam_environment file is not recognized. Solution: Add a filetype pattern for pamenv. (closes #6051) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0714 Problem: Vim9: handling constant expression does not scale. Solution: Use another solution, passing typval_T. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0715 Problem: Vim9: leaking memory. Solution: Free strings after concatenating them. Files: src/vim9compile.c Patch 8.2.0716 Problem: Vim9: another memory leak. Solution: Clear typval when failing. Files: src/vim9compile.c Patch 8.2.0717 Problem: Vim9: postponed constant expressions does not scale. Solution: Add a structure to pass around postponed constants. Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0718 Problem: Gcc warning for returning pointer to local variable. (John Marriott) Solution: Return another pointer. Files: src/evalvars.c Patch 8.2.0719 Problem: Vim9: more expressions can be evaluated at compile time Solution: Recognize has('name'). Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0720 Problem: Occasional exit when encountering an X error. (Manfred Lotz) Solution: On an X error do not exit, do preserve files. Files: src/os_unix.c Patch 8.2.0721 Problem: Vim9: leaking memory when skipping. Solution: Disable skipping in generate_ppconst(). Files: src/vim9compile.c Patch 8.2.0722 Problem: Vim9: not handling constant expression for elseif. Solution: Use postponed constants. Delete the code for evaluating a constant expression. Files: src/vim9compile.c Patch 8.2.0723 Problem: Vim9: nested constant expression not evaluated compile time. Solution: Use compile_expr1() for parenthesis. Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0724 Problem: Vim9: appending to buffer/window/tab variable not tested Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.0725 Problem: Vim9: cannot call a function declared later in Vim9 script. Solution: Make two passes through the script file. Files: src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/vim9compile.c, src/vim9execute.c, src/proto/vim9compile.pro, src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, src/proto/evalvars.pro, src/vim.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.0726 Problem: Vim9: leaking memory when calling not compiled :def function. Solution: Check if function is compiled earlier. Files: src/vim9execute.c Patch 8.2.0727 Problem: MS-Windows: new gcc compiler does not support scanf format. Solution: Use "%ll" instead of "%I". (Ken Takata) Files: src/vim.h Patch 8.2.0728 Problem: Messages about a deadly signal are not left aligned. Solution: Output a CR before the NL. (Dominique Pellé, #6055) Files: src/misc1.c, src/os_unix.c Patch 8.2.0729 Problem: Vim9: When reloading a script variables are not cleared. Solution: When sourcing a script again clear all script-local variables. Files: src/dict.c, src/proto/dict.pro, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.0730 Problem: Vim9: Assignment to dict member does not work. Solution: Parse dict assignment. Implement getting dict member. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.0731 Problem: Vim9: parsing declarations continues after :finish. Solution: Bail out when encountering :finish. Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0732 Problem: Vim9: storing value in dict messes up stack. Solution: Correct item count of stack. Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.0733 Problem: Vim9: assigning to dict or list argument does not work. Solution: Recognize an argument as assignment target. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0734 Problem: Vim9: leaking memory when using :finish. Solution: Do not check for next line in third pass. Files: src/scriptfile.c Patch 8.2.0735 Problem: Vim9: using uninitialized memory. Solution: Clear the arg_lvar field. Files: src/vim9compile.c Patch 8.2.0736 Problem: Some files not recognized as pamenv. Solution: Add pam_inv.conf. (closes #6065) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0737 Problem: When shell doesn't support CTRL-Z Vim still handles it. Solution: Ignore the STOP signal if it was ignored on startup. (Kurtis Rader, closes #5990, closes #6058) Files: src/os_unix.c Patch 8.2.0738 Problem: Mouse handling in a terminal window not well tested. Solution: Add tests. (Yegappan Lakshmanan, closes #6052) Files: src/testdir/term_util.vim, src/testdir/test_gui.vim, src/testdir/test_modeless.vim, src/testdir/test_terminal.vim Patch 8.2.0739 Problem: Incomplete profiling when exiting because of a deadly signal. Solution: Call __gcov_flush() if available. Files: src/os_unix.c, src/Makefile, .travis.yml Patch 8.2.0740 Problem: Minor message mistakes. Solution: Change vim to Vim and other fixes. Files: src/if_py_both.h, src/if_tcl.c, src/main.c Patch 8.2.0741 Problem: Python tests fail because of changed message. Solution: Adjust the expected messages (Dominique Pellé, closes #6066) Files: src/testdir/test86.ok, src/testdir/test87.ok Patch 8.2.0742 Problem: Handling of a TERM signal not tested. Solution: Add a test for SIGTERM. (Dominique Pellé, closes #6055) Files: src/testdir/test_signals.vim Patch 8.2.0743 Problem: Can move to another buffer from a terminal in popup window. Solution: Do not allow "gf" or editing a file. (closes #6072) Files: src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.vim Patch 8.2.0744 Problem: The name vim is not capitalized in a message. Solution: Use "Vim" instead of "vim". Files: src/main.c Patch 8.2.0745 Problem: Crash on exit when not all popups are closed. Solution: Close popups when freeing all memory. Disable checking for popup when editing a file for now. Files: src/misc2.c, src/ex_cmds.c Patch 8.2.0746 Problem: popup_clear() hangs when a popup can't be closed. Solution: Bail out when a popup can't be closed. Files: src/popupwin.c, src/proto/popupwin.pro Patch 8.2.0747 Problem: Cannot forcefully close all popups. Solution: Add the "force" argument to popup_clear(). Use it after running a test. Put back the check for a popup when editing a file. Files: runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c, src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c, src/ex_cmds.c, src/channel.c, src/testdir/runtest.vim, src/testdir/test_terminal.vim Patch 8.2.0748 Problem: Cannot get a list of all popups. Solution: Add popup_list(). Use it in the test runner. Files: runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c, src/proto/popupwin.pro, src/evalfunc.c, src/testdir/test_popupwin.vim, src/testdir/runtest.vim Patch 8.2.0749 Problem: TERM signal test fails on FreeBSD. Solution: Do not check the messages, the may appear anywhere. (Dominique Pellé, closes #6075) Files: src/testdir/test_signals.vim Patch 8.2.0750 Problem: Netbeans test is a bit flaky. Solution: Allow for standard sign to be defined. Use WaitForAssert(). Files: src/testdir/test_netbeans.vim Patch 8.2.0751 Problem: Vim9: performance can be improved. Solution: Don't call break. Inline check for list materialize. Make an inline version of ga_grow(). Files: src/macros.h, src/evalfunc.c, src/misc2.c, src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c, src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c, src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c, src/userfunc.c, src/if_py_both.h Patch 8.2.0752 Problem: Terminal in popup window test is a bit flaky. Solution: Wait for shell job status to be "run". Mark as flaky test. Files: src/testdir/test_popupwin.vim Patch 8.2.0753 Problem: Vim9: expressions are evaluated in the discovery phase. Solution: Bail out if an expression is not a constant. Require a type for declared constants. Files: src/vim.h, src/evalvars.c, src/eval.c, src/ex_eval.c, src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0754 Problem: Vim9: No test for forward declaration. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.0755 Problem: Vim9: No error when variable initializer is not a constant. Solution: Return FAIL when trying to get a variable value. Do not execute a script when an error is detected in the first or second phase. Files: src/eval.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0756 (after 8.2.0249) Problem: MS-Windows: still a compiler warning. Solution: Move flag to another place in the Makefile. (Ken Takata, closes #6083) Files: src/Make_mvc.mak Patch 8.2.0757 Problem: Vim9: no test for MEMBER instruction. Solution: Add a test. Make matches stricter. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0758 Problem: Vim9: no test for STORELIST and STOREDICT. Solution: Add a test. Make matches stricter. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.0759 (after 8.2.0751) Problem: Vim9: missing changes for performance improvements Solution: Use GA_GROW(). Don't call breakcheck so often. Files: src/vim9execute.c Patch 8.2.0760 Problem: Vim9: dict member errors not tested. Solution: Delete unreachable error. Add tests. Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0761 Problem: Vim9: instructions not tested Solution: Use a variable instead of a constant. Files: src/testdir/test_vim9_expr.vim Patch 8.2.0762 Problem: Buffer is not considered modified after setting crypt key. Solution: Set the modified flag. (Christian Brabandt, closes #6082) Files: src/optionstr.c, src/testdir/test_crypt.vim Patch 8.2.0763 Problem: GUI test fails without the terminal feature. Solution: Check the terminal feature is supported. (Ken Takata, closes #6084) Files: src/testdir/test_gui.vim Patch 8.2.0764 Problem: Vim9: assigning to option not fully tested. Solution: Add more test cases. Allow using any type for assignment. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0765 Problem: In the GUI can't use all the modifiers. (Andri Möll) Solution: Do not apply Alt/Meta early, do it later like with the terminal. Avoid the Motif test from crashing. Files: src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c, src/gui_motif.c Patch 8.2.0766 Problem: Display error when using 'number' and 'breakindent'. Solution: Adjust extra spaces in the first row. (Ken Takata, closes #6089, closes #5986) Files: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0767 Problem: ModifyOtherKeys active when using a shell command in autocmd. Solution: Output T_CTE when going to cooked mode. (closes 5617) Files: src/term.c Patch 8.2.0768 Problem: Vim9: memory leak in script test. Solution: Clear typval before giving an error message. Files: src/vim9execute.c Patch 8.2.0769 Problem: VimLeavePre not triggered when Vim is terminated. Solution: Unblock autocommands. Files: src/main.c, src/testdir/test_signals.vim Patch 8.2.0770 Problem: Cannot map CTRL-B when using the GUI. Solution: Reset the CTRL modifier when used. (closes #6092) Files: src/gui_gtk_x11.c Patch 8.2.0771 Problem: Vim9: cannot call a compiled closure from not compiled code. Solution: Pass funcexe to call_user_func(). Files: src/userfunc.c, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.0772 Problem: Vim9: some variable initializations not tested. Solution: Add a few more tests Files: src/testdir/test_vim9_script.vim Patch 8.2.0773 Problem: Switching to raw mode every time ":" is used. Solution: When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the next time TMODE_RAW is used it is set, but not every time. Files: src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c, src/os_win32.c Patch 8.2.0774 Problem: t_TI and t_TE are output when using 'visualbell'. (Dominique Pellé) Solution: Do not change the terminal mode for a short sleep. Do not output t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an enum. Files: src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c, src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro, src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c, src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h Patch 8.2.0775 Problem: Not easy to call a Vim function from Lua. Solution: Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063) Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.0776 Problem: Libvterm code lags behind the upstream version. Solution: Include revision 719. Files: Filelist, src/libvterm/README, src/libvterm/Makefile, src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc, src/libvterm/src/unicode.c Patch 8.2.0777 (after 8.2.0776) Problem: Terminal test fails. Solution: Adjust character position for double-wide characters. Files: src/testdir/test_terminal.vim Patch 8.2.0778 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 720 - 723. Files: src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile, src/libvterm/t/run-test.pl, src/libvterm/src/state.c, src/libvterm/t/92lp1805050.test Patch 8.2.0779 Problem: Tmode_T not used everywhere. Solution: Also use tmode_T for settmode(). Files: src/term.c, src/proto/term.pro Patch 8.2.0780 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 724 - 726. Files: Filelist, src/libvterm/t/40screen_ascii.test, src/libvterm/t/60screen_ascii.test, src/libvterm/t/41screen_unicode.test, src/libvterm/t/61screen_unicode.test, src/libvterm/t/42screen_damage.test, src/libvterm/t/62screen_damage.test, src/libvterm/t/43screen_resize.test, src/libvterm/t/63screen_resize.test, src/libvterm/t/44screen_pen.test, src/libvterm/t/64screen_pen.test, src/libvterm/t/45screen_protect.test, src/libvterm/t/65screen_protect.test, src/libvterm/t/46screen_extent.test, src/libvterm/t/66screen_extent.test, src/libvterm/t/47screen_dbl_wh.test, src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/48screen_termprops.test, src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test, src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test, src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt Patch 8.2.0781 (after 8.2.0775) Problem: Compiler warning for not using value in Lua. Solution: Add "(void)". Files: src/if_lua.c Patch 8.2.0782 Problem: Cannot build with Lua on MS-Windows. Solution: Add DLL symbol for luaL_Loadstring. (Ken Takata) Files: src/if_lua.c Patch 8.2.0783 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 728 - 729. Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test, src/libvterm/t/harness.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/26state_query.test Patch 8.2.0784 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 730 - 733. Files: src/libvterm/src/vterm.c, src/libvterm/src/state.c, src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h, src/libvterm/t/harness.c Patch 8.2.0785 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 734 - 740. Files: src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt, src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl, src/libvterm/Makefile, src/libvterm/CONTRIBUTING Patch 8.2.0786 Problem: Channel test is flaky on FreeBSD. Solution: Set the socket TCP_NODELAY option. Adjust expected line count in netbeans test. (Ozaki Kiichi, closes #6097) Files: src/testdir/test_channel.py, src/testdir/test_netbeans.vim Patch 8.2.0787 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 741 - 742. Files: Filelist, src/libvterm/src/screen.c Patch 8.2.0788 Problem: Memory leak in libvterm. Solution: free tmpbuffer. Files: src/libvterm/src/vterm.c Patch 8.2.0789 Problem: Vim9: expression testing lost coverage using constants. Solution: Use a few variables instead of constants. Files: src/testdir/test_vim9_expr.vim Patch 8.2.0790 Problem: Vim9: list index not well tested. Solution: Add a few more tests. Files: src/testdir/test_vim9_script.vim Patch 8.2.0791 Problem: A second popup window with terminal causes trouble. Solution: Disallow opening a second terminal-popup window. (closes #6101, closes #6103) Avoid defaulting to an invalid line number. Files: runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c, src/testdir/test_popupwin.vim, src/testdir/test_terminal.vim Patch 8.2.0792 Problem: Build failure with small features. Solution: Add #ifdef. Files: src/popupwin.c Patch 8.2.0793 Problem: MS-Windows: cannot build GUI with small features. (Michael Soyka) Solution: Add #ifdef around use of windowsVersion. (Ken Takata) Files: src/os_win32.c Patch 8.2.0794 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 743 - 747. Files: src/libvterm/src/state.c, src/libvterm/src/screen.c, src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h, src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl Patch 8.2.0795 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 748 - 754. Files: src/libvterm/include/vterm.h, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/t/32state_flow.test, src/libvterm/t/60screen_ascii.test, src/libvterm/t/62screen_damage.test, src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c, src/libvterm/t/run-test.pl Patch 8.2.0796 Problem: MS-Windows: compiler can't handle C99 construct in libvterm. Solution: Change to C90 construct. Files: src/libvterm/src/state.c Patch 8.2.0797 Problem: MS-Windows: compiler still can't handle C99 construct. Solution: Change to C90 construct. (Dominique Pellé, closes #6106) Files: src/libvterm/src/state.c Patch 8.2.0798 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 755 - 758. Files: src/libvterm/t/run-test.pl, src/libvterm/src/screen.c, src/libvterm/t/harness.c, src/libvterm/include/vterm.h, src/libvterm/src/parser.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/18state_termprops.test, src/libvterm/t/29state_fallback.test, src/libvterm/t/68screen_termprops.test, src/terminal.c Patch 8.2.0799 Problem: Build fails if snprintf is not available. Solution: Use vim_snprintf(). Files: src/libvterm/src/state.c Patch 8.2.0800 Problem: Errors from failing test are unclear. Solution: Include text where parsing failed. Files: src/json.c, src/testdir/test_json.vim Patch 8.2.0801 Problem: Terminal test fails on Mac. Solution: Concatenate OSC pieces. Files: src/terminal.c Patch 8.2.0802 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 759 - 762. Files: src/terminal.c, src/libvterm/doc/seqs.txt, src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test Patch 8.2.0803 Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 764 - 767 Files: src/Makefile, src/libvterm/src/parser.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc Patch 8.2.0804 Problem: Libvterm code lags behind the upstream version. Solution: Include revision 727, but add the index instead of switching between RGB and indexed. Files: src/terminal.c, src/term.c, src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/30state_pen.test, src/libvterm/t/harness.c, src/libvterm/src/state.c, src/libvterm/t/26state_query.test, src/libvterm/t/64screen_pen.test Patch 8.2.0805 Problem: Terminal key codes test fails on some systems. Solution: Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070) Files: src/testdir/test_terminal.vim Patch 8.2.0806 Problem: using "func!" after vim9script gives confusing error. Solution: Give E477. (closes #6107) Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0807 Problem: Cannot easily restore a mapping. Solution: Add mapset(). Files: runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c src/testdir/test_maparg.vim Patch 8.2.0808 Problem: Not enough testing for the terminal window. Solution: Add more tests. (Yegappan Lakshmanan, closes #6069) Fix memory leak. Files: src/testdir/test_gui.vim, src/testdir/test_terminal.vim, src/terminal.c Patch 8.2.0809 Problem: Build failure with small features. (Tony Mechelynck) Solution: Move "expr" inside #ifdef. Files: src/map.c Patch 8.2.0810 Problem: Error when appending "tagfile" to 'wildoptions'. Solution: use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin, closes #6105) Files: src/optiondefs.h, src/testdir/test_options.vim Patch 8.2.0811 Problem: Terminal keycode test is flaky. Solution: Use WaitForAssert() Files: src/testdir/test_terminal.vim Patch 8.2.0812 Problem: mapset() does not properly handle <> notation. Solution: Convert <> codes. (closes #6116) Files: src/map.c, src/testdir/test_maparg.vim Patch 8.2.0813 Problem: libvterm code is slightly different from upstream. Solution: Use upstream text to avoid future merge problems. Mainly comment style changes. Files: src/libvterm/include/vterm.h, src/libvterm/src/rect.h, src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h, src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c, src/libvterm/src/mouse.c, src/libvterm/src/parser.c, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/src/unicode.c, src/libvterm/src/vterm.c Patch 8.2.0814 Problem: Clang warning for implicit conversion. Solution: Add type cast. (Dominique Pellé, closes #6124) Files: src/evalfunc.c Patch 8.2.0815 Problem: maparg() does not provide enough information for mapset(). Solution: Add "lhsraw" and "lhsrawalt" items. Drop "simplified" Files: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim Patch 8.2.0816 Problem: Terminal test fails when compiled with Athena. Solution: Do give an error when the GUI is not running. (hint by Dominique Pellé, closes #5928, closes #6132) Files: src/globals.h, src/gui.c, src/term.c, src/channel.c, src/testdir/test_terminal.vim Patch 8.2.0817 Problem: Not enough memory allocated when converting string with special character. Solution: Reserve space for modifier code. (closes #6130) Files: src/eval.c, src/testdir/test_functions.vim Patch 8.2.0818 Problem: Vim9: using a discovery phase doesn't work well. Solution: Remove the discovery phase, instead compile a function only when it is used. Add :defcompile to compile def functions earlier. Files: runtime/doc/vim9.txt, src/vim9script.c, src/structs.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h, src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0819 Problem: Compiler warning for unused variable. Solution: Remove the variable. Files: src/evalvars.c Patch 8.2.0820 Problem: Vim9: function type isn't set until compiled. Solution: Set function type early. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0821 Problem: Vim9: memory leak in expr test. Solution: Do not decrement the length of the list of functions if the current function is not at the end. Files: src/vim9compile.c Patch 8.2.0822 Problem: Vim9: code left over from discovery phase. Solution: Remove the dead code. Files: src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h, src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c Patch 8.2.0823 Problem: Vim9: script reload test is disabled. Solution: Compile a function in the context of the script where it was defined. Set execution stack for compiled function. Add a test that an error is reported for the right file/function. Files: src/vim9compile.c, src/vim9execute.c, src/scriptfile.c, src/proto/scriptfile.pro, src/userfunc.c, src/globals.h, src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0824 (after 8.2.0817) Problem: Still not enough memory allocated when converting string with special character. Solution: Reserve space for expanding K_SPECIAL. (closes #6130) Files: src/eval.c, src/testdir/test_functions.vim Patch 8.2.0825 Problem: def_function() may return pointer that was freed. Solution: Set "fp" to NULL after freeing it. Files: src/userfunc.c Patch 8.2.0826 Problem: Vim9: crash in :defcompile. Solution: Restart the loop after a call to compile_def_function() caused the hash table to resize. Files: src/userfunc.c Patch 8.2.0827 Problem: Vim9: crash in :defcompile. Solution: Fix off-by-one error. Files: src/userfunc.c Patch 8.2.0828 Problem: Travis: regexp pattern doesn't work everywhere. Solution: Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146) Files: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, ci/config.mk.sed, src/if_ruby.c Patch 8.2.0829 Problem: filter() may give misleading error message. Solution: Also mention Blob as an allowed argument. Files: src/list.c, src/testdir/test_filter_map.vim Patch 8.2.0830 Problem: Motif: can't map "!". (Ben Jackson) Solution: Remove the shift modifier if it's already included in the key. (closes #6147) Files: src/gui_x11.c Patch 8.2.0831 Problem: Compiler warnings for integer sizes. Solution: Add type casts. (Mike Williams) Files: src/libvterm/src/pen.c, src/terminal.c Patch 8.2.0832 Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) Solution: Add initial value. Files: src/map.c Patch 8.2.0833 Problem: Mapping <C-bslash> doesn't work in the GUI. Solution: Reset seenModifyOtherKeys when starting the GUI. (closes #6150) Files: src/gui.c Patch 8.2.0834 Problem: :drop command in terminal popup causes problems. Solution: Check for using a popup window. (closes #6151) Files: src/ex_cmds.c, src/testdir/test_popupwin.vim Patch 8.2.0835 Problem: Motif: mapping <C-bslash> still doesn't work. Solution: Accept CSI for K_SPECIAL. Do not apply CTRL to the character early. (closes #6150) Files: src/getchar.c, src/gui_x11.c Patch 8.2.0836 Problem: Not all :cdo output is visible. Solution: Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155) Files: src/ex_cmds2.c, src/testdir/test_cdo.vim Patch 8.2.0837 Problem: Compiler warning for value set but not used. Solution: Move variable inside #ifdef. Files: src/channel.c Patch 8.2.0838 Problem: MS-Windows: compiler warning for uninitialized variables. Solution: Initialize variables. Files: src/screen.c Patch 8.2.0839 Problem: Dropping modifier when putting a character back in typeahead. Solution: Add modifier to ins_char_typebuf(). (closes #6158) Files: src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c, src/terminal.c, src/globals.h, src/testdir/test_messages.vim Patch 8.2.0840 Problem: Search match count wrong when only match is in fold. Solution: Update search stats when in a closed fold. (Christian Brabandt, closes #6160, closes #6152) Files: src/search.c, src/testdir/dumps/Test_searchstat_3.dump, src/testdir/test_search_stat.vim Patch 8.2.0841 Problem: 'verbose' value 16 causes duplicate output. Solution: Combine levels 15 and 16 into one message. (Christian Brabandt, closes #6153) Files: runtime/doc/options.txt, src/ex_docmd.c Patch 8.2.0842 (after 8.2.0837) Problem: MS-Windows: channel tests fail. Solution: Adjust #ifdefs. (closes #6162) Files: src/channel.c Patch 8.2.0843 Problem: Filetype elm not detected. Solution: Recognize *.elm files. (closes #6157) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0844 Problem: Text properties crossing lines not handled correctly. Solution: When saving for undo include an extra line when needed and do not adjust properties when undoing. (Axel Forsman, closes #5875) Files: src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h Patch 8.2.0845 Problem: Text properties crossing lines not handled correctly. Solution: When joining lines merge text properties if possible. (Axel Forsman, closes #5839, closes #5683) Files: src/testdir/test_textprop.vim, src/memline.c, src/ops.c, src/proto/textprop.pro, src/textprop.c, src/testdir/dumps/Test_textprop_01.dump Patch 8.2.0846 Problem: Build failure with small features. Solution: Add #ifdef. Files: src/undo.c Patch 8.2.0847 Problem: Typval related code is spread out. Solution: Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro, src/typval.c Patch 8.2.0848 Problem: MS-Windows: the Windows terminal code has some flaws. Solution: Do not redraw the right edge of the screen. Remove the background color trick. Flush the screen output buffer often. (Nobuhiro Takasaki, #5546) Files: src/os_win32.c, src/proto/os_win32.pro, src/term.c Patch 8.2.0849 Problem: BeOS code is not maintained and probably unused. Solution: Remove the BeOS code. (Emir Sarı, closes #5817) Files: Filelist, src/Makefile, src/configure.ac, src/auto/configure, src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h, src/os_beos.rsrc, src/os_unix.c, src/proto.h, src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c, src/testdir/test_functions.vim, src/ui.c, src/vim.h Patch 8.2.0850 Problem: MS-Windows: exepath() works differently from cmd.exe. Solution: Make exepath() work better on MS-Windows. (closes #6115) Files: runtime/doc/eval.txt, src/os_win32.c, src/testdir/test_functions.vim Patch 8.2.0851 (after 8.2.0833) Problem: Can't distinguish <M-a> from accented "a" in the GUI. Solution: Use another way to make mapping <C-bslash> work. (closes #6163) Files: src/gui.c, src/gui_gtk_x11.c, src/getchar.c Patch 8.2.0852 Problem: Cannot map CTRL-S on some systems. Solution: Do not use CTRL-S for flow control. Files: src/os_unix.c Patch 8.2.0853 Problem: ml_delete() often called with FALSE argument. Solution: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE. Files: src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c, src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c, src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c, src/proto/memline.pro Patch 8.2.0854 Problem: Xxd cannot show offset as a decimal number. Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616) Files: src/testdir/test_xxd.vim, src/xxd/xxd.c Patch 8.2.0855 Problem: GUI tests fail because the test doesn't use a modifier. Solution: Add "\{xxx}" to be able to encode a modifier. Files: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c, src/term.c, src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim, src/testdir/test_messages.vim Patch 8.2.0856 (after 8.2.0852) Problem: CTRL-S stops output. Solution: Invert the IXON flag. (closes #6166) Files: src/os_unix.c Patch 8.2.0857 Problem: GTK cell height can be a pixel too much. Solution: Subtract 3 instead of 1 when rounding. (closes #6168) Files: src/gui_gtk_x11.c Patch 8.2.0858 Problem: Not easy to require Lua modules. Solution: Improve use of Lua path. (Prabir Shrestha, closes #6098) Files: Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro, src/testdir/test_lua.vim, src/testdir/testluaplugin/lua/testluaplugin/hello.lua, src/testdir/testluaplugin/lua/testluaplugin/init.lua Patch 8.2.0859 Problem: No Turkish translation of the manual. Solution: Add Turkish translations. (Emir Sarı, closes #5641) Files: Filelist, runtime/doc/Makefile, runtime/doc/evim-tr.1, runtime/doc/evim-tr.UTF-8.1, runtime/doc/vim-tr.1, runtime/doc/vim-tr.UTF-8.1, runtime/doc/vimdiff-tr.1, runtime/doc/vimdiff-tr.UTF-8.1, runtime/doc/vimtutor-tr.1, runtime/doc/vimtutor-tr.UTF-8.1, src/Makefile Patch 8.2.0860 Problem: Cannot use CTRL-A and CTRL-X on unsigned numbers. Solution: Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144) Files: runtime/doc/options.txt, src/ops.c, src/optionstr.c, src/testdir/test_increment.vim Patch 8.2.0861 Problem: Cannot easily get all the current marks. Solution: Add getmarklist(). (Yegappan Lakshmanan, closes #6032) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mark.c, src/proto/mark.pro, src/testdir/test_marks.vim Patch 8.2.0862 Problem: ":term ++curwin" makes the current buffer hidden. (Harm te Hennepe) Solution: Do not hide the current buffer. (closes #6170) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0863 Problem: Cannot set a separate color for underline/undercurl. Solution: Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011) Files: runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h, src/highlight.c, src/optiondefs.h, src/proto/term.pro, src/screen.c, src/structs.h, src/term.c, src/term.h, src/testdir/test_options.vim Patch 8.2.0864 Problem: Pragmas are indented all the way to the left. Solution: Add an option to indent pragmas like normal code. (Max Rumpf, closes #5468) Files: runtime/doc/indent.txt, src/cindent.c, src/structs.h, src/testdir/test_cindent.vim Patch 8.2.0865 Problem: Syntax foldlevel is taken from the start of the line. Solution: Add ":syn foldlevel" to be able to use the minimal foldlevel in the line. (Brad King, closes #6087) Files: runtime/doc/syntax.txt, src/structs.h, src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.0866 Problem: Not enough tests for buffer writing. Solution: Add more tests. Use CheckRunVimInTerminal in more places. (Yegappan Lakshmanan, closes #6167) Files: src/testdir/test_arglist.vim, src/testdir/test_match.vim, src/testdir/test_messages.vim, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim, src/testdir/test_search.vim, src/testdir/test_signals.vim, src/testdir/test_signs.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_syntax.vim, src/testdir/test_tabpage.vim, src/testdir/test_timers.vim, src/testdir/test_vimscript.vim, src/testdir/test_writefile.vim Patch 8.2.0867 Problem: Using \{xxx} for encoding a modifier is not nice. Solution: Use \<*xxx> instead, since it's the same as \<xxx> but producing a different code. Files: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim, src/testdir/test_messages.vim Patch 8.2.0868 Problem: trim() always trims both ends. Solution: Add an argument to only trim the beginning or end. (Yegappan Lakshmanan, closes #6126) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.0869 Problem: It is not possible to customize the quickfix window contents. Solution: Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465) Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0870 Problem: MS-Windows: Control keys don't work in the GUI. Solution: Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto, closes #6175) Files: src/gui.c Patch 8.2.0871 Problem: Cannot use getmarklist() as a method. Solution: Make getmarklist() work as a method. Add one to the column number to match getpos(). (Yegappan Lakshmanan, closes #6176) Files: runtime/doc/eval.txt, src/evalfunc.c, src/mark.c, src/testdir/test_marks.vim Patch 8.2.0872 Problem: XIM code is mixed with multibyte code. Solution: Move the XIM code to a separate file. (Yegappan Lakshmanan, closes #6177) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c, src/mbyte.c, src/proto.h, src/proto/gui_xim.pro, src/proto/mbyte.pro Patch 8.2.0873 Problem: A .jl file can be sawfish (lisp) or Julia. Solution: Do not recognize *.jl as lisp, since it might be Julia. (closes #6178) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0874 Problem: Signals test is a bit flaky. Solution: Flush the XautoOut file. Delete files that may be left behind from a failure. (Dominique Pellé, closes #6179) Files: src/testdir/test_signals.vim Patch 8.2.0875 Problem: Getting attributes for directory entries is slow. Solution: Add readdirex(). (Ken Takata, closes #5619) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/fileio.c, src/filepath.c, src/proto/fileio.pro, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.0876 Problem: :pwd does not give a hint about the scope of the directory Solution: Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469) Files: runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim Patch 8.2.0877 Problem: Cannot get the search statistics. Solution: Add the searchcount() function. (Fujiwara Takuya, closes #4446) Files: runtime/doc/eval.txt, src/evalfunc.c, src/macros.h, src/proto/search.pro, src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0878 Problem: No reduce() function. Solution: Add a reduce() function. (closes #5481) Files: runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim Patch 8.2.0879 Problem: Compiler warning for unused function argument. Solution: Add UNUSED. Files: src/search.c Patch 8.2.0880 (after 8.2.0877) Problem: Leaking memory when using searchcount(). Solution: Free the last used search pattern. Files: src/search.c Patch 8.2.0881 Problem: Compiler warning for argument type. Solution: Add type cast. (Mike Williams) Files: src/ops.c Patch 8.2.0882 Problem: Leaking memory when using reduce(). Solution: Free the intermediate value. Files: src/list.c Patch 8.2.0883 Problem: Memory leak in test 49. Solution: Free "sfile" from the exception. Files: src/ex_docmd.c Patch 8.2.0884 Problem: Searchcount() test fails on slower systems. Solution: Set a longer timeout. Files: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0885 Problem: "make shadow" does not link new lua test dir. Solution: Also link testdir/testluaplugin. (Elimar Riesebieter) Files: src/Makefile Patch 8.2.0886 Problem: Cannot use octal numbers in scriptversion 4. Solution: Add the "0o" notation. (Ken Takata, closes #5304) Files: runtime/doc/eval.txt, src/charset.c, src/evalfunc.c, src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, src/vim.h Patch 8.2.0887 Problem: Searchcount().exact_match is 1 right after a match. Solution: Use LT_POS() instead of LTOREQ_POS(). (closes #6189) Files: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0888 Problem: Readdirex() returns size -2 for a directory. Solution: Add missing "else". (Ken Takata, closes #6185) Files: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.0889 Problem: Using old style comments. Solution: Use // comments. (Yegappan Lakshmanan, closes #6190) Files: src/gui_xim.c Patch 8.2.0890 Problem: No color in terminal window when 'termguicolors' is set. Solution: Clear the underline color. (closes #6186) Files: src/highlight.c Patch 8.2.0891 Problem: Clang warns for invalid conversion. Solution: Use zero instead of INVALCOLOR. Files: src/highlight.c Patch 8.2.0892 Problem: Ubsan warns for undefined behavior. Solution: Use unsigned instead of signed variable. (Dominique Pellé, closes #6193) Files: src/regexp_nfa.c Patch 8.2.0893 Problem: Assert_equalfile() does not take a third argument. Solution: Implement the third argument. (Gary Johnson) Files: runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c, src/testdir/test_assert.vim, src/testing.c Patch 8.2.0894 Problem: :mkspell can take very long if the word count is high. Solution: Use long to avoid negative numbers. Increase the limits by 20% if the compression did not have effect. Files: src/spellfile.c Patch 8.2.0895 Problem: :mkspell output does not mention the tree type. Solution: Back out increasing the limits, it has no effect. Mention the tree being compressed. Only give a message once per second. Files: src/spellfile.c Patch 8.2.0896 Problem: Crash when calling searchcount() with a string. Solution: Check the argument is a dict. (closes #6192) Files: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0897 Problem: List of functions in patched version is outdated. Solution: Update the function lists only. Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt Patch 8.2.0898 Problem: Missing help for a function goes unnoticed. Solution: Add a test. (Gary Johnson) Files: src/testdir/test_function_lists.vim, src/testdir/Make_all.mak Patch 8.2.0899 Problem: Assert_equalfile() does not give a hint about the difference. Solution: Display the last seen text. Files: src/testing.c, src/testdir/test_assert.vim Patch 8.2.0900 Problem: Function list test fails on MS-Windows. Solution: Make sure the fileformat is "unix" Files: src/testdir/test_function_lists.vim Patch 8.2.0901 Problem: Formatting CJK text isn't optimal. Solution: Properly break CJK lines. (closes #3875) Files: runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h, src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c, src/testdir/test_cjk_linebreak.vim Patch 8.2.0902 Problem: Using searchcount() in 'statusline' causes an error. Solution: Avoid saving/restoring the search pattern recursively. (closes #6194) Files: src/search.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstat_4.dump Patch 8.2.0903 Problem: comparing WINVER does not work correctly. Solution: Use arithmetic expansion. (Ozaki Kiichi, closes #6197) Files: src/Make_cyg_ming.mak Patch 8.2.0904 Problem: Assuming modifyOtherKeys for rhs of mapping. Solution: Ignore seenModifyOtherKeys for mapped characters. (closes #6200) Files: src/getchar.c, src/testdir/test_gui.vim Patch 8.2.0905 Problem: Test coverage could be better. Solution: Add a couple of tests. (Dominique Pellé, closes #6202) Files: src/testdir/test_cmdline.vim, src/testdir/test_ga.vim Patch 8.2.0906 Problem: When setting 'termguicolors' SpellBad is no longer red. Solution: Only use the RGB guisp color for cterm when using the "underline" or "undercurl" attributes to avoid the background color to be cleared. Also make t_8u empty when the termresponse indicates a real xterm. (closes #6207) Files: src/highlight.c, src/term.c Patch 8.2.0907 Problem: When using :global clipboard isn't set correctly. Solution: Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian Brabandt, closes #6203, closes #6198) Files: src/clipboard.c, src/testdir/test_global.vim Patch 8.2.0908 Problem: Crash when changing the function table while listing it. Solution: Bail out when the function table changes. (closes #6209) Files: src/userfunc.c, src/testdir/test_timers.vim Patch 8.2.0909 Problem: Cannot go back to the previous local directory. Solution: Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362) Files: runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c, src/structs.h, src/testdir/test_cd.vim, src/window.c Patch 8.2.0910 Problem: Vim is not reproducibly buildable. Solution: Use the $SOURCE_DATE_EPOCH environment variable in configure. (James McCoy, closes #513) Give a warning about using it. Files: src/config.h.in, src/config.mk.in, src/configure.ac, src/auto/configure, src/version.c, src/Makefile Patch 8.2.0911 Problem: Crash when opening a buffer for the cmdline window fails. (Chris Barber) Solution: Check do_ecmd() succeeds. Reset got_int if "q" was used at the more prompt. (closes #6211) Files: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_cmdwin_interrupted.dump Patch 8.2.0912 Problem: A few test cases for CJK formatting are disabled. Solution: Fix the tests and enable them. (closes #6212) Files: src/testdir/test_cjk_linebreak.vim Patch 8.2.0913 Problem: Code for resetting v:register is duplicated. Solution: Add reset_reg_var(). Files: src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c Patch 8.2.0914 Problem: MS-Windows: cannot specify a "modified by" text. Solution: Add MODIFIED_BY in the MSVC build file. (Chen Lei, closes #1275) Files: src/Make_mvc.mak Patch 8.2.0915 Problem: Search() cannot skip over matches like searchpair() can. Solution: Add an optional "skip" argument. (Christian Brabandt, closes #861) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.vim, src/structs.h, src/evalvars.c, src/proto/evalvars.pro Patch 8.2.0916 Problem: Mapping with partly modifyOtherKeys code does not work. Solution: If there is no mapping with a separate modifier include the modifier in the key and then try mapping again. (closes #6200) Files: src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c, src/proto/term.pro, src/testdir/test_termcodes.vim Patch 8.2.0917 Problem: Quickfix entries do not support a "note" type. Solution: Add support for "note". (partly by Yegappan Lakshmanan, closes #5527, closes #6216) Files: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0918 Problem: Duplicate code for evaluating expression argument. Solution: Merge the code and make the use more flexible. Files: src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/proto/evalvars.pro, src/structs.h Patch 8.2.0919 Problem: Merging modifier for modifyOtherKeys is done twice. Solution: Remove the merging done in vgetc(). Files: src/getchar.c, src/ex_getln.c Patch 8.2.0920 Problem: Writing viminfo fails with a circular reference. Solution: Use copyID to detect the cycle. (closes #6217) Files: src/testdir/test_viminfo.vim, src/viminfo.c Patch 8.2.0921 Problem: CTRL-W T in cmdline window causes trouble. Solution: Disallow CTRL-W T in the cmdline window. Add more tests. (Naruhiko Nishino, closes #6219) Files: src/testdir/test_cmdline.vim, src/window.c Patch 8.2.0922 Problem: Search test fails. Solution: Remove failure tests for calls that no longer fail. Files: src/testdir/test_search.vim Patch 8.2.0923 Problem: Cmdline test is slow. Solution: Use WaitForAssert(). Files: src/testdir/test_cmdline.vim Patch 8.2.0924 Problem: Cannot save and restore a register properly. Solution: Add getreginfo() and make setreg() accept a dictionary. (Andy Massimino, closes #3370) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/register.pro, src/register.c, src/testdir/test_eval_stuff.vim, src/testdir/test_registers.vim Patch 8.2.0925 Problem: Getcompletion() does not return command line arguments. Solution: Add the "cmdline" option. (Shougo, closes #1140) Files: runtime/doc/eval.txt, src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.0926 Problem: Cmdline test fails on Appveyor. Solution: Add CR to the commands. (Naruhiko Nishino, closes #6220) Files: src/testdir/test_cmdline.vim Patch 8.2.0927 Problem: Some sshconfig and ssdhconfig files are not recognized. Solution: Add filetype patterns. Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0928 Problem: Many type casts are used for vim_strnsave(). Solution: Make the length argument size_t instead of int. (Ken Takata, closes #5633) Remove some type casts. Files: src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c Patch 8.2.0929 Problem: v:register is not cleared after an operator was executed. Solution: Clear v:register after finishing an operator (Andy Massimino, closes #5305) Files: src/normal.c, src/testdir/test_registers.vim Patch 8.2.0930 Problem: Script filetype detection trips over env -S argument. Solution: Remove "-S" and "--ignore-environment". (closes #5013) Add tests. Files: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.0931 Problem: Some remarks about BeOS remain. Solution: Remove BeOS remarks from the help and other files. (Emir Sarı, closes #6221) Files: READMEdir/README_extra.txt, runtime/doc/options.txt, runtime/doc/os_beos.txt, runtime/doc/os_vms.txt, runtime/doc/vi_diff.txt, src/INSTALL Patch 8.2.0932 Problem: Misspelling spelllang. Solution: Add an "l". (Dominique Pellé) Files: src/optionstr.c, src/proto/spell.pro, src/spell.c Patch 8.2.0933 Problem: 'quickfixtextfunc' does not get window ID of location list. Solution: Add "winid" to the dict argument. (Yegappan Lakshmanan, closes #6222) Files: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0934 Problem: Running lhelpgrep twice in a help window doesn't jump to the help topic. Solution: Check whether any window with the location list is present. (Yegappan Lakshmanan, closes #6215) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0935 Problem: Flattening a list with existing code is slow. Solution: Add flatten(). (Mopp, closes #3676) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/Make_all.mak, src/testdir/test_flatten.vim Patch 8.2.0936 Problem: Some terminals misinterpret the code for getting cursor style. Solution: Send a sequence to the terminal and check the result. (IWAMOTO Kouichi, closes #2126) Merged with current code. Files: src/main.c, src/term.c, src/proto/term.pro, src/testdir/term_util.vim, src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim, src/testdir/test_startup_utf8.vim, src/testdir/dumps/Test_balloon_eval_term_01.dump, src/testdir/dumps/Test_balloon_eval_term_01a.dump, src/testdir/dumps/Test_balloon_eval_term_02.dump, src/testdir/dumps/Test_terminal_all_ansi_colors.dump Patch 8.2.0937 Problem: Asan failure in the flatten() test. Solution: Free the flattened list. Files: src/list.c Patch 8.2.0938 Problem: NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs) Solution: Use utf_fold() when possible. (ref. neovim #12456) Files: src/macros.h, src/diff.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.0939 Problem: checking for term escape sequences is long and confusing Solution: Refactor code into separate functions. Files: src/term.c Patch 8.2.0940 (after 8.2.0939) Problem: Build failure with tiny features. Solution: Add #ifdef. Add UNUSED. A bit more cleaning up. Files: src/term.c Patch 8.2.0941 Problem: Detecting terminal properties is unstructured. Solution: Add a table with terminal properties. Set properties when a terminal is detected. Files: src/term.c Patch 8.2.0942 Problem: Expanding to local dir after homedir keeps "~/". Solution: Adjust modify_fname(). (Christian Brabandt, closes #6205, closes #5979) Files: src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0943 Problem: Displaying ^M or ^J depends on current buffer. Solution: Pass the displayed buffer to transchar(). (closes #6225) Files: src/drawline.c, src/charset.c, src/proto/charset.pro, src/ex_cmds.c, src/gui_beval.c, src/message.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_unprintable_01.dump, src/testdir/dumps/Test_display_unprintable_02.dump Patch 8.2.0944 Problem: Xxd test leaves file behind. Solution: Delete the file "XXDfile". (Christian Brabandt, closes #6228) Files: src/testdir/test_xxd.vim Patch 8.2.0945 Problem: Cannot use "z=" when 'spell' is off. Solution: Make "z=" work even when 'spell' is off. (Christian Brabandt, Gary Johnson, closes #6227) Files: runtime/doc/eval.txt, src/evalfunc.c, src/spell.c, src/spellsuggest.c, src/testdir/test_spell.vim, src/globals.h Patch 8.2.0946 Problem: Cannot use "q" to cancel a number prompt. Solution: Recognize "q" instead of ignoring it. Files: src/misc1.c, src/testdir/test_functions.vim Patch 8.2.0947 Problem: Readdirex() doesn't handle broken link properly. Solution: Small fixes to readdirex(). (Christian Brabandt, closes #6226, closes #6213) Files: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.0948 Problem: Spell test fails. Solution: Adjust expected text of the prompt. Files: src/testdir/test_spell.vim Patch 8.2.0949 Problem: Strptime() does not use DST. Solution: Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230) Files: src/time.c, src/testdir/test_functions.vim Patch 8.2.0950 Problem: Tagjump test fails. Solution: Adjust expected text of the prompt. Files: src/testdir/test_tagjump.vim Patch 8.2.0951 Problem: Search stat test has leftover from debugging. Solution: Remove line that writes a file. (Christian Brabandt, closes #6224) Files: src/testdir/test_search_stat.vim Patch 8.2.0952 Problem: No simple way to interrupt Vim. Solution: Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes, closes #1718) Files: runtime/doc/autocmd.txt, src/vim.h, src/autocmd.c, src/getchar.c, src/globals.h, src/os_unix.c, src/testdir/test_autocmd.vim Patch 8.2.0953 Problem: Spell checking doesn't work for CamelCased words. Solution: Add the "camel" value in the new option 'spelloptions'. (closes #1235) Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h, src/option.h, src/option.c, src/buffer.c, src/optionstr.c, src/testdir/gen_opt_test.vim, src/testdir/test_spell.vim Patch 8.2.0954 Problem: Not all desktop files are recognized. Solution: Add the *.directory pattern. (Eisuke Kawashima, closes #3317) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0955 (after 8.2.0953) Problem: Build fails. Solution: Add missing struct change. Files: src/structs.h Patch 8.2.0956 (after 8.2.0953) Problem: Spell test fails. Solution: Add missing change the spell checking. Files: src/spell.c Patch 8.2.0957 Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) Solution: Initialize one variable. Files: src/spell.c Patch 8.2.0958 Problem: Not sufficient testing for buffer writing. Solution: Add a few tests. (Yegappan Lakshmanan, closes #6238) Files: src/testdir/test_backup.vim, src/testdir/test_writefile.vim Patch 8.2.0959 Problem: Using 'quickfixtextfunc' is a bit slow. Solution: Process a list of entries. (Yegappan Lakshmanan, closes #6234) Files: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0960 Problem: Cannot use :import in legacy Vim script. Solution: Support :import in any Vim script. Files: src/vim9script.c, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0961 Problem: MS-Windows: no completion for locales. Solution: Use the directories in $VIMRUNTIME/lang to complete locales. (Christian Brabandt, closes 36248) Files: src/cmdexpand.c, src/ex_cmds2.c, src/testdir/test_cmdline.vim Patch 8.2.0962 Problem: Terminal test sometimes hangs on Travis. Solution: Do show output for this test temporarily. Files: src/testdir/Makefile Patch 8.2.0963 Problem: Number increment/decrement does not work with 'virtualedit'. Solution: Handle coladd changing. (Christian Brabandt, closes #6240, closes #923) Files: runtime/doc/options.txt, runtime/doc/various.txt, src/ops.c, src/testdir/test_increment.vim Patch 8.2.0964 Problem: TextYankPost does not provide info about Visual selection. Solution: Add the 'visual' key in v:event. (closes #6249) Files: runtime/doc/autocmd.txt, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.0965 Problem: Has_funcundefined() is not used. Solution: Delete the function. (Dominique Pellé, closes #6242) Files: src/autocmd.c, src/proto/autocmd.pro Patch 8.2.0966 Problem: 'shortmess' flag "n" not used in two places. Solution: Make use of the "n" flag consistent. (Nick Jensen, closes #6245, closes #6244) Files: src/bufwrite.c, src/proto/bufwrite.pro, src/buffer.c, src/fileio.c, src/testdir/dumps/Test_popup_textprop_corn_5.dump, src/testdir/dumps/Test_start_with_tabs.dump Patch 8.2.0967 Problem: Unnecessary type casts for vim_strnsave(). Solution: Remove the type casts. Files: src/evalvars.c, src/ex_cmds.c, src/ex_eval.c, src/fileio.c, src/filepath.c, src/findfile.c, src/highlight.c, src/if_ruby.c, src/insexpand.c, src/json.c, src/mark.c, src/memline.c, src/menu.c, src/misc1.c, src/ops.c, src/os_win32.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, src/sign.c, src/syntax.c, src/term.c, src/terminal.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/if_perl.xs Patch 8.2.0968 Problem: No proper testing of the 'cpoptions' flags. Solution: Add tests. (Yegappan Lakshmanan, closes #6251) Files: src/testdir/Make_all.mak, src/testdir/test_cpoptions.vim, src/testdir/test_edit.vim, src/testdir/test_normal.vim Patch 8.2.0969 Problem: Assert_equal() output for dicts is hard to figure out. Solution: Only show the different items. Files: src/testing.c, src/testdir/test_assert.vim Patch 8.2.0970 Problem: Terminal properties are not available in Vim script. Solution: Add the terminalprops() function. Files: src/term.c, src/proto/term.pro, src/evalfunc.c, src/main.c, src/testing.c, src/globals.h, src/testdir/test_termcodes.vim, runtime/doc/usr_41.txt, runtime/doc/eval.txt, runtime/doc/testing.txt Patch 8.2.0971 Problem: Build with tiny features fails. Solution: Add #ifdef. Files: src/term.c Patch 8.2.0972 Problem: Vim9 script variable declarations need a type. Solution: Make "let var: type" declare a script-local variable. Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0973 Problem: Vim9: type is not checked when assigning to a script variable. Solution: Check the type. Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0974 Problem: Vim9: memory leak when script var has wrong type. Solution: Free the variable name. Files: src/vim9script.vim Patch 8.2.0975 Problem: Vim9: script variable does not accept optional s: prefix. Solution: Adjust the accepted syntax. Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0976 Problem: Some 'cpoptions' not tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #6253) Files: src/testdir/test_cd.vim, src/testdir/test_charsearch.vim, src/testdir/test_cpoptions.vim, src/testdir/test_normal.vim Patch 8.2.0977 Problem: t_8u is made empty for the wrong terminals. (Dominique Pelle) Solution: Invert the check for TPR_YES. (closes #6254) Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.0978 Problem: Leaking memory in termcodes test. Solution: Set t_8u with set_option_value(). Files: src/term.c Patch 8.2.0979 Problem: A couple of screendump tests fail. Solution: Do not redraw when clearing t_8u. Files: src/term.c Patch 8.2.0980 Problem: Raku file extension not recognized. (Steven Penny) Solution: Recognize .raku and .rakumod. (closes #6255) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0981 Problem: Vim9: cannot compile "[var, var] = list". Solution: Implement list assignment. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0982 Problem: Insufficient testing for reading/writing files. Solution: Add more tests. (Yegappan Lakshmanan, closes #6257) Add "ui_delay" to test_override() and use it for the CTRL-O test. Files: src/testing.c, src/globals.h, src/ui.c, runtime/doc/testing.txt, src/testdir/test_autocmd.vim, src/testdir/test_edit.vim, src/testdir/test_filechanged.vim, src/testdir/test_writefile.vim Patch 8.2.0983 Problem: SConstruct file type not recognized. Solution: Use python for SConstruct files. (Roland Hieber) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0984 Problem: Not using previous window when closing a shell popup window. Solution: Use "prevwin" if it was set. (closes #6267) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0985 Problem: Simplify() does not remove slashes from "///path". Solution: Reduce > 2 slashes to one. (closes #6263) Files: src/findfile.c, src/testdir/test_functions.vim Patch 8.2.0986 (after 8.2.0985) Problem: MS-Windows: functions test fails. Solution: Only simplify ///path on Unix. Files: src/testdir/test_functions.vim Patch 8.2.0987 Problem: Vim9: cannot assign to [var; var]. Solution: Assign rest of items to a list. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/list.c, src/proto/list.pro, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0988 Problem: Getting directory contents is always case sorted. Solution: Add sort options and v:collate. (Christian Brabandt, closes #6229) Files: runtime/doc/eval.txt, runtime/doc/mlang.txt, src/auto/configure, src/cmdexpand.c, src/config.h.in, src/configure.ac, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c, src/filepath.c, src/globals.h, src/proto/fileio.pro, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/vim.h Patch 8.2.0989 Problem: Crash after resizing a terminal window. (August Masquelier) Solution: Add check for valid row in libvterm. (closes #6273) Files: src/libvterm/src/state.c, src/libvterm/src/screen.c Patch 8.2.0990 (after 8.2.0988) Problem: Using duplicate error number. Solution: Use an unused error number. Add a test for it. Files: src/globals.h, src/testdir/test_functions.vim Patch 8.2.0991 Problem: Cannot get window type for autocmd and preview window. Solution: Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277) Files: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_autocmd.vim, src/testdir/test_preview.vim Patch 8.2.0992 Problem: Vim9: crash when using :import in the Vim command. Solution: Give an error when using :import outside of a script. (closes #6271) Files: src/vim9script.c, src/testdir/test_vim9_script.vim, src/testdir/term_util.vim Patch 8.2.0993 Problem: Vim9 script test fails with normal features. Solution: Use :func instead of :def for now. Files: src/testdir/test_vim9_script.vim Patch 8.2.0994 Problem: Vim9: missing function causes compilation error. Solution: Call test function indirectly. Files: src/testdir/test_vim9_script.vim Patch 8.2.0995 Problem: Insufficient testing for the readdir() sort option. Solution: Add a few more tests. (Christian Brabandt, closes #6278) Files: src/testdir/test_functions.vim Patch 8.2.0996 Problem: Using "aucmdwin" in win_gettype() is not ideal. Solution: Rename to "autocmd". Files: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_autocmd.vim Patch 8.2.0997 Problem: Cannot execute a register containing line continuation. Solution: Concatenate lines where needed. (Yegappan Lakshmanan, closes #6272) Files: runtime/doc/repeat.txt, src/register.c, src/testdir/test_registers.vim Patch 8.2.0998 Problem: Not all tag code is tested. Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6284) Files: src/testdir/test_tagjump.vim Patch 8.2.0999 Problem: Moving to next sentence gets stuck on quote. Solution: When moving to the next sentence doesn't result in moving, advance a character and try again. (closes #6291) Files: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.1000 Problem: Get error when leaving Ex mode with :visual and a CmdLineEnter autocommand was used. Solution: Reset ex_pressedreturn. (closes #6293) Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.1001 Problem: Vim9: crash with nested "if" and assignment. Solution: Skip more of the assignment. Do not set ctx_skip when code is reachable. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1002 Problem: Test may fail when run directly. Solution: Check if g:run_nr exists. (Christian Brabandt, closes #6285) Files: src/testdir/term_util.vim Patch 8.2.1003 Problem: Vim9: return type of sort() is too generic. Solution: Get type from the first argument. (closes #6292) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1004 Problem: Line numbers below filler lines not always updated. Solution: Don't break out of the win_line() loop too early. (Christian Brabandt, closes #6294, closes #6138) Files: src/drawline.c, src/testdir/dumps/Test_diff_rnu_01.dump, src/testdir/dumps/Test_diff_rnu_02.dump, src/testdir/dumps/Test_diff_rnu_03.dump, src/testdir/test_diffmode.vim Patch 8.2.1005 Problem: Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing. Solution: Use an enum value. Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1006 Problem: Vim9: require unnecessary return statement. Solution: Improve the use of the had_return flag. (closes #6270) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1007 Problem: Completion doesn't work after ":r ++arg !". Solution: Skip over "++arg". (Christian Brabandt, closes #6275, closes #6258) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.1008 Problem: Vim9: no test for disassembling newly added instructions. Solution: Add a function and check disassembly. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.1009 Problem: Vim9: some failures not checked for. Solution: Add test cases. Remove unused code. Files: src/testdir/test_vim9_script.vim, src/vim9execute.c Patch 8.2.1010 Problem: Build failure in libvterm with debug enabled. (John Little) Solution: Use "->" instead of ".". Files: src/libvterm/src/state.c Patch 8.2.1011 Problem: Vim9: some code not tested. Solution: Add a few more test cases. Reorder checks for clearer error. Remove unreachable code. Files: src/evalvars.c, src/vim9script.c, src/vim9execute.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1012 Problem: Vim9: cannot declare single character script variables. Solution: Don't see "b:", "s:", etc. as namespace. Fix item size of sn_var_vals. Files: src/vim9script.c, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.1013 Problem: Channel tests can be a bit flaky. Solution: Set the g:test_is_flaky flag in SetUp(). Files: src/testdir/test_channel.vim Patch 8.2.1014 Problem: Using "name" for a string result is confusing. Solution: Rename to "end". Files: src/typval.c Patch 8.2.1015 Problem: Popup filter gets key with modifier prepended when using modifyOtherKeys. Solution: Remove the shift modifier when it is included in the key, also when the Alt or Meta modifier is used. Files: src/term.c, src/misc2.c, src/testdir/test_popupwin.vim Patch 8.2.1016 Problem: Vim9: test fails when channel feature is missing. Solution: Process an :if command when skipping Files: src/vim9compile.c Patch 8.2.1017 Problem: Appveyor output doesn't show MinGW console features. Solution: List the features of the console build. Files: ci/appveyor.bat Patch 8.2.1018 Problem: Typo in enum value. (James McCoy) Solution: Fix the typo. Files: src/vim9compile.c Patch 8.2.1019 Problem: Mapping <M-S-a> does not work in the GUI. Solution: Move the logic to remove the shift modifier to may_remove_shift_modifier() and also use it in the GUI. Files: src/gui_gtk_x11.c, src/misc2.c, src/proto/misc2.pro, src/term.c Patch 8.2.1020 Problem: Popupwin test fails in the GUI. Solution: Send GUI byte sequence for <C-S-a>. Files: src/testdir/test_popupwin.vim Patch 8.2.1021 Problem: Ruby interface not tested enough. Solution: Add a couple more tests. (Dominique Pellé, closes #6301) Files: src/testdir/test_ruby.vim Patch 8.2.1022 Problem: Various parts of code not covered by tests. Solution: Add more tests. (Yegappan Lakshmanan, closes #6300) Files: src/testdir/test_blob.vim, src/testdir/test_cpoptions.vim, src/testdir/test_digraph.vim, src/testdir/test_edit.vim, src/testdir/test_iminsert.vim, src/testdir/test_paste.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_selectmode.vim, src/testdir/test_tabpage.vim, src/testdir/test_tagjump.vim, src/testdir/test_textformat.vim, src/testdir/test_viminfo.vim, src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim Patch 8.2.1023 Problem: Vim9: redefining a function uses a new index every time. Solution: When redefining a function clear the contents and re-use the index. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/structs.h, src/eval.c, src/evalvars.c, src/vim9execute.c Patch 8.2.1024 Problem: Vim9: no error for using "let g:var = val". Solution: Add an error. Files: src/evalvars.c, src/globals.h, src/structs.h, src/vim9compile.c, src/scriptfile.c, src/userfunc.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1025 Problem: Tabpage menu and tabline not sufficiently tested. Solution: Add tests. (Yegappan Lakshmanan, closes #6307) Files: src/testdir/test_digraph.vim, src/testdir/test_tabpage.vim Patch 8.2.1026 Problem: Vim9: cannot break the line after "->". Solution: Check for a continuation line after "->", "[" and ".". Ignore trailing white space. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1027 Problem: GUI: multibyte characters do not work in a terminal. Solution: Do not assume a key is one byte. (closes #6304) Files: src/gui_gtk_x11.c, src/gui_x11.c Patch 8.2.1028 Problem: Vim9: no error for declaring buffer, window, etc. variable. Solution: Give an error. Unify the error messages. Files: src/evalvars.c, src/globals.h, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1029 Problem: Vim9: cannot chain function calls with -> at line start. Solution: Peek ahead for a following line starting with "->". (closes #6306) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1030 Problem: Reducing size of a terminal window may cause a crash. Solution: Make sure the row and column don't become negative. (closes #6273) Files: src/libvterm/src/state.c, src/libvterm/src/screen.c Patch 8.2.1031 Problem: Build failure with Perl5.32. Solution: Define a few more functions. (Felix Yan, closes #6310) Files: src/if_perl.xs Patch 8.2.1032 Problem: Error message for declaring a variable cannot be translated. Solution: Enclose in _(). Make environment variable a separate message. Files: src/globals.h, src/vim9compile.c Patch 8.2.1033 Problem: Not easy to read the test time in the test output. Solution: Align the times. Make slow tests bold. Files: src/testdir/runtest.vim Patch 8.2.1034 Problem: Compiler warning for uninitialized variables. Solution: Add initializations. (John Marriott) Files: src/vim9compile.c Patch 8.2.1035 Problem: setreg() does not always clear the register. Solution: Clear the register if the dict argument is empty. (Andy Massimino, closes #3370) Files: src/evalfunc.c, src/testdir/test_registers.vim Patch 8.2.1036 Problem: Popupwin test fails sometimes. Solution: Use WaitForAssert() instead of a sleep. Files: src/testdir/test_popupwin.vim Patch 8.2.1037 Problem: Vim9: crash when using line continuation inside :def. Solution: Check for no more lines available. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1038 Problem: Popupwin test fails. Solution: Fix WaitForAssert() argument. Files: src/testdir/test_popupwin.vim Patch 8.2.1039 Problem: Cannot put NUL byte on clipboard. Solution: Use the text length. (Christian Brabandt, closes #6312, closes #6149) Files: src/winclip.c, src/testdir/test_registers.vim Patch 8.2.1040 Problem: Not enough testing for movement commands. Solution: Add more tests. (Yegappan Lakshmanan, closes #6313) Files: src/testdir/test_cursor_func.vim, src/testdir/test_functions.vim, src/testdir/test_gf.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_quickfix.vim Patch 8.2.1041 Problem: Test summary is missing executed count. Solution: Adjust pattern used for counting. Files: src/testdir/summarize.vim Patch 8.2.1042 Problem: Vim9: cannot put an operator on the next line. Solution: Require a colon before a range to see if that causes problems. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/ex_docmd.c, src/globals.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1043 Problem: %a item in 'statusline' not tested. Solution: Add a test. (Dominique Pellé, closes #6318) Files: src/testdir/test_statusline.vim Patch 8.2.1044 Problem: Not all systemd file types are recognized. Solution: Match several more files. (Guido Cella, closes #6319) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1045 Problem: Vim9: line break before operator does not work. Solution: Peek the next line for an operator. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1046 Problem: Insufficient tests for src/buffer.c. Solution: Add more tests. Move comments related tests to a separate file. (Yegappan Lakshmanan, closes #6325) Files: src/testdir/Make_all.mak, src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, src/testdir/test_comments.vim, src/testdir/test_normal.vim, src/testdir/test_textformat.vim Patch 8.2.1047 Problem: Vim9: script cannot use line continuation like in a :def function. Solution: Pass the getline function pointer to the eval() functions. Use it for addition and multiplication operators. Files: src/vim.h, src/structs.h, src/globals.h, src/ex_eval.c, src/eval.c, src/proto/eval.pro, src/dict.c, src/evalfunc.c, src/evalvars.c, src/list.c, src/userfunc.c, src/scriptfile.c, src/proto/scriptfile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.1048 (after 8.2.1047) Problem: Build failure without the eval feature. Solution: Add dummy typedef. Files: src/structs.h Patch 8.2.1049 (after 8.2.1047) Problem: Vim9: leaking memory when using continuation line. Solution: Keep a pointer to the continuation line in evalarg_T. Centralize checking for a next command. Files: src/structs.h, src/eval.c, src/proto/eval.pro, src/beval.c, src/buffer.c, src/clientserver.c, src/evalvars.c, src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/findfile.c, src/fold.c, src/globals.h, src/if_ole.cpp, src/if_perl.xs, src/if_tcl.c, src/map.c, src/quickfix.c, src/regexp.c, src/register.c, src/screen.c, src/userfunc.c Patch 8.2.1050 (after 8.2.1049) Problem: Missing change in struct. Solution: Add missing change. Files: src/ex_cmds.h Patch 8.2.1051 Problem: Crash when changing a list while using reduce() on it. Solution: Lock the list. (closes #6330) Files: src/list.c, src/testdir/test_listdict.vim Patch 8.2.1052 Problem: Build failure with older compilers. Solution: Move declaration to start of block. Files: src/eval.c Patch 8.2.1053 Problem: Insufficient testing for 'statusline' and 'tabline'. Solution: Add more tests. (Yegappan Lakshmanan, closes #6333) Files: src/testdir/test_autocmd.vim, src/testdir/test_statusline.vim, src/testdir/test_tabline.vim Patch 8.2.1054 Problem: Not so easy to pass a lua function to Vim. Solution: Convert a Lua function and closure to a Vim funcref. (Prabir Shrestha, closes #6246) Files: runtime/doc/if_lua.txt, src/if_lua.c, src/proto/userfunc.pro, src/structs.h, src/testdir/test_lua.vim, src/userfunc.c Patch 8.2.1055 Problem: No filetype set for pacman config files. Solution: Recognize pacman.conf and *.hook. (Guido Cella, closes #6335) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1056 Problem: Wrong display when mixing match conceal and syntax conceal. Solution: Adjust how conceal flags are used. (closes #6327, closes #6303) Files: src/drawline.c, src/highlight.c, src/testdir/test_matchadd_conceal.vim Patch 8.2.1057 (after 8.2.1054) Problem: Cannot build with dynamic Lua. Solution: Add dll variables. Files: src/if_lua.c Patch 8.2.1058 Problem: Multiline conceal causes display errors. Solution: Do not allow conceal cross over EOL. (closes #6326, closes #4854, closes #6302) Files: src/drawline.c, src/testdir/test_conceal.vim, src/testdir/test_diffmode.vim Patch 8.2.1059 Problem: Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan) Solution: Do not allow the autocommand window to be closed. Files: src/ex_docmd.c, src/window.c, src/globals.h, src/testdir/test_autocmd.vim Patch 8.2.1060 Problem: Not all elinks files are recognized. Solution: Just check for "elinks.conf". (Guido Cella, closes #6337) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1061 Problem: Insufficient testing for src/window.c. Solution: Add more tests. (Yegappan Lakshmanan, closes #6345) Files: src/testdir/test_excmd.vim, src/testdir/test_gf.vim, src/testdir/test_options.vim, src/testdir/test_popupwin.vim, src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim, src/window.c Patch 8.2.1062 Problem: Vim9: no line break allowed inside "cond ? val1 : val2". Solution: Check for operator after line break. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1063 Problem: Vim9: no line break allowed before || or &&. Solution: Check for operator after line break. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1064 Problem: Vim9: no line break allowed before comparators. Solution: Check for comparator after line break. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1065 Problem: Vim9: no line break allowed inside a list. Solution: Handle line break inside a list in Vim9 script. Files: src/eval.c, src/proto/eval.pro, src/list.c, src/proto/list.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_arglist.vim Patch 8.2.1066 Problem: Lua arrays are zero based. Solution: Make Lua arrays one based. (Prabir Shrestha, closes #6347) Note: this is not backwards compatible. Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1067 Problem: Expression "!expr->func()" does not work. Solution: Apply plus and minus earlier. (closes #6348) Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1068 Problem: Vim9: no line break allowed inside a dict. Solution: Handle line break inside a dict in Vim9 script. Files: src/eval.c, src/dict.c, src/proto/dict.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1069 Problem: Vim9: fail to check for white space in list. Solution: Add check for white space. Files: src/list.c Patch 8.2.1070 Problem: Vim9: leaking memory when lacking white space in dict. Solution: Clear the typval. Files: src/dict.c Patch 8.2.1071 Problem: Vim9: no line break allowed inside a lambda. Solution: Handle line break inside a lambda in Vim9 script. Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/proto/userfunc.pro, src/popupwin.c, src/vim9compile.c, src/ex_eval.c, src/globals.h, src/structs.h, src/testdir/test_vim9_expr.vim Patch 8.2.1072 Problem: Missing libvterm test. Solution: Sync with libvterm revision 768. Files: src/libvterm/src/state.c, src/libvterm/t/63screen_resize.test Patch 8.2.1073 Problem: Vim9: no line break allowed in () expression. Solution: Skip a line break. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1074 Problem: Vim9: no line break allowed after some operators. Solution: Skip a line break after the operator. Add eval_may_get_next_line() to simplify checking for a line break. Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1075 Problem: Vim9: no line break allowed in :echo expression. Solution: Skip linebreak. Files: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1076 Problem: Vim9: no line break allowed in :if expression. Solution: Skip linebreak. Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1077 Problem: No enough test coverage for highlighting. Solution: Add more tests. (Yegappan Lakshmanan, closes #6351) Files: runtime/doc/syntax.txt, src/testdir/test_cmdline.vim, src/testdir/test_highlight.vim, src/testdir/test_match.vim Patch 8.2.1078 Problem: Highlight and match functionality together in one file. Solution: Move match functionality to a separate file. (Yegappan Lakshmanan, closes #6352) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/highlight.c, src/match.c, src/proto.h, src/proto/highlight.pro, src/proto/match.pro Patch 8.2.1079 Problem: Vim9: no line break allowed in a while loop. Solution: Update stored loop lines when finding line breaks. Files: src/structs.h, src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.1080 Problem: Vim9: no line break allowed in a for loop. Solution: Skip line breaks in for command. Files: src/eval.c, src/ex_eval.c, src/proto/eval.pro, src/userfunc.c, src/structs.h, src/globals.h, src/testdir/test_vim9_cmd.vim Patch 8.2.1081 Problem: Lua: cannot use table.insert() and table.remove(). Solution: Add the list functions. (Prabir Shrestha, closes #6353) Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1082 Problem: Coverity complains about ignoring dict_add() return value. Solution: Add (void). Files: src/evalfunc.c Patch 8.2.1083 Problem: Crash when using reduce() on a NULL list. Solution: Only access the list when not NULL. Files: src/list.c, src/testdir/test_listdict.vim Patch 8.2.1084 Problem: Lua: registering function has useless code. Solution: Remove clearing grow arrays. Files: src/userfunc.c Patch 8.2.1085 Problem: Coverity complains about ignoring dict_add() return value. Solution: Add (void). Files: src/register.c Patch 8.2.1086 Problem: Possibly using freed memory when text properties used when changing indent of a line. Solution: Compute the offset before calling ml_replace(). Files: src/indent.c Patch 8.2.1087 Problem: Possible memory leak when file expansion fails. Solution: Clear the grow array when returning FAIL. Use an error message instead of an empty string. Files: src/filepath.c Patch 8.2.1088 Problem: A very long translation might cause a buffer overflow. Solution: Truncate the message if needed. Files: src/fileio.c Patch 8.2.1089 Problem: Coverity warns for pointer computation. Solution: Avoid computing a pointer to invalid memory. Files: src/spellfile.c Patch 8.2.1090 Problem: May use NULL pointer when skipping over name. Solution: Always set ll_name_end. Files: src/eval.c Patch 8.2.1091 Problem: No check if opening a pty works. Solution: Check for invalid file descriptor. Files: src/os_unix.c Patch 8.2.1092 Problem: Not checking if saving for undo succeeds. Solution: Bail out if u_savesub() returns FAIL. Files: src/textprop.c Patch 8.2.1093 Problem: Python: double free when adding item to dict fails. Solution: Remove vim_free() call. Files: src/if_py_both.h Patch 8.2.1094 Problem: Dead code in libvterm. Solution: Remove condition that is always true. Files: src/libvterm/src/pen.c Patch 8.2.1095 Problem: May use pointer after freeing it when text properties are used. Solution: Update redo buffer before calling ml_replace(). Files: src/spellsuggest.c Patch 8.2.1096 Problem: Vim9: return type of getqflist() is wrong. Solution: Let the return type depend on the arguments. Also for getloclist(). (closes #6357) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1097 Problem: Highlight code not sufficiently tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6359) Files: src/testdir/test_filter_cmd.vim, src/testdir/test_highlight.vim Patch 8.2.1098 Problem: Vim9: cannot use line break in :throw argument. Solution: Check for line break. Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1099 Problem: Vim9: cannot use line break in :cexpr argument. Solution: Check for line break. Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1100 Problem: Vim9: cannot use line break in :execute, :echomsg and :echoerr argument. Solution: Check for line break. Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1101 Problem: No error when using wrong arguments for setqflist() or setloclist(). Solution: Check for the error. Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1102 Problem: Coverity gets confused by an unnecessary NULL check. Solution: Remove the check for NULL. Files: src/quickfix.c Patch 8.2.1103 Problem: Coverity reports an unnecessary NULL check. Solution: Remove the check for NULL. Files: src/eval.c Patch 8.2.1104 Problem: Coverity warns for possible NULL pointer use. Solution: Check "pbyts" is not NULL. Files: src/spellsuggest.c Patch 8.2.1105 Problem: Insufficient test coverage for Lua. Solution: Add tests. (Yegappan Lakshmanan, closes #6368) Fix uncovered memory leak. Avoid unnecessary copy/free. Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1106 Problem: Crash when trying to use s: variable in typed command. Solution: Don't use the script index when not set. (Ken Takata, closes #6366) Files: src/vim9compile.c, src/testdir/test_vimscript.vim Patch 8.2.1107 Problem: 'imactivatefunc' and 'imstatusfunc' are not used in the GUI. Solution: Adjust the #ifdefs. (closes #6367) Files: runtime/doc/options.txt, src/gui_xim.c, src/testdir/test_iminsert.vim Patch 8.2.1108 Problem: Mouse left-right scroll is not supported in terminal window. Solution: Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363) Files: src/libvterm/src/mouse.c, src/mouse.c, src/terminal.c, src/testdir/mouse.vim, src/testdir/test_termcodes.vim Patch 8.2.1109 (after 8.2.1106) Problem: Still crashing when using s:variable. Solution: Remove assignment. (Ken Takata) Files: src/vim9compile.c Patch 8.2.1110 Problem: Vim9: line continuation does not work in function arguments. Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string as comment. Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/ex_eval.c, src/list.c, src/dict.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1111 Problem: Inconsistent naming of get_list_tv() and eval_dict(). Solution: Rename get_list_tv() to eval_list(). Similarly for eval_number(), eval_string(), eval_lit_string() and a few others. Files: src/eval.c, src/list.c, src/proto/list.pro, src/vim9compile.c, src/typval.c, src/proto/typval.pro, src/vim9script.c, src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c Patch 8.2.1112 Problem: Vim9: no line continuation allowed in method call. Solution: Handle line continuation in expression before method call. Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1113 Problem: No test for verbose output of :call. Solution: Add a test. Files: src/testdir/test_user_func.vim Patch 8.2.1114 Problem: Terminal test sometimes times out. Solution: Split the test in two parts. Files: src/testdir/Makefile, src/testdir/Make_all.mak, src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim Patch 8.2.1115 Problem: Iminsert test fails when compiled with VIMDLL. Solution: Change condition. (Ken Takata, closes #6376) Files: src/testdir/test_iminsert.vim Patch 8.2.1116 Problem: Vim9: parsing command checks for list twice. Solution: Adjust how a command is parsed. Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1117 Problem: Coverity warns for using uninitialized field. Solution: Initialize v_lock. Files: src/if_lua.c Patch 8.2.1118 Problem: Condition can never be true, dead code. Solution: Remove the dead code. Files: src/move.c Patch 8.2.1119 Problem: Configure fails with Xcode 12 beta. Solution: use "return" instead of "exit()". (Nico Weber, closes #6381) Files: src/configure.ac, src/auto/configure Patch 8.2.1120 Problem: Python code not tested properly. Solution: Add more tests and convert old-style test into new-style test. (Yegappan Lakshmanan, closes #6370) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test86.in, src/testdir/test86.ok, src/testdir/test_python2.vim Patch 8.2.1121 Problem: Command completion not working after ++arg. Solution: Move skipping up. (Christian Brabandt, closes #6382) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.1122 Problem: Vim9: line continuation in dict member not recognized. Solution: Check for line continuation. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1123 Problem: Python 3 test is old style. Solution: Turn into new style test. (Yegappan Lakshmanan, closes #6385) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test87.in, src/testdir/test87.ok, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1124 Problem: Vim9: no line break allowed in :import command. Solution: Skip over line breaks. Files: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1125 Problem: Vim9: double quote can be a string or a comment. Solution: Only support comments starting with # to avoid confusion. Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, src/vim9script.c Patch 8.2.1126 Problem: Vim9: using :copen causes an error. Solution: Add flag LET_NO_COMMAND in set_var(). Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1127 Problem: Vim9: getting a dict member may not work. Solution: Clear the dict only after copying the item. (closes #6390) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1128 Problem: The write message mentions characters, but it's actually bytes. Solution: Change "C" to "B" and "characters" to "bytes". Files: runtime/doc/options.txt, src/fileio.c, src/testdir/test_cscope.vim, src/testdir/test_netbeans.vim, src/testdir/dumps/Test_diff_syntax_1.dump, src/testdir/dumps/Test_long_file_name_1.dump, src/testdir/dumps/Test_display_unprintable_01.dump, src/testdir/dumps/Test_tselect_1.dump Patch 8.2.1129 Problem: Vim9: bar not recognized after not compiled command. Solution: Check for bar for commands where this is possible. (closes #6391) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1130 Problem: Vim9: bar not recognized after function call Solution: Skip whitespace. (closes #6391) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1131 Problem: Vim9: error message for returning a value in a function that does not return anything is not clear. Solution: Add a specific message. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1132 Problem: Vim9: return type of repeat() is not specific enough. Solution: Return the type of the first argument. (closes #6395) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1133 Problem: Vim9: return type of add() is not specific enough. Solution: Return the type of the first argument. (closes #6395) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1134 Problem: Vim9: getting a list member may not work. Solution: Clear the list only after copying the item. (closes #6393) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1135 Problem: Vim9: getting a dict member may not work. Solution: Clear the dict only after copying the item. Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1136 Problem: Vim9: return type of argv() is always any. Solution: Use list<string> if there is no argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1137 Problem: Vim9: modifiers not cleared after compiling function. Solution: Clear command modifiers. (closes #6396) Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_vim9_silent_echo.dump Patch 8.2.1138 Problem: Vim9: return type of copy() and deepcopy() is any. Solution: Use type of the argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1139 (after 8.2.1137) Problem: Vim9: test for silent echo fails in some environments. Solution: Use :function instead of :def. Files: src/testdir/test_vim9_func.vim Patch 8.2.1140 Problem: Vim9: return type of extend() is any. Solution: Use type of the argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1141 Problem: Vim9: return type of filter() is any. Solution: Use type of the argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1142 Problem: Vim9: return type of insert() is any. Solution: Use type of the first argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1143 Problem: Vim9: return type of remove() is any. Solution: Use the member type of the first argument, if known. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1144 Problem: Vim9: return type of reverse() is any. Solution: Use the type of the first argument. Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1145 Problem: Vim9: "for" only accepts a list at compile time. Solution: Also accept a list at runtime. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1146 Problem: Not enough testing for Python. Solution: Add more tests. Fix uncovered problems. (Yegappan Lakshmanan, closes #6392) Files: src/if_py_both.h, src/if_python3.c, src/testdir/shared.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1147 Problem: :confirm may happen in cooked mode. (Jason Franklin) Solution: Switch to raw mode before prompting. (Brandon Pfeifer) Files: src/message.c, src/testdir/test_excmd.vim Patch 8.2.1148 Problem: Warning for using int instead of size_t. Solution: Change "len" argument to size_t. (Mike Williams) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c Patch 8.2.1149 Problem: Vim9: :eval command not handled properly. Solution: Compile the :eval command. (closes #6408) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1150 Problem: ml_get error when using Python. (Yegappan Lakshmanan) Solution: Check the line number is not out of range. Call "Check" with "fromObj" instead of "from". Files: src/if_py_both.h, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1151 Problem: Insufficient test coverage for Python. Solution: Add more test cases. (Yegappan Lakshmanan, closes #6415) Files: src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1152 Problem: Vim9: function reference is missing script prefix. Solution: Use the actual function name instead of the name searched for in the script context. (closes #6412) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1153 Problem: Vim9: script test fails on some systems. Solution: Return proper value from Compare(). Files: src/testdir/test_vim9_script.vim Patch 8.2.1154 Problem: Vim9: crash when using imported function. Solution: Check for a function type. Set the script context when calling a function. (closes #6412) Files: src/evalvars.c, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1155 Problem: Vim9: cannot handle line break inside lambda. Solution: Pass the compilation context through. (closes #6407, closes #6409) Files: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1156 Problem: Vim9: No error for invalid command in compiled function. Solution: Handle CMD_SIZE. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1157 Problem: Vim9: dict.name is not recognized as an expression. Solution: Recognize ".name". (closes #6418) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1158 (after 8.2.1155) Problem: Build error. Solution: Add missing change to globals. Files: src/globals.h Patch 8.2.1159 Problem: Vim9: no error for missing space after a comma. Solution: Check for white space. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1160 Problem: Vim9: memory leak in allocated types. Solution: Free the type pointers. Files: src/vim9script.c, src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.1161 Problem: Vim9: using freed memory. Solution: Put pointer back in evalarg instead of freeing it. Files: src/userfunc.c, src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/structs.h Patch 8.2.1162 Problem: Crash when using a lambda. Solution: Check for evalarg to be NULL. Files: src/userfunc.c Patch 8.2.1163 (after 8.2.1161) Problem: Build error. Solution: Add missing change to globals. Files: src/globals.h Patch 8.2.1164 Problem: Text cleared by checking terminal properties not redrawn. (Alexey Radkov) Solution: Mark the screen characters as invalid. (closes #6422) Files: src/screen.c, src/proto/screen.pro, src/term.c Patch 8.2.1165 Problem: Insufficient testing for the Tcl interface. Solution: Add more tests. (Yegappan Lakshmanan, closes #6423) Files: src/testdir/test_tcl.vim Patch 8.2.1166 Problem: Once mouse move events are enabled getchar() returns them. Solution: Ignore K_MOUSEMOVE in getchar(). (closes #6424) Files: runtime/doc/eval.txt, src/getchar.c Patch 8.2.1167 Problem: Vim9: builtin function method call only supports first argument. Solution: Shift arguments when needed. (closes #6305, closes #6419) Files: src/evalfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1168 Problem: Wrong method argument for appendbufline(). Solution: Use FEARG_3. Files: src/evalfunc.c Patch 8.2.1169 Problem: Write NUL past allocated space using corrupted spell file. (Markus Vervier) Solution: Init "c" every time. Files: src/spellfile.c Patch 8.2.1170 Problem: Cursor off by one with block paste while 'virtualedit' is "all". Solution: Adjust condition. (Hugo Gualandi, closes #6430) Files: src/register.c, src/testdir/test_registers.vim Patch 8.2.1171 Problem: Possible crash when out of memory. Solution: Check for NULL pointer. (Dominique Pellé, closes #6432) Files: src/syntax.c Patch 8.2.1172 Problem: Error messages when doing "make clean" in the runtime/doc or src/tee directories. Solution: Use "rm -f". Files: runtime/doc/Makefile, src/tee/Makefile Patch 8.2.1173 Problem: Tee doesn't build on some systems. Solution: Include header files. (Dominique Pelle, closes #6431) Files: src/tee/tee.c Patch 8.2.1174 Problem: No test for the "recording @x" message. Solution: Add a test. (Dominique Pellé, closes #6427) Files: src/testdir/test_registers.vim Patch 8.2.1175 Problem: Vim9: Cannot split a line before ".member". Solution: Check for ".member" after line break. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1176 Problem: Vim9: not enough type checking in Vim9 script. Solution: Use same type checking as in a :def function. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1177 Problem: Terminal2 test sometimes hangs in the GUI. Solution: Move some tests to other files to further locate the problem. Set the GUI to a fixed screen size. Files: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/Make_all.mak, src/testdir/runtest.vim Patch 8.2.1178 Problem: Vim9: filter function recognized as command modifier, leading to a crash. Solution: Clear cmdmod after freeing items. Do not recognize a command modifier followed by non-white space. (closes #6434) Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1179 Problem: Test_termwinscroll() sometimes hangs in the GUI. Solution: Skip the test in the GUI. Files: src/testdir/test_terminal2.vim Patch 8.2.1180 Problem: Build failure in small version. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.1181 Problem: Json code not fully tested. Solution: Add more test coverage. (Dominique Pellé, closes #6433) Files: src/testdir/test_json.vim Patch 8.2.1182 Problem: Vim9: no check for whitespace after comma in lambda. Solution: Give error if white space is missing. Files: src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1183 Problem: assert_fails() checks the last error message. Solution: Check the first error, it is more relevant. Fix all the tests that rely on the old behavior. Files: runtime/doc/testing.txt, src/message.c, src/globals.h, src/testing.c, src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_cd.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_cpoptions.vim, src/testdir/test_cscope.vim, src/if_cscope.c, src/testdir/test_excmd.vim, src/evalvars.c, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_json.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_listener.vim, src/testdir/test_match.vim, src/testdir/test_menu.vim, src/testdir/test_method.vim, src/testdir/test_normal.vim, src/testdir/test_popup.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, src/testdir/test_random.vim, src/testdir/test_search.vim, src/testdir/test_signs.vim, src/testdir/test_spell.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/test_trycatch.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_utf8.vim, src/testdir/test_global.vim, src/testdir/test_tagfunc.vim Patch 8.2.1184 (after 8.2.1183) Problem: Some tests fail. Solution: Adjust tests for different assert_fails() behavior. Remove unused variable. Files: src/testdir/test_assert.vim, src/testdir/test_eval_stuff.vim, src/evalvars.c Patch 8.2.1185 (after 8.2.1183) Problem: Some other tests fail. Solution: Adjust tests for different assert_fails() behavior. Files: src/testdir/test_lua.vim, src/testdir/test_tcl.vim Patch 8.2.1186 Problem: With SGR mouse codes balloon doesn't show up after click. Solution: Add the MOUSE_RELEASE bits to mouse_code. Files: src/mouse.c Patch 8.2.1187 Problem: Terminal2 test sometimes hangs in the GUI on Travis. Solution: Disable Test_zz2_terminal_guioptions_bang() for now. Files: src/testdir/test_terminal2.vim Patch 8.2.1188 Problem: Memory leak with invalid json input. Solution: Free all keys at the end. (Dominique Pellé, closes #6443, closes #6442) Files: src/json.c, src/testdir/test_json.vim Patch 8.2.1189 Problem: Vim9: line continuation in lambda doesn't always work. Solution: Do not use a local evalarg unless there isn't one. (closes #6439) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1190 Problem: Vim9: checking for Vim9 syntax is spread out. Solution: Use in_vim9script(). Files: src/vim9script.c, src/dict.c, src/eval.c, src/evalvars.c, src/ex_docmd.c, src/list.c, src/scriptfile.c, src/userfunc.c Patch 8.2.1191 Problem: Vim9: crash when function calls itself. Solution: Add status UF_COMPILING. (closes #6441) Files: src/structs.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1192 Problem: Lua test fails with older Lua version. Solution: Adjust expected error messages. (closes #6444) Files: src/testdir/test_lua.vim Patch 8.2.1193 Problem: Terminal window not redrawn when dragging a popup window over it. Solution: Redraw terminal window. (fixes #6438) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump Patch 8.2.1194 Problem: Test failure because shell prompt differs. Solution: Set the shell prompt. Files: src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump Patch 8.2.1195 Problem: Clientserver test fails on MS-Windows. Solution: Expect a different error message. Files: src/testdir/test_clientserver.vim Patch 8.2.1196 Problem: Build failure with normal features. Solution: Add #ifdef. Files: src/popupwin.c Patch 8.2.1197 Problem: Clientserver test still fails on MS-Windows. Solution: Expect a different error message. Files: src/testdir/test_clientserver.vim Patch 8.2.1198 Problem: Terminal2 test sometimes hangs in the GUI on Travis. Solution: Move test function to terminal3 to see if the problem moves too. Files: src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim Patch 8.2.1199 Problem: Not all assert functions are fully tested. Solution: Test more assert functions. Files: src/testing.c, src/testdir/test_assert.vim Patch 8.2.1200 Problem: Vim9: cannot disassemble a lambda function. Solution: Recognize "<lambda>123" as a function name. Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1201 Problem: Vim9: crash when passing number as dict key. Solution: Check key type to be string. (closes #6449) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1202 Problem: Vim9: crash when calling a closure from a builtin function. Solution: Use the current execution context. (closes #6441) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1203 Problem: Unused assignments in expression evaluation. Solution: Move declarations and assignments to inner blocks where possible. Files: src/eval.c Patch 8.2.1204 Problem: Vim9: true and false not recognized in Vim9 script. Solution: Recognize true and false. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1205 Problem: Vim9: && and || work differently when not compiled. Solution: Keep the value. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1206 Problem: Vim9: crash in expr test when run in the GUI. Solution: Temporarily comment out two test lines. Files: src/testdir/test_vim9_expr.vim Patch 8.2.1207 Problem: Vim9: crash in expr test when run in the GUI. Solution: Break out of loop over hashtab also when function got removed and added. Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1208 Problem: Build failure. Solution: Add missing change. Files: src/structs.h Patch 8.2.1209 Problem: Vim9: test failure. Solution: Add missing changes to hashtab. Files: src/hashtab.c Patch 8.2.1210 Problem: Using ht_used when looping through a hashtab is less reliable. Solution: Use ht_changed in a few more places. Files: src/userfunc.c, src/if_py_both.h Patch 8.2.1211 (after 8.2.1118) Problem: Removed more than dead code. Solution: Put back the decrement. Files: src/move.c, src/testdir/test_diffmode.vim Patch 8.2.1212 Problem: Cannot build with Lua 5.4. Solution: Use luaL_typeerror instead defining it. (closes #6454) Files: src/if_lua.c Patch 8.2.1213 Problem: Mouse codes not tested sufficiently. Solution: Add more tests for mouse codes. (closes #6436) Files: src/testdir/test_termcodes.vim Patch 8.2.1214 Problem: MS-Windows: default _vimrc not correct in silent install mode. Solution: Add the LoadDefaultVimrc macro. (Ken Takata, closes #6451) Files: nsis/gvim.nsi Patch 8.2.1215 Problem: Atari MiNT support is outdated. Solution: Nobody responded this code is still useful, so let's delete it. Files: Filelist, src/os_mint.h, src/vim.h, src/Make_mint.mak, src/digraph.c, src/fileio.c, src/memfile.c, src/os_unix.c, src/term.c, READMEdir/README_extra.txt, runtime/doc/os_mint.txt, src/INSTALL Patch 8.2.1216 Problem: Startup test fails. Solution: Adjust expected values for deleted lines. Files: src/testdir/test_startup.vim Patch 8.2.1217 Problem: Startup test depends on random source file. Solution: Write a test file to find quickfix errors in. Files: src/testdir/test_startup.vim Patch 8.2.1218 Problem: Vim9: cannot use 'text'->func(). Solution: Recognize string at start of command. Files: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.1219 Problem: Symlink not followed if dirname ends in //. Solution: Resolve symlink earlier. (Tomáš Janoušek, closes #6454) Files: src/memline.c, src/testdir/test_swap.vim Patch 8.2.1220 Problem: memory access error when dragging a popup window over a buffer with folding. Solution: Avoid going over the end of the cache. (closes #6438) Files: src/mouse.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump, src/testdir/dumps/Test_popupwin_term_03.dump, src/testdir/dumps/Test_popupwin_term_04.dump Patch 8.2.1221 Problem: Memory leak when updating popup window. Solution: Clear search highlighting. Files: src/popupwin.c Patch 8.2.1222 Problem: When using valgrind a Vim command started by a test uses the same log file name which gets overwritten. Solution: Fix regexp to rename the log file. Files: src/testdir/shared.vim Patch 8.2.1223 Problem: Vim9: invalid type error for function default value. Solution: Use right argument index. (closes #6458) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1224 Problem: Vim9: arguments from partial are not used. Solution: Put the partial arguments on the stack. (closes #6460) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1225 Problem: Linker errors when building with dynamic Python 3.9. Solution: Add #defined items. (closes #6461) Files: src/if_python3.c Patch 8.2.1226 Problem: MS-Windows: windows positioning wrong when the taskbar is placed at the top or left of the screen. Solution: Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira, Ken Takata, closes #6455) Files: src/gui_w32.c Patch 8.2.1227 Problem: Vim9: allowing both quoted and # comments is confusing. Solution: Only support # comments in Vim9 script. Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1228 Problem: Scrollbars not flush against the window edges when maximised. Solution: Add padding. (Ken Takata, closes #5602, closes #6466) Files: src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_haiku.cc, src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/proto/gui_athena.pro, src/proto/gui_gtk.pro, src/proto/gui_haiku.pro, src/proto/gui_mac.pro, src/proto/gui_motif.pro, src/proto/gui_photon.pro, src/proto/gui_w32.pro Patch 8.2.1229 Problem: Build error without the eval feature. Solution: Declare starts_with_colon. Make function local. Files: src/ex_docmd.c, src/proto/ex_docmd.pro Patch 8.2.1230 Problem: Vim9: list index error not caught by try/catch. Solution: Do not bail out if an error is inside try/catch. (closes #6462) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1231 Problem: MS-Windows: GUI code can be cleaned up. Solution: Do a bit of cleaning up. (Ken Takata, closes #6465) Files: src/gui_w32.c, src/proto/gui_w32.pro Patch 8.2.1232 Problem: MS-Windows GUI: Snap cancelled by split command. Solution: Do not cancel Snap when splitting a window. (Ken Takata, closes #6467) Files: src/gui_w32.c Patch 8.2.1233 Problem: Vim9: various errors not caught by try/catch. Solution: Do not bail out if an error is inside try/catch. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1234 Problem: Lua build problem with old compiler. Solution: Move declarations to start of the block. (Taro Muraoka, closes #6477) Files: src/if_lua.c Patch 8.2.1235 Problem: Not all mouse codes covered by tests. Solution: Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472) Files: src/testdir/mouse.vim, src/testdir/test_termcodes.vim Patch 8.2.1236 Problem: Vim9: a few errors not caught by try/catch. Solution: Do not bail out if an error is inside try/catch. Fix that a not matching catch doesn't jump to :endtry. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1237 Problem: Changing 'completepopup' after opening a popup has no effect. (Jay Sitter) Solution: Close the popup when the options are changed. (closes #6471) Files: runtime/doc/options.txt, src/popupwin.c, src/proto/popupwin.pro, src/optionstr.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_infopopup_8.dump Patch 8.2.1238 Problem: Vim9: a few remaining errors not caught by try/catch. Solution: Do not bail out if an error is inside try/catch. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1239 Problem: "maxwidth" in 'completepopup' not obeyed. (Jay Sitter) Solution: Add separate field for value from option. (closes #6470) Files: src/structs.h, src/popupwin.c, src/popupmenu.c, src/testdir/dumps/Test_popupwin_infopopup_9.dump Patch 8.2.1240 Problem: GUI tests sometimes fail because of translations. Solution: Reload the menus without translation. (Taro Muraoka, closes #6486) Files: src/testdir/runtest.vim Patch 8.2.1241 Problem: Cannot use getbufinfo() as a method. Solution: Support using getbufinfo() as a method. (closes #6458) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.1242 Problem: Vim9: no error if calling a function with wrong argument type. Solution: Check types of arguments. (closes #6469) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1243 Problem: Vim9: cannot have a comment or empty line halfway a list at script level. Solution: Skip more than one line if needed. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/scriptfile.c Patch 8.2.1244 Problem: Vim9: in lambda index assumes a list. Solution: Use the value type to decide about list or dict. (closes #6479) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1245 Problem: Build failure in tiny version. Solution: Add #ifdef. Files: src/scriptfile.c Patch 8.2.1246 Problem: Vim9: comment after assignment doesn't work. Solution: Skip over white space. (closes #6481) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1247 Problem: Vim9: cannot index a character in a string. Solution: Add ISN_STRINDEX instruction. (closes #6478) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1248 Problem: Netbeans test is flaky in the GUI. Solution: Filter out geometry messages. (Taro Muraoka, closes #6487) Files: src/testdir/test_netbeans.vim Patch 8.2.1249 Problem: Vim9: disassemble test fails. Solution: Change INDEX to LISTINDEX. Add test for STRINDEX. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.1250 Problem: Vim9: cannot use the g:, b:, t: and w: namespaces. Solution: Add instructions to push a dict for the namespaces. (closes #6480) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1251 Problem: Vim9: warning for pointer usage, test failure undetected. Solution: Fix pointer indirection. Give error when executing function failed for any reason. Fix instruction names. Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.1252 Problem: ":marks" may show '< and '> mixed up. Solution: Show the mark position as where '< and '> would jump. Files: src/mark.c, src/testdir/test_marks.vim Patch 8.2.1253 Problem: CTRL-K in Insert mode gets <CursorHold> inserted. (Roland Puntaier) Solution: Do not reset did_cursorhold, restore it. (closes #6447) Files: src/normal.c Patch 8.2.1254 Problem: MS-Windows: regexp test may fail if 'iskeyword' set wrongly. Solution: Override the 'iskeyword' value. (Taro Muraoka, closes #6502) Files: src/testdir/test_regexp_utf8.vim Patch 8.2.1255 Problem: Cannot use a lambda with quickfix functions. Solution: Add support for lambda. (Yegappan Lakshmanan, closes #6499) Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/quickfix.txt, src/channel.c, src/evalvars.c, src/optionstr.c, src/proto/evalvars.pro, src/proto/quickfix.pro, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1256 Problem: Vim9: type wrong after getting dict item in lambda. Solution: Set the type to "any" after enforcing dict type. (closes #6491) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1257 Problem: Vim9: list unpack doesn't work at the script level. Solution: Detect unpack assignment better. (closes #6494) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1258 (after 8.2.1253) Problem: CursorHold does not work well.a (Shane-XB-Qian) Solution: Only restore did_cursorhold when using :normal. Files: src/normal.c Patch 8.2.1259 Problem: Empty group in 'tabline' may cause using an invalid pointer. Solution: Set the group start position. (closes #6505) Files: src/buffer.c, src/testdir/test_tabline.vim Patch 8.2.1260 Problem: There is no good test for CursorHold. Solution: Add a test. Remove duplicated test. (Yegappan Lakshmanan, closes #6503) Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_normal.vim Patch 8.2.1261 Problem: Vim9: common type of function not tested. Solution: Add a test. Fix uncovered problems. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1262 Problem: src/ex_cmds.c file is too big. Solution: Move help related code to src/help.c. (Yegappan Lakshmanan, closes #6506) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/cmdexpand.c, src/ex_cmds.c, src/help.c, src/proto.h, src/proto/ex_cmds.pro, src/proto/help.pro Patch 8.2.1263 Problem: Vim9: comparators use 'ignorecase' in Vim9 script. Solution: Ignore 'ignorecase'. Use true and false instead of 1 and 0. (closes #6497) Files: src/eval.c, src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1264 Problem: Terminal getwinpos() test is a bit flaky. Solution: Call getwinpos() a bit later. Files: src/testdir/test_terminal3.vim Patch 8.2.1265 Problem: Crash with EXITFREE when split() fails. Solution: Restore 'cpoptions'. Files: src/evalfunc.c Patch 8.2.1266 (after 8.2.1262) Problem: Makefile preference were accidentally included. Solution: Revert the Makefile changes. Files: src/Makefile Patch 8.2.1267 Problem: MS-Windows: tests may fail due to $PROMPT value. Solution: Set $PROMPT for testing. (Taro Muraoka, closes #6510) Files: src/testdir/runtest/vim Patch 8.2.1268 Problem: Vim9: no error for using double quote comment after :func or :def. Solution: Only accept double quote when not in Vim9 script and not after :def. (closes #6483) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1269 Problem: Language and locale code spread out. Solution: Move relevant code to src/locale.c. (Yegappan Lakshmanan, closes #6509) Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/ex_cmds2.c, src/locale.c, src/main.c, src/proto.h, src/proto/ex_cmds2.pro, src/proto/locale.pro Patch 8.2.1270 Problem: Vim9: not skipping over function type declaration with only a return type. Solution: Skip over the return type. (issue #6507) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1271 Problem: Vim9: Error for Funcref function argument type. Solution: Find the actual function type if possible. (issue #6507) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1272 Problem: Vim9: type not checked if declaration also assigns value. Solution: Check the type. (issue #6507) Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1273 Problem: MS-Windows: terminal test may leave file behind. Solution: Wait a moment for process to end before deleting the file. (Taro Muraoka, closes #6513) Files: src/testdir/test_terminal.vim Patch 8.2.1274 Problem: Vim9: no error for missing white space in assignment at script level. Solution: Check for white space. (closes #6495) Files: src/eval.c, src/evalvars.c, src/testdir/test_vim9_script.vim, src/testdir/test_let.vim Patch 8.2.1275 Problem: Vim9: compiler warning for buffer size. Solution: Change the offset from 10 to 15. (Dominique Pellé, closes #6518) Files: src/vim9script.c Patch 8.2.1276 Problem: MS-Windows: system test may fail if more.exe is installed. Solution: Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517) Files: src/testdir/test_system.vim Patch 8.2.1277 Problem: Tests on Travis do not run with EXITFREE. Solution: Add EXITFREE to all builds to uncover any mistakes. Files: .travis.yml Patch 8.2.1278 Problem: Vim9: line break after "->" only allowed in :def function. Solution: Only allow line break after "->". (closes #6492) Files: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_expr.vim Patch 8.2.1279 Problem: Some tests on Travis have EXITFREE duplicated. Solution: Remove EXITFREE from shadowopt. Add "shadow" to job name. Files: .travis.yml Patch 8.2.1280 Problem: Ex command error cannot contain an argument. Solution: Add ex_errmsg() and translate earlier. Use e_trailing_arg where possible. Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/buffer.c, src/ex_eval.c, src/match.c, src/testdir/test_tabpage.vim Patch 8.2.1281 Problem: The "trailing characters" error can be hard to understand. Solution: Add the trailing characters to the message. Files: src/cmdhist.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/json.c, src/menu.c, src/quickfix.c, src/sign.c, src/userfunc.c Patch 8.2.1282 Problem: Vim9: crash when using CheckScriptFailure() in Test_vim9script_call_fail_decl(). Solution: Do not decrement the def_functions len unless the function was newly added. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1283 Problem: Vim9: error for misplaced -> lacks argument. Solution: Use the pointer before it was advanced. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1284 Problem: Vim9: skipping over type includes following white space, leading to an error for missing white space. Solution: Do not skip over white space after the type. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1285 Problem: Vim9: argument types are not checked on assignment. Solution: Check function argument types. (issue #6507) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1286 Problem: Vim9: No error when using a type on a window variable Solution: Recognize the syntax and give an error. (closes #6521) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1287 Problem: Vim9: crash when using an imported function. Solution: Add the function type to the imported entry. (closes #6522) Files: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1288 Problem: Vim9: cannot use mark in range. Solution: Use the flag that a colon was seen. (closes #6528) Files: src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.1289 Problem: Crash when using a custom completion function. Solution: Initialize all of the expand_T. (closes #6532) Files: src/cmdexpand.c Patch 8.2.1290 Problem: Vim9: cannot replace a global function. Solution: Allow for "!" on a global function. (closes #6524) Also fix that :delfunc on a :def function only made it empty. Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1291 Problem: Vim9: type of varargs items is not checked. Solution: Check the list item types. (closes #6523) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1292 Problem: AIDL filetype not recognized. Solution: Add filetype detection. (Dominique Pellé, closes #6533) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1293 Problem: Vim9: :execute mixes up () expression and function call. Solution: Do not skip white space when looking for the "(". (closes #6531) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1294 Problem: Vim9: error when using vim9script in TextYankPost. Solution: Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can be used when text is locked. (closes #6529) Files: src/ex_cmds.h, src/ex_docmd.c Patch 8.2.1295 Problem: Tests 44 and 99 are old style. Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #6536) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test44.in, src/testdir/test44.ok, src/testdir/test99.in, src/testdir/test99.ok, src/testdir/test_regexp_utf8.vim Patch 8.2.1296 Problem: Some part of using 'smartcase' was not tested. Solution: Add more tests. (Dominique Pellé, closes #6538) Files: src/testdir/test_search.vim Patch 8.2.1297 Problem: When a test fails it's often not easy to see what the call stack is. Solution: Add more entries from the call stack in the exception message. Files: runtime/doc/cmdline.txt, src/scriptfile.c, src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, src/testing.c, src/testdir/test_expand_func.vim Patch 8.2.1298 Problem: Compiler warning for unused argument in small version. Solution: Add UNUSED. Files: src/scriptfile.c Patch 8.2.1299 Problem: Compiler warning for using size_t for int and void pointer. Solution: Add type casts. Files: src/scriptfile.c Patch 8.2.1300 Problem: Vim9: optional argument type not parsed properly. Solution: Skip over the "?". (issue #6507) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1301 Problem: Vim9: varargs argument type not parsed properly. Solution: Skip over the "...". (issue #6507) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1302 Problem: Vim9: varargs arg after optional arg does not work Solution: Check for the "..." first. (issue #6507) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1303 Problem: Calling popup_setoptions() resets 'signcolumn'. Solution: Only set 'signcolumn' when creating the popup. (closes #6542) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1304 Problem: Debug backtrace isn't tested much. Solution: Add more specific tests. (Ben Jackson, closes #6540) Files: src/testdir/runtest.vim, src/testdir/test_debugger.vim Patch 8.2.1305 Problem: Some tests are still old style. Solution: Convert tests 52 and 70 to new style. (Yegappan Lakshmanan, closes #6544) Fix error in FinishTesting(). Files: src/testdir/runtest.vim, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms, src/testdir/test52.in, src/testdir/test52.ok, src/testdir/test70.in, src/testdir/test70.ok, src/testdir/test_mzscheme.vim, src/testdir/test_writefile.vim Patch 8.2.1306 Problem: Checking for first character of dict key is inconsistent. Solution: Add eval_isdictc(). (closes #6546) Files: src/eval.c, src/proto/eval.pro, src/vim9compile.c, src/testdir/test_listdict.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_let.vim Patch 8.2.1307 Problem: popup window width does not include number, fold of sign column width. Solution: Take number, fold and sign column with into account. Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_sign_2.dump Patch 8.2.1308 Problem: Vim9: accidentally using "x" causes Vim to exit. Solution: Disallow using ":x" or "xit" in Vim9 script. (closes #6399) Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/ex_docmd.c, src/ex_cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.1309 Problem: Build failure with tiny version. Solution: Add #ifdef. Files: src/ex_cmds.c, src/ex_docmd.c Patch 8.2.1310 Problem: Configure with Xcode 12 fails to check for tgetent. Solution: Declare tgetent(). (Ozaki Kiichi, closes #6558) Files: src/configure.ac, src/auto/configure Patch 8.2.1311 Problem: Test failures with legacy Vim script. Solution: Actually check for Vim9 script. Files: src/vim9script.c Patch 8.2.1312 Problem: MS-Windows: terminal test may fail if dir.exe exists. Solution: Use dir.com. (Ken Takata, closes #6557) Files: src/testdir/test_terminal3.vim Patch 8.2.1313 Problem: Vim9 script: cannot assign to environment variable. Solution: Recognize environment variable assignment. (closes #6548) Also options and registers. Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1314 Problem: Vim9: rule for comment after :function is confusing. Solution: Allow double quoted comment after :function in vim9script. (closes #6556) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1315 Problem: MS-Windows: test log contains escape sequences. Solution: Do not use t_md and t_me but ANSI escape sequences. (Ken Takata, closes #6559) Files: src/testdir/runtest.vim Patch 8.2.1316 Problem: Test 42 is still old style. Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes #6561) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/test42.in, src/testdir/test42.ok, src/testdir/test_writefile.vim Patch 8.2.1317 Problem: MS-Windows tests on AppVeyor are slow. Solution: Use GitHub Actions. (Ken Takata, closes #6569) Files: Filelist, .github/workflows/ci-windows.yaml, appveyor.yml, ci/appveyor.bat Patch 8.2.1318 Problem: No status badge for Github CI. Solution: Add a badge. Files: README.md Patch 8.2.1319 Problem: Status badge for Github CI has wrong link. Solution: Rename and use the right link Files: README.md, .github/workflows/ci-windows.yaml Patch 8.2.1320 Problem: Vim9: cannot declare some single letter variables. Solution: Do not recognize a colon for a namespace for single letter variables. (closes #6547) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1321 Problem: GitHub CI also runs on tag push. Solution: Skip CI on push. (Ken Takata, closes #6571) Files: .github/workflows/ci-windows.yaml Patch 8.2.1322 Problem: Vim9: method on double quoted string doesn't work. Solution: Recognize double quoted string. (closes #6562) Files: src/ex_docmd.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1323 Problem: Vim9: invalid operators only rejected in :def function. Solution: Also reject them at script level. (closes #6564) Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.1324 Problem: Vim9: line break after "=" does not work. Solution: Also allow for NUL after "=". (closes #6549) Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1325 Problem: Vim9: using Vim9 script for autoload not tested. Solution: Add a test. Update help. Files: runtime/doc/vim9.txt, src/testdir/test_autoload.vim, src/testdir/sautest/autoload/auto9.vim Patch 8.2.1326 Problem: Vim9: skipping over white space after list. Solution: Do not skip white space, a following [] would be misinterpreted. (closes #6552) Fix a few side effects. Files: src/list.c, src/dict.c, src/eval.c, src/userfunc.c, src/testdir/test_functions.vim, src/testdir/test_gn.vim, src/testdir/test_popupwin.vim, src/testdir/test_tabpage.vim, src/testdir/test_textprop.vim, src/testdir/test_textobjects.vim Patch 8.2.1327 Problem: Mac: configure can't find Tcl libraries. Solution: Adjust configure check. (closes #6575) Files: src/configure.ac, src/auto/configure Patch 8.2.1328 Problem: No space allowed before comma in list. Solution: Legacy Vim script allows it. (closes #6577) Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim Patch 8.2.1329 Problem: Vim9: cannot define global function inside :def function. Solution: Assign to global variable instead of local. (closes #6584) Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9.h, src/vim9execute.c, src/structs.h, src/misc2.c, src/proto/misc2.pro, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1330 Problem: Github workflow takes longer than needed. Solution: Do two test runs in parallel instead of sequentially. (Ken Takata, closes #6579) Files: .github/workflows/ci-windows.yaml Patch 8.2.1331 Problem: Vim9: :echo with two lists doesn't work. Solution: Do not skip white space before []. (closes #6552) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1332 Problem: Vim9: memory leak when using nested global function. Solution: Delete the function when deleting the instruction. Disable test that still causes a leak. Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.1333 Problem: Vim9: memory leak when using nested global function. Solution: Swap from and to when copying the lines. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1334 Problem: Github workflow timeout needs tuning Solution: Use a 10 minute timeout. Fail when timing out. (Ken Takata, closes #6590) Files: .github/workflows/ci-windows.yaml Patch 8.2.1335 Problem: CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov) Solution: Recognize "C" with CTRL modifier as CTRL-C. (issue #6565) Files: src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c, src/gui_x11.c, src/gui_photon.c Patch 8.2.1336 (after 8.2.1335) Problem: Build failure on non-Unix systems. Solution: Add #ifdef. Files: src/gui.c Patch 8.2.1337 Problem: Vim9: cannot use empty key in dict assignment. Solution: Allow empty key. (closes #6591) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1338 Problem: Vim9: assigning to script-local variable doesn't check type. Solution: Use the type. (issue #6591) Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1339 Problem: Vim9: assigning to global dict variable doesn't work. Solution: Guess variable type based in index type. (issue #6591) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1340 Problem: Some tests fail on Cirrus CI and/or with FreeBSD. Solution: Make 'backupskip' empty. Do not run tests as root. Check for directory when using viminfo. (Ozaki Kiichi, closes #6596) Files: .cirrus.yml, src/testdir/test_backup.vim, src/testdir/test_edit.vim, src/testdir/test_viminfo.vim, src/testdir/test_writefile.vim, src/viminfo.c Patch 8.2.1341 Problem: Build failures. Solution: Add missing error message. Files: src/globals.h Patch 8.2.1342 Problem: Vim9: accidentally using "x" gives a confusing error. Solution: Disallow using ":t" in Vim9 script. (issue #6399) Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1343 Problem: Vim9: cannot find global function when using g: when local function with the same name exists. Solution: Find global function when using g:. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1344 Problem: Vim9: No test for trying to redefine global function. Solution: Add a test. Files: src/testdir/test_vim9_func.vim Patch 8.2.1345 Problem: Redraw error when using visual block and scroll. Solution: Add check for w_topline. (closes #6597) Files: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_visual_block_scroll.dump Patch 8.2.1346 Problem: Small build fails. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.1347 Problem: Cannot easily get the script ID. Solution: Support expand('<SID>'). Files: runtime/doc/map.txt, src/ex_docmd.c, src/testdir/test_expand_func.vim Patch 8.2.1348 Problem: Build failure without the eval feature. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.1349 Problem: Vim9: can define a function with the name of an import. Solution: Disallow using an existing name. (closes #6585) Files: src/userfunc.c, src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim Patch 8.2.1350 Problem: Vim9: no test for error message when redefining function. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.1351 Problem: Vim9: no proper error if using namespace for nested function. Solution: Specifically check for a namespace. (closes #6582) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1352 Problem: Vim9: no error for shadowing a script-local function by a nested function. Solution: Check for script-local function. (closes #6586) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1353 Problem: Crash when drawing double-wide character in terminal window. (Masato Nishihata) Solution: Check getcell() returning NULL. (issue #6141) Files: src/libvterm/src/screen.c, src/testdir/test_terminal.vim Patch 8.2.1354 Problem: Test 59 is old style. Solution: Convert into a new style test. (Yegappan Lakshmanan, closes #6604) Files: runtime/doc/eval.txt, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test59.in, src/testdir/test59.ok, src/testdir/test_spell_utf8.vim Patch 8.2.1355 Problem: Vim9: no error using :let for options and registers. Solution: Give an error. (closes #6568) Files: src/evalvars.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1356 Problem: Vim9: cannot get the percent register. Solution: Check for readable registers instead of writable. (closes #6566) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1357 Problem: Vim9: cannot assign to / register. Solution: Adjust check for assignment. (issue #6566) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1358 Problem: Vim9: test fails with +dnd is not available. Solution: Add condition. Files: src/testdir/test_vim9_script.vim Patch 8.2.1359 Problem: Vim9: cannot assign to / register in Vim9 script. Solution: Adjust check for assignment in Vim9 script. (closes #6567) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1360 Problem: Stray error for white space after expression. Solution: Ignore trailing white space. (closes #6608) Files: src/eval.c, src/testdir/test_filter_map.vim Patch 8.2.1361 Problem: Error for white space after expression in assignment. Solution: Skip over white space. (closes #6617) Files: src/eval.c, src/testdir/test_expr.vim Patch 8.2.1362 Problem: Last entry of ":set term=xxx" overwritten by error message when 'cmdheight' is two or more. (Tony Mechelynck) Solution: Output extra line breaks. Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.1363 Problem: Test trying to run terminal when it is not supported. Solution: Check if Vim can be run in a terminal. Files: src/testdir/test_termcodes.vim Patch 8.2.1364 Problem: Invalid memory access when searching for raw string. Solution: Check for delimiter match before following quote. (closes #6578) Files: src/search.c Patch 8.2.1365 Problem: Vim9: no error for missing white space around operator. Solution: Check for white space. (closes #6618) Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1366 Problem: Test 49 is old style. Solution: Convert several tests to new style. (Yegappan Lakshmanan, closes #6629) Files: src/testdir/script_util.vim, src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1367 Problem: Vim9: no error for missing white space around operator. Solution: Check for white space around *, / and %. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1368 Problem: Vim9: no error for missing white space around operator. Solution: Check for white space around <, !=, etc. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1369 Problem: MS-Windows: autocommand test sometimes fails. Solution: Do not rely on the cat command. Files: src/testdir/test_autocmd.vim Patch 8.2.1370 Problem: MS-Windows: warning for using fstat() with stat_T. Solution: use _fstat64() if available. (Naruhiko Nishino, closes #6625) Files: src/macros.h Patch 8.2.1371 Problem: Vim9: no error for missing white space around operator. Solution: Check for white space around && and ||. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1372 Problem: Vim9: no error for missing white space around operator. Solution: Check for white space around ? and :. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1373 Problem: Vim9: no error for assigning to non-existing script var. Solution: Check that in Vim9 script the variable was defined. (closes #6630) Files: src/vim9compile.c, src/userfunc.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1374 Problem: Vim9: error for assigning empty list to script variable. Solution: Use t_unknown for empty list member. (closes #6595) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1375 Problem: Vim9: method name with digit not accepted. Solution: Use eval_isnamec() instead of eval_isnamec1(). (closes #6613) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1376 Problem: Vim9: expression mapping causes error for using :import. Solution: Add EX_LOCK_OK to :import and :export. (closes #6606) Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.1377 Problem: Triggering the ATTENTION prompt causes typeahead to be messed up. Solution: Increment tb_change_cnt. (closes #6541) Files: src/getchar.c Patch 8.2.1378 Problem: Cannot put space between function name and paren. Solution: Allow this for backwards compatibility. Files: src/eval.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1379 Problem: Curly braces expression ending in " }" does not work. Solution: Skip over white space when checking for "}". (closes #6634) Files: src/dict.c, src/testdir/test_eval_stuff.vim Patch 8.2.1380 Problem: Vim9: return type of getreg() is always a string. Solution: Use list of strings when there are three arguments. (closes #6633) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1381 Problem: MS-Windows: crash with Python 3.5 when stdin is redirected. Solution: Reconnect stdin. (Yasuhiro Matsumoto, Ken Takata, closes #6641) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_python3.c Patch 8.2.1382 Problem: Vim9: using :import in filetype plugin gives an error. Solution: Allow commands with the EX_LOCK_OK flag. (closes #6636) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1383 Problem: Test 49 is old style. Solution: Convert test cases to new style. (Yegappan Lakshmanan, closes #6638) Files: src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1384 Problem: No ATTENTION prompt for :vimgrep first match file. Solution: When there is an existing swap file do not keep the dummy buffer. (closes #6649) Files: src/quickfix.c, src/testdir/runtest.vim, src/testdir/test_quickfix.vim Patch 8.2.1385 Problem: No testing on ARM. Solution: Add a test on Travis for ARM. (Ozaki Kiichi, closes #6615) Files: .travis.yml Patch 8.2.1386 Problem: Backslash not removed after space in option with space in 'isfname'. Solution: Do remove backslash before space, also when it is in 'isfname'. (Yasuhiro Matsumoto, closes #6651) Files: src/option.c, src/testdir/test_options.vim Patch 8.2.1387 Problem: Vim9: cannot assign to single letter variable with type. Solution: Exclude the colon from the variable name. (closes #6647) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1388 Problem: Vim9: += only works for numbers. Solution: Use += as concatenate for a list. (closes #6646) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1389 Problem: File missing from the distribution. Solution: Add script_util.vim to the list of distributes files. Files: Filelist Patch 8.2.1390 Problem: Vim9: type error after storing an option value. Solution: Drop the type after a STOREOPT instruction. (closes #6632) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1391 Problem: Vim9: no error for shadowing a script function. Solution: Check for already defined items. (closes #6652) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1392 Problem: Vim9: error line number incorrect after skipping over comment lines. Solution: Insert empty lines for skipped lines. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1393 Problem: Insufficient testing for script debugging. Solution: Add more tests. (Ben Jackson) Files: src/testdir/test_debugger.vim Patch 8.2.1394 Problem: Vim9: compiling a function interferes with command modifiers. Solution: Save and restore command modifiers. (closes #6658) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1395 Problem: Vim9: no error if declaring a funcref with a lower case letter. Solution: Check the name after the type is inferred. Fix confusing name. Files: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1396 Problem: Vim9: no error for unexpectedly returning a value. Solution: Only set the return type for lambda's. Make using function type in a function reference work. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1397 Problem: Vim9: return type of maparg() not adjusted for fourth argument. Solution: Check if fourth argument is present. (closes #6645) Files: src/evalfunc.c, src/testdir/test_maparg.vim Patch 8.2.1398 Problem: Autoload script sourced twice if sourced directly. Solution: Do not source an autoload script again. (issue #6644) Files: src/scriptfile.c, src/testdir/sautest/autoload/sourced.vim Patch 8.2.1399 Problem: Vim9: may find imported item in wrong script. Solution: When looking up script-local function use the embedded script ID. (issue #6644) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1400 Problem: Vim9: test does not delete written files. Solution: Correct file names. Files: src/testdir/test_vim9_script.vim Patch 8.2.1401 Problem: Cannot jump to the last used tabpage. Solution: Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes #6661, neovim #11626) Files: runtime/doc/eval.txt, runtime/doc/index.txt, runtime/doc/tabpage.txt, src/evalwindow.c, src/globals.h, src/normal.c, src/proto/window.pro, src/testdir/test_tabpage.vim, src/window.c Patch 8.2.1402 Problem: s390x tests always fail. Solution: Temporarily disable s390x tests. Files: .travis.yml Patch 8.2.1403 Problem: Vim9: Vim highlighting fails in cmdline window if it uses Vim9 commands. Solution: Allow using :vim9script, :import and :export while in the cmdline window. (closes #6656) Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.1404 Problem: Vim9: script test fails in the GUI. Solution: Use another key to map. Improve cleanup. Files: src/testdir/test_vim9_script.vim Patch 8.2.1405 Problem: Vim9: vim9compile.c is getting too big. Solution: Split off type code to vim9type.c. Files: Filelist, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9type.c, src/proto/vim9type.pro, src/proto.h, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile Patch 8.2.1406 Problem: Popupwindow lacks scrollbar if no "maxheight" is used. Solution: Compute the max height depending on the position. (closes #6664) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_toohigh_1.dump, src/testdir/dumps/Test_popupwin_toohigh_2.dump Patch 8.2.1407 Problem: Vim9: type of list and dict only depends on first item. Solution: Use all items to decide about the type. Files: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_expr.vim, runtime/doc/vim9.txt Patch 8.2.1408 Problem: Vim9: type casting not supported. Solution: Introduce type casting. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1409 Problem: Npmrc and php.ini filetypes not recognized. Solution: Add filetype detection. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1410 Problem: Adding compiler plugin requires test change. Solution: Include compiler plugin and adjust test. Files: src/testdir/test_compiler.vim, runtime/compiler/xo.vim Patch 8.2.1411 Problem: when splitting a window localdir is copied but prevdir is not. Solution: Also copy prevdir. (closes #6667) Files: src/window.c, src/testdir/test_cd.vim Patch 8.2.1412 Problem: Vim: not operator does not result in boolean. Solution: Make type depend on operator. (issue 6678) Fix using "false" and "true" in Vim9 script. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1413 (after 8.2.1401) Problem: Previous tab page not usable from an Ex command. Solution: Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan, closes #6677) Files: runtime/doc/tabpage.txt, src/ex_docmd.c, src/window.c, src/testdir/test_tabpage.vim Patch 8.2.1414 Problem: Popupwindow missing last couple of lines when cursor is in the first line. Solution: Compute the max height also when top aligned. (closes #6664) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_toohigh_3.dump, src/testdir/dumps/Test_popupwin_nospace.dump Patch 8.2.1415 Problem: Closing a popup window with CTRL-C interrupts 'statusline' if it calls a function. Solution: Reset got_int while redrawing. (closes #6675) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_ctrl_c.dump Patch 8.2.1416 Problem: Vim9: boolean evaluation does not work as intended. Solution: Use tv2bool() in Vim9 script. (closes #6681) Files: src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.1417 Problem: Test 49 is old style. Solution: Convert more parts to new style test. (Yegappan Lakshmanan, closes #6682) Files: src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1418 Problem: Vim9: invalid error for missing white space after function. Solution: Do not skip over white space. (closes #6679) Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1419 Problem: Vim9: not operator applied too early. Solution: Implement the "numeric_only" argument. (closes #6680) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1420 Problem: Test 49 is old style. Solution: Convert remaining parts to new style. Remove obsolete items. (Yegappan Lakshmanan, closes #6683) Files: Filelist, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/Makefile, src/testdir/README.txt, src/testdir/test49.in, src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_quickfix.vim, src/testdir/test_vimscript.vim Patch 8.2.1421 Problem: Vim9: handling "+" and "-" before number differs from Vim script. Solution: Use the same sequence of commands. Files: src/vim9compile.c Patch 8.2.1422 Problem: The Mac GUI implementation is outdated and probably doesn't even work. Solution: Remove the Mac GUI code. The MacVim project provides the supported Vim GUI version. Files: Filelist, src/gui_mac.c, src/proto/gui_mac.pro, src/proto.h, src/Makefile, src/configure.ac, src/auto/configure, src/evalfunc.c, src/fileio.c, src/gui.c, src/if_mzsch.c, src/main.c, src/misc2.c, src/mouse.c, src/os_mac_conv.c, src/os_unix.c, src/feature.h, src/globals.h, src/gui.h, src/option.h, src/optiondefs.h, src/os_mac.h, src/structs.h, src/vim.h, src/INSTALLmac.txt Patch 8.2.1423 Problem: Vim9: find global function when looking for script-local. Solution: Don't strip prefix if name starts with "s:". (closes #6688) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1424 (after 8.2.1422) Problem: Mac build fails. Solution: Adjust configure to not fall back to Athena. Adjust some other files. Files: src/configure.ac, src/auto/configure, src/os_macosx.m, src/version.c Patch 8.2.1425 Problem: Vim9: cannot use call() without :call. Solution: Do not skip over "call(". (closes #6689) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1426 Problem: Vim9: cannot call autoload function in :def function. Solution: Load the autoload script. (closes #6690) Files: src/vim9execute.c, src/vim9compile.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1427 Problem: Vim9: cannot use a range with marks in :def function. Solution: Parse range after colon. (closes #6686) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1428 Problem: Vim9: :def function does not abort on nested function error. Solution: Check whether an error message was given. (closes #6691) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1429 Problem: Vim9: no error for missing white after : in dict. Solution: Check for white space. (closes #6671) Also check that there is no white before the :. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1430 Problem: Vim9: error for missing comma instead of extra white space. Solution: Check if comma can be found after white space. (closes #6668) Also check for extra white space in literal dict. (closes #6670) Files: src/list.c, src/dict.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1431 Problem: Vim9: no error for white space before comma in dict. Solution: Check for extra white space. (closes #6674) Files: src/vim9compile.c, src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1432 Problem: Various inconsistencies in test files. Solution: Add modelines where they were missing. Use Check commands instead of silently skipping over tests. Adjust indents and comments. (Ken Takata, closes #6695) Files: src/testdir/test_arglist.vim, src/testdir/test_assert.vim, src/testdir/test_autochdir.vim, src/testdir/test_autocmd.vim, src/testdir/test_autoload.vim, src/testdir/test_balloon.vim, src/testdir/test_balloon_gui.vim, src/testdir/test_behave.vim, src/testdir/test_blockedit.vim, src/testdir/test_breakindent.vim, src/testdir/test_bufline.vim, src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim, src/testdir/test_changedtick.vim, src/testdir/test_changelist.vim, src/testdir/test_channel.vim, src/testdir/test_checkpath.vim, src/testdir/test_cindent.vim, src/testdir/test_cjk_linebreak.vim, src/testdir/test_clientserver.vim, src/testdir/test_close_count.vim, src/testdir/test_cmdline.vim, src/testdir/test_command_count.vim, src/testdir/test_comparators.vim, src/testdir/test_compiler.vim, src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim, src/testdir/test_curswant.vim, src/testdir/test_debugger.vim, src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, src/testdir/test_digraph.vim, src/testdir/test_display.vim, src/testdir/test_edit.vim, src/testdir/test_environ.vim, src/testdir/test_erasebackword.vim, src/testdir/test_escaped_glob.vim, src/testdir/test_ex_equal.vim, src/testdir/test_ex_undo.vim, src/testdir/test_ex_z.vim, src/testdir/test_exec_while_if.vim, src/testdir/test_exists.vim, src/testdir/test_exists_autocmd.vim, src/testdir/test_exit.vim, src/testdir/test_expand_dllpath.vim, src/testdir/test_expr_utf8.vim, src/testdir/test_feedkeys.vim, src/testdir/test_file_size.vim, src/testdir/test_fileformat.vim, src/testdir/test_filter_cmd.vim, src/testdir/test_find_complete.vim, src/testdir/test_findfile.vim, src/testdir/test_fixeol.vim, src/testdir/test_flatten.vim, src/testdir/test_fnameescape.vim, src/testdir/test_fold.vim, src/testdir/test_functions.vim, src/testdir/test_ga.vim, src/testdir/test_getcwd.vim, src/testdir/test_getvar.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_global.vim, src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, src/testdir/test_highlight.vim, src/testdir/test_hlsearch.vim, src/testdir/test_iminsert.vim, src/testdir/test_increment_dbcs.vim, src/testdir/test_ins_complete.vim, src/testdir/test_interrupt.vim, src/testdir/test_job_fails.vim, src/testdir/test_join.vim, src/testdir/test_json.vim, src/testdir/test_jumplist.vim, src/testdir/test_jumps.vim, src/testdir/test_lambda.vim, src/testdir/test_langmap.vim, src/testdir/test_largefile.vim, src/testdir/test_lineending.vim, src/testdir/test_listchars.vim, src/testdir/test_listener.vim, src/testdir/test_listlbr.vim, src/testdir/test_listlbr_utf8.vim, src/testdir/test_makeencoding.vim, src/testdir/test_man.vim, src/testdir/test_mapping.vim, src/testdir/test_marks.vim, src/testdir/test_matchadd_conceal.vim, src/testdir/test_matchadd_conceal_utf8.vim, src/testdir/test_memory_usage.vim, src/testdir/test_menu.vim, src/testdir/test_messages.vim, src/testdir/test_mksession.vim, src/testdir/test_modeline.vim, src/testdir/test_nested_function.vim, src/testdir/test_number.vim, src/testdir/test_options.vim, src/testdir/test_packadd.vim, src/testdir/test_partial.vim, src/testdir/test_paste.vim, src/testdir/test_plus_arg_edit.vim, src/testdir/test_preview.vim, src/testdir/test_profile.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_quickfix.vim, src/testdir/test_quotestar.vim, src/testdir/test_random.vim, src/testdir/test_recover.vim, src/testdir/test_regex_char_classes.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_registers.vim, src/testdir/test_rename.vim, src/testdir/test_retab.vim, src/testdir/test_scriptnames.vim, src/testdir/test_scroll_opt.vim, src/testdir/test_scrollbind.vim, src/testdir/test_search_stat.vim, src/testdir/test_searchpos.vim, src/testdir/test_set.vim, src/testdir/test_sha256.vim, src/testdir/test_shift.vim, src/testdir/test_shortpathname.vim, src/testdir/test_signs.vim, src/testdir/test_sort.vim, src/testdir/test_sound.vim, src/testdir/test_source_utf8.vim, src/testdir/test_spellfile.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_stat.vim, src/testdir/test_suspend.vim, src/testdir/test_swap.vim, src/testdir/test_syntax.vim, src/testdir/test_tab.vim, src/testdir/test_tabline.vim, src/testdir/test_tagcase.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_termcodes.vim, src/testdir/test_termencoding.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/test_terminal_fail.vim, src/testdir/test_true_false.vim, src/testdir/test_utf8_comparisons.vim, src/testdir/test_vartabs.vim, src/testdir/test_version.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_windows_home.vim, src/testdir/test_wnext.vim, src/testdir/test_wordcount.vim, src/testdir/test_writefile.vim, src/testdir/test_xxd.vim Patch 8.2.1433 Problem: Vim9: cannot mingle comments in multi-line lambda. Solution: Skip over NULL lines. (closes #6694) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1434 Problem: Vim9: crash when lambda uses outer function argument. Solution: Set the flag that the outer context is used. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1435 Problem: Vim9: always converting to string for ".." leads to mistakes. Solution: Only automatically convert simple types. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1436 Problem: Function implementing :substitute has unexpected name. Solution: Rename from do_sub() to ex_substitute(). Files: src/ex_cmds.c, src/proto/ex_cmds.pro, src/ex_docmd.c, src/ex_cmds.h Patch 8.2.1437 Problem: Vim9: 'statusline' is evaluated using Vim9 script syntax. Solution: Always use legacy script syntax. Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1438 Problem: Missing tests for interrupting script execution from debugger. Solution: Add tests. (Yegappan Lakshmanan, closes #6697) Files: src/testdir/test_debugger.vim Patch 8.2.1439 Problem: Tiny and small builds have no test coverage. Solution: Restore tests that do not depend on the +eval feature. (Ken Takata, closes #6696) Files: .travis.yml, Filelist, Makefile, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/Makefile, src/testdir/runtest.vim, src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in, src/testdir/test20.ok, src/testdir/test21.in, src/testdir/test21.ok, src/testdir/test22.in, src/testdir/test22.ok, src/testdir/test23.in, src/testdir/test23.ok, src/testdir/test24.in, src/testdir/test24.ok, src/testdir/test25.in, src/testdir/test25.ok, src/testdir/test26.in, src/testdir/test26.ok, src/testdir/test27.in, src/testdir/test27.ok, src/testdir/test_options.vim Patch 8.2.1440 Problem: Debugger code insufficiently tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6700) Files: src/testdir/test_debugger.vim, src/testdir/test_vimscript.vim Patch 8.2.1441 Problem: Running tests in tiny version gives error for summarize.vim. Solution: Set 'cpoptions' to allow for line continuation. Restore redirecting test output to /dev/null. Files: src/testdir/summarize.vim, src/testdir/Makefile Patch 8.2.1442 Problem: Outdated references to the Mac Carbon GUI. Solution: Remove or update references. (Yee Cheng Chin, closes #6703) Files: READMEdir/README_extra.txt, src/Makefile, src/configure.ac, src/auto/configure, src/gui_haiku.cc, src/os_macosx.m, src/testdir/test_iminsert.vim, src/vim.h Patch 8.2.1443 Problem: Vim9: crash when interrupting a nested :def function. Solution: Push a dummy return value onto the stack. (closes #6701) Files: src/vim9execute.c Patch 8.2.1444 Problem: Error messages are spread out and names can be confusing. Solution: Start moving error messages to a separate file and use clear names. Files: Filelist, src/vim.h, src/globals.h, src/errors.h, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/dict.c, src/evalvars.c, src/ex_docmd.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim9type.c Patch 8.2.1445 Problem: Vim9: function expanded name is cleared when sourcing a script again. Solution: Only clear the expanded name when deleting the function. (closes #6707) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1446 Problem: Vim9: line number in error message is not correct. Solution: Set SOURCING_LNUM before calling emsg(). (closes #6708) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1447 Problem: Vim9: return type of keys() is list<any>. Solution: Should be list<string>. (closes #6711) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1448 Problem: Test 77a for VMS depends on small.vim which does not exist. Solution: Use the 'silent while 0" trick. (issue #6696) Files: src/testdir/test77a.in Patch 8.2.1449 Problem: Some test makefiles delete files that are not generated. Solution: Remove the deletion commands. Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms Patch 8.2.1450 Problem: Vim9: no check that script-local items don't become global. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.1451 Problem: Vim9: list type at script level only uses first item. Solution: Use all members, like in a compiled function. (closes #6712) Also for dictionary. Files: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1452 Problem: Vim9: dead code in to_name_end(). Solution: Remove check for lambda and dict, it won't be used. Files: src/vim9compile.c Patch 8.2.1453 Problem: Vim9: failure to compile lambda not tested. Solution: Add a test case. Files: src/testdir/test_vim9_expr.vim Patch 8.2.1454 Problem: Vim9: failure invoking lambda with wrong arguments. Solution: Handle invalid arguments. Add a test. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1455 Problem: Vim9: crash when using typecast before constant. Solution: Generate constant before checking type. Add tets. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1456 Problem: MS-Windows: test files are not deleted. Solution: use "del" instead of $(DEL). Files: src/testdir/Make_dos.mak Patch 8.2.1457 Problem: Vim9: the output of :disassemble cannot be interrupted. Solution: Check got_int. (closes #6715) Files: src/vim9execute.c Patch 8.2.1458 Problem: .gawk files not recognized. Solution: Recognize .gawk files. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1459 Problem: Vim9: declaring a script variable at the script level does not infer the type. Solution: Get the type from the value. (closes #6716) Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1460 Problem: Error messages are spread out. Solution: Move more messages into errors.h. Files: src/errors.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim9type.c, src/scriptfile.c, src/ex_cmds.c, src/ex_docmd.c, src/match.c, src/eval.c, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1461 Problem: Vim9: string indexes are counted in bytes. Solution: Use character indexes. (closes #6574) Files: runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1462 Problem: Vim9: string slice not supported yet. Solution: Add support for string slicing. Files: src/errors.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1463 Problem: Vim9: list slice not supported yet. Solution: Add support for list slicing. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/list.c, src/proto/list.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1464 Problem: Vim9: build warning for unused variable. Solution: Delete the variable declaration. Files: src/vim9execute.c Patch 8.2.1465 Problem: Vim9: subscript not handled properly. Solution: Adjust error message. Remove dead code. Disallow string to number conversion in scripts. Files: src/errors.h, src/vim9compile.c, src/vim9execute.c, src/eval.c, src/typval.c, src/list.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1466 Problem: Vim9: cannot index or slice a variable with type "any". Solution: Add runtime index and slice. Files: src/eval.c, src/proto/eval.pro, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/errors.h, src/list.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.1467 Problem: Vim9: :echomsg doesn't like a dict argument. Solution: Convert arguments like in legacy script. (closes #6717) Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1468 Problem: Vim9: invalid error for missing white space. Solution: Don't skip over white space after index. (closes #6718) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1469 Problem: Vim9: cannot assign string to string option. Solution: Change checks for option value. (closes #6720) Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1470 Problem: Errors in spell file not tested. Solution: Add test for spell file errors. (Yegappan Lakshmanan, closes #6721) Files: src/testdir/test_spellfile.vim Patch 8.2.1471 Problem: :const only locks the variable, not the value. Solution: Lock the value as ":lockvar 1 var" would do. (closes #6719) Files: src/evalvars.c, src/testdir/test_const.vim Patch 8.2.1472 Problem: ":argdel" does not work like ":.argdel" as documented. (Alexey Demin) Solution: Make ":argdel" work like ":.argdel". (closes #6727) Also fix giving the error "0 more files to edit". Files: src/arglist.c, src/ex_docmd.c, src/testdir/test_arglist.vim Patch 8.2.1473 Problem: Items in a list given to :const can still be modified. Solution: Work like ":lockvar! name" but don't lock referenced items. Make locking a blob work. Files: runtime/doc/eval.txt, src/evalvars.c, src/eval.c, src/testdir/test_const.vim Patch 8.2.1474 Problem: /usr/lib/udef/rules.d not recognized as udevrules. Solution: Adjust match pattern. (Haochen Tong, closes 36722) Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.1475 Problem: Vim9: can't use v:true for option flags. Solution: Add tv_get_bool_chk(). (closes #6725) Files: src/typval.c, src/proto/typval.pro, src/channel.c Patch 8.2.1476 (after 8.2.1474) Problem: Filetype test fails on MS-Windows. Solution: Remove "^" from pattern. Files: runtime/autoload/dist/ft.vim Patch 8.2.1477 Problem: Vim9: error when using bufnr('%'). Solution: Don't give an error for using a string argument. (closes #6723) Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1478 Problem: Vim9: cannot use "true" for some popup options. Solution: Add dict_get_bool(). (closes #6725) Files: src/dict.c, src/proto/dict.pro, src/popupwin.c Patch 8.2.1479 Problem: Vim9: error for list index uses wrong line number. Solution: Set source line number. (closes #6724) Add a way to assert the line number of the error with assert_fails(). Files: runtime/doc/testing.txt, src/vim9execute.c, src/testing.c, src/evalfunc.c, src/message.c, src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1480 Problem: Vim9: skip expression in search() gives error. Solution: use tv_get_bool() eval_expr_to_bool(). (closes #6729) Files: src/eval.c, src/typval.c, src/proto/typval.pro, src/testdir/test_vim9_func.vim Patch 8.2.1481 Problem: Vim9: line number reported with error may be wrong. Solution: Check line number in tests. Files: src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim, src/vim9execute.c Patch 8.2.1482 Problem: Vim9: crash when using a nested lambda. Solution: Do not clear the growarray when not evaluating. Correct pointer when getting the next line. (closes #6731) Files: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1483 Problem: Vim9: error for using special as number when returning "false" from a popup filter. Solution: Use tv_get_bool(). (closes #6733) Files: src/popupwin.c Patch 8.2.1484 Problem: Flaky failure in assert_fails(). Solution: Only used fourth argument if there is a third argument. Files: src/testing.c Patch 8.2.1485 Problem: Vim9: readdirex() expression doesn't accept bool. Solution: Accept both -1 and bool. (closes #6737) Files: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1486 Problem: Vim9: readdir() expression doesn't accept bool. Solution: Merge with code for readdirex(). (closes #6737) Files: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1487 Problem: Travis: installing snd-dummy is not always useful. Solution: Only install snd-dummy on amd64. (Ozaki Kiichi, closes #6738) Files: .travis.yml, ci/load-snd-dummy.sh Patch 8.2.1488 Problem: Text does not scroll when inserting above first line. Solution: Adjust off-by-one error. (Ken Takata, closes #6739) Files: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_scroll_at_topline.dump Patch 8.2.1489 Problem: Vim9: error when setting an option with setbufvar(). Solution: Do not get a number from a string value. (closes #6740) Files: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.1490 Problem: Vim9: using /= with float and number doesn't work. Solution: Better support assignment with operator. (closes #6742) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1491 Problem: Vim9: crash when compiling heredoc lines start with comment. Solution: Skip over NULL pointers. Do not remove comment and empty lines when fetching function lines. (closes #6743) Files: src/vim9compile.c, src/scriptfile.c, src/proto/scriptfile.pro, src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_cmds.h, src/autocmd.c, src/proto/autocmd.pro, src/ex_getln.c, src/proto/ex_getln.pro, src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1492 Problem: Build failures. Solution: Move typedef out of #ifdef. Adjust argument types. Discover America. Files: src/structs.h, src/ex_docmd.c Patch 8.2.1493 Problem: Not enough test coverage for the spell file handling. Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6728) Files: src/spellfile.c, src/testdir/test_spellfile.vim Patch 8.2.1494 Problem: Missing change to calling eval_getline(). Solution: Change last argument. Files: src/eval.c Patch 8.2.1495 Problem: "make clean" may delete too many files. Solution: Do not delete $APPDIR. (closes #6751) Files: src/Makefile Patch 8.2.1496 Problem: Vim9: cannot use " #" in a mapping. Solution: Do not remove a comment with the EX_NOTRLCOM flag. (closes #6746) Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1497 Problem: CursorHold test is flaky. (Jakub Kądziołka) Solution: Use WaitForAssert() (closes #6754) Files: src/testdir/test_autocmd.vim Patch 8.2.1498 Problem: On slow systems tests can be flaky. Solution: Use TermWait() instead of term-wait(). (Yegappan Lakshmanan, closes #6756) Files: src/testdir/test_digraph.vim, src/testdir/test_display.vim, src/testdir/test_popupwin.vim, src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim, src/testdir/test_writefile.vim Patch 8.2.1499 Problem: Vim9: error when using "$" with col(). Solution: Reorder getting the column value. (closes #6744) Files: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1500 Problem: Vim9: error when using address without a command. Solution: Execute the range itself. (closes #6747) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1501 Problem: Vim9: concatenating to constant reverses order. Solution: Generate constant before option, register and environment variable. (closes #6757) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1502 Problem: Vim9: can use += with a :let command at script level. Solution: Give an error. Files: src/evalvars.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1503 Problem: Vim9: error for an autocmd defined in a :def function in legacy Vim script. Solution: Don't check the variable type. (closes #6758) Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.1504 Problem: Vim9: white space checks are only done for a :def function. Solution: Also do checks at the script level. Adjust the name of a few error messages. Files: src/userfunc.c, src/errors.h, src/dict.c, src/list.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.1505 Problem: Not all file read and writecode is tested. Solution: Add a few tests. (Dominique Pellé, closes #6764) Files: src/testdir/test_eval_stuff.vim, src/testdir/test_fnamemodify.vim, src/testdir/test_functions.vim Patch 8.2.1506 Problem: Vim9: no error when using a number other than 0 or 1 as bool. Solution: Check the number is 0 or 1. Files: src/errors.h, src/typval.c, src/testdir/test_vim9_func.vim Patch 8.2.1507 Problem: Using malloc() directly. Solution: Use ALLOC_ONE(). Remove superfluous typecast. (Hussam al-Homsi, closes #6768) Files: src/eval.c, src/memline.c, src/vimrun.c Patch 8.2.1508 Problem: Not all debugger commands covered by tests. Solution: Add tests for going up/down in the stack. (Ben Jackson, closes #6765) Files: src/testdir/test_debugger.vim Patch 8.2.1509 Problem: Vertical separator is cleared when dragging a popup window using a multi-byte character for the border. Solution: Only clear the character before the window if it is using a multi-byte character. (closes #6766) Files: src/screen.c Patch 8.2.1510 Problem: Using "var" in a :def function may refer to a legacy Vim script variable. Solution: Require using "s:" to refer to a legacy Vim script variable. (closes #6771) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1511 Problem: Putting a string in Visual block mode ignores multi-byte characters. Solution: Adjust the column for Visual block mode. (closes #6767) Files: src/register.c, src/testdir/test_visual.vim Patch 8.2.1512 Problem: Failure after ternary expression fails. Solution: Restore eval_flags. (Yasuhiro Matsumoto, closes #6776) Files: src/eval.c, src/testdir/test_vimscript.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1513 Problem: Cannot interrupt shell used for filename expansion. (Dominique Pellé) Solution: Do set tmode in mch_delay(). (closes #6770) Files: src/vim.h, src/os_unix.c, src/proto/os_unix.pro, src/term.c, src/channel.c, src/if_cscope.c, src/os_amiga.c, src/ui.c, src/proto/os_amiga.pro, src/os_win32.c, src/proto/os_win32.pro Patch 8.2.1514 Problem: Multibyte vertical separator is cleared when dragging a popup window using a multi-byte character for the border. Solution: Only clear the character before the window if it is double width. (closes #6766) Files: src/screen.c Patch 8.2.1515 Problem: Vim9: can create s:var in legacy script but cannot unlet. Solution: Allow :unlet for legacy script var. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1516 Problem: Vim9: error for :exe has wrong line number. Solution: Set line number before calling do_cmdline_cmd(). (closes #6774) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1517 Problem: Cannot easily get the character under the cursor. Solution: Add the {chars} argument to strpart(). Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.1518 Problem: Vim9: cannot assign to local option. Solution: Skip over "&l:" and "&g:". (closes #6749) Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1519 Problem: Vim9: Ex command default range is not set. Solution: When range is not given use default. (closes #6779) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1520 Problem: Vim9: CTRL-] used in :def function does not work. Solution: Omit count or prepend colon. (closes #6769) Files: src/normal.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1521 Problem: Reading past end of buffer when reading spellfile. (Yegappan Lakshmanan) Solution: Store the byte length and check for it. Files: src/spellfile.c, src/spell.h Patch 8.2.1522 Problem: Not enough test coverage for the spell file handling. Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6763) Files: src/testdir/test_spellfile.vim Patch 8.2.1523 Problem: Still not enough test coverage for the spell file handling. Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6790) Files: src/testdir/test_spellfile.vim Patch 8.2.1524 Problem: No longer get an error for string concatenation with float. (Tsuyoshi Cho) Solution: Only convert float for Vim9 script. (closes #6787) Files: src/eval.c, src/testdir/test_eval_stuff.vim Patch 8.2.1525 Problem: Messages from tests were not always displayed. Solution: Always show messages, the timing is always useful. (Ken Takata, closes #6792) Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile Patch 8.2.1526 Problem: Line in testdir Makefile got commented out. (Christian Brabandt) Solution: Revert. Files: src/testdir/Makefile Patch 8.2.1527 Problem: Vim9: cannot use a function name as a function reference at script level. Solution: Check if a name is a function name. (closes #6789) Files: src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1528 Problem: Vim9: :endif not found after "if false". Solution: When skipping still check for a following command. (closes #6797) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1529 Problem: Vim9: :elseif may be compiled when not needed. Solution: Do evaluate the :elseif expression. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1530 Problem: Vim9: test fails on MS-Windows. Solution: Skip Ex command inside "if false". Files: src/vim9compile.c Patch 8.2.1531 Problem: Vim9: test still fails on MS-Windows. Solution: When skipping expect function to be NULL. Files: src/vim9compile.c Patch 8.2.1532 Problem: Compiler warning for conversion of size_t to long. Solution: Add type cast. Files: src/eval.c Patch 8.2.1533 Problem: Vim9: error when passing getreginfo() result to setreg(). Solution: Use dict_get_bool() for "isunnamed". (closes #6784) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1534 Problem: Vim9: type error for argument type is not at call position. Solution: Set the context and stack after checking the arguments. (issue #6785) Files: src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1535 Problem: It is not possible to specify cell widths of characters. Solution: Add setcellwidths(). Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro, src/errors.h, src/testdir/test_utf8.vim Patch 8.2.1536 Problem: Cannot get the class of a character; emoji widths are wrong in some environments. Solution: Add charclass(). Update some emoji widths. Add script to check emoji widths. Files: Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro, src/testdir/emoji_list.vim, src/testdir/test_functions.vim Patch 8.2.1537 Problem: Memory access error when using setcellwidths(). Solution: Use array and pointers correctly. Files: src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim Patch 8.2.1538 Problem: Python: iteration over vim objects fails to keep reference. Solution: Keep a reference for the object. (Paul Ollis, closes #6803, closes #6806) Files: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.1539 Problem: Using invalid script ID causes a crash. Solution: Check the script ID to be valid. (closes #6804) Files: src/globals.h, src/evalvars.c, src/profiler.c, src/scriptfile.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1540 Problem: The user cannot try out emoji character widths. Solution: Move the emoji script to the runtime/tools directory. Files: Filelist, src/testdir/emoji_list.vim, runtime/tools/emoji_list.vim Patch 8.2.1541 Problem: Vim9: cannot find function reference for s:Func. Solution: Recognize <SNR> prefix. (closes #6805) Files: src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1542 Problem: Vim9: test with invalid SID does not work in the GUI. Solution: Skip the test in the GUI. Files: src/testdir/test_vim9_script.vim Patch 8.2.1543 Problem: Vim9: test with invalid SID is skipped in the GUI. Solution: Read the CTRL-C that feedkeys() put in typeahead. Files: src/testdir/test_vim9_script.vim Patch 8.2.1544 Problem: Cannot translate messages in a Vim script. Solution: Add gettext(). Try it out for a few messages in the options window. Files: Filelist, src/po/Makefile, src/po/README.txt, runtime/optwin.vim, src/evalfunc.c, src/po/tojavascript.vim, src/po/fixfilenames.vim, runtime/doc/eval.txt, runtime/doc/usr_41.txt Patch 8.2.1545 Problem: ch_logfile() is unclear about closing when forking. Solution: Adjust the log messages. Files: src/channel.c, src/os_unix.c Patch 8.2.1546 Problem: Build rule for Vim.app is unused. Solution: Delete the related build rules. Files: src/Makefile Patch 8.2.1547 Problem: Various comment problems. Solution: Update comments. Files: src/arglist.c, src/map.c, src/mbyte.c, src/tag.c, src/undo.c, src/testdir/README.txt, src/testdir/test_put.vim, src/libvterm/README Patch 8.2.1548 Problem: Cannot move position of "%%" in message translations. (Emir Sarı) Solution: Improve the check script. Files: src/po/check.vim Patch 8.2.1549 Problem: The "r" command fails for keys with modifiers if 'esckeys' is off and modifyOtherKeys is used. (Lauri Tirkkonen) Solution: Temporarily disable bracketed paste and modifyOtherKeys if 'esckeys' is off. (closes #6809) Files: src/normal.c Patch 8.2.1550 Problem: Vim9: bufname('%') gives an error. Solution: Only give an error for wrong argument type. (closes #6807) Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1551 Problem: Vim9: error for argument type does not mention the number. Solution: Pass the argument number to where the error is given. Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1552 Problem: Warnings from asan with clang-11. (James McCoy) Solution: Avoid using a NULL pointer. (issue #6811) Files: src/fold.c Patch 8.2.1553 (after 8.2.1552) Problem: Crash in edit test. Solution: Avoid using invalid pointer. Files: src/fold.c Patch 8.2.1554 Problem: Crash in normal test. Solution: Skip adjusting marks if there are no folds. Files: src/fold.c Patch 8.2.1555 Problem: Not all tests are executed on Github Actions. Solution: Copy "src" to "src2" earlier. Recognize "src2" in a couple more places. Add two tests to the list of flaky tests. (Ken Takata, closes #6798) Files: .github/workflows/ci-windows.yaml, src/testdir/runtest.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1556 Problem: Cursorline highlighting always overrules sign highlighting. Solution: Combine the highlighting, use the priority to decide how. (closes #6812) Files: runtime/doc/sign.txt, src/structs.h, src/drawline.c, runtime/pack/dist/opt/termdebug/plugin/termdebug.vim, src/testdir/test_signs.vim, src/testdir/dumps/Test_sign_cursor_5.dump, src/testdir/dumps/Test_sign_cursor_6.dump Patch 8.2.1557 Problem: Crash in :vimgrep when started as "vim -n". (Raul Segura) Solution: Check mfp pointer. (Yegappan Lakshmanan, closes #6827) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1558 Problem: Signs test fails. Solution: Add missing change to sign.c. Files: src/sign.c Patch 8.2.1559 Problem: s390x tests work again. Solution: re-enable s390x tests. (James McCoy, closes #6829) Files: .travis.yml Patch 8.2.1560 Problem: Using NULL pointers in some code. (James McCoy) Solution: Avoid adding to a NULL pointer. Use byte as unsigned. Files: src/fold.c, src/eval.c, src/spellsuggest.c, src/spellfile.c, src/vim9compile.c Patch 8.2.1561 Problem: Using NULL pointers in fold code. Solution: Avoid using a NULL pointer. (Dominique Pellé, closes #6831, closes #6831) Files: src/fold.c Patch 8.2.1562 Problem: Vim9: error when using "%" where a buffer is expected. Solution: Add tv_get_buf_from_arg(). (closes #6814) Files: src/typval.c, src/proto/typval.pro, src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1563 Problem: Vim9: error when using '%" with setbufvar() or getbufvar(). Solution: Use tv_get_buf_from_arg(). (closes #6816) Files: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.1564 Problem: A few remaining errors from ubsan. Solution: Avoid the warnings. (Dominique Pellé, closes #6837) Files: src/spellfile.c, src/spellsuggest.c, src/viminfo.c Patch 8.2.1565 Problem: Spellfile test sometimes fails. Solution: Check running into the end of the file. Files: src/spellfile.c Patch 8.2.1566 Problem: Not all Bazel files are recognized. Solution: Add *.bazel and *.BUILD. (closes #6836) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1567 Problem: No example to use ubsan with clang. Solution: Add example commands. (Dominique Pellé, issue #6811) Files: src/Makefile Patch 8.2.1568 Problem: prop_find() skips properties in the same line if "skipstart" is used. Solution: Use "continue" instead of "break". (closes #6840) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1569 Problem: Vim9: fixes for functions not tested; failure in getchangelist(). Solution: Add tests. (closes #6813, closes #6815, closes #6817) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1570 Problem: Configure check for dirfd() does not work on HPUX. (Michael Osipov) Solution: Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes #6838) Files: src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h Patch 8.2.1571 Problem: Vim9: count() third argument cannot be "true". Solution: Use tv_get_bool_chk(). (closes #6818) Files: src/typval.c, src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1572 Problem: Vim9: expand() does not take "true" as argument. Solution: Use tv_get_bool_chk(). (closes #6819) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1573 Problem: Vim9: getreg() does not take "true" as argument. Solution: Use tv_get_bool_chk(). (closes #6820) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1574 Problem: Vim9: glob() does not take "true" as argument. Solution: Use tv_get_bool_chk(). (closes #6821) Files: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1575 Problem: Vim9: globpath() does not take "true" as argument. Solution: Use tv_get_bool_chk(). (closes #6821) Files: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1576 Problem: Vim9: index() does not take "true" as argument. Solution: Use tv_get_bool_chk(). (closes #6823) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1577 Problem: Vim9: hasmapto(), mapcheck() and maparg() do not take "true" as argument. Solution: Use tv_get_bool(). (closes #6822, closes #6824) Files: src/evalfunc.c, src/map.c, src/testdir/test_vim9_func.vim Patch 8.2.1578 Problem: Vim9: popup_clear() does not take "true" as argument. Solution: Use tv_get_bool(). (closes #6826) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1579 Problem: Reports from asan are not optimal. Solution: Use clang with ubsan. (James McCoy, closes #6811) Files: .travis.yml Patch 8.2.1580 Problem: Wildmenu does not work properly. Solution: Do not call may_do_incsearch_highlighting() if completion is in progress. Files: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_1.dump, src/testdir/dumps/Test_wildmenu_2.dump, src/testdir/dumps/Test_wildmenu_3.dump, src/testdir/dumps/Test_wildmenu_4.dump Patch 8.2.1581 Problem: Using line() for global popup window doesn't work. Solution: Set tabpage to "curtab". (closes #6847) Files: src/evalwindow.c, src/testdir/test_popupwin.vim Patch 8.2.1582 Problem: The channel log does not show typed text. Solution: Add raw typed text to the log file. Files: src/ui.c, src/os_win32.c Patch 8.2.1583 Problem: MS-Windows: cannot easily measure code coverage. Solution: Add the COVERAGE option. (Ken Takata, closes #6842) Files: src/Make_cyg_ming.mak Patch 8.2.1584 Problem: Vim9: cannot use "true" for "skipstart" in prop_find(). Solution: Use dict_get_bool() instead of tv_get_number(). (closes #6852) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1585 Problem: Messages in errors.h not translated, xgettext on MS-Windows not fully supported. Solution: Add errors.h to list of input files. Update MS-Windows makefiles to improve message translations. (Ken Takata, closes #6858) Files: src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak, src/po/Makefile, src/po/README.txt, src/po/fixfilenames.vim Patch 8.2.1586 Problem: :resize command not fully tested. Solution: Add a couple of tests. (Dominique Pellé, closes #6857) Files: src/testdir/test_window_cmd.vim Patch 8.2.1587 Problem: Loop for handling keys for the command line is too long. Solution: Move wild menu handling to separate functions. (Yegappan Lakshmanan, closes #6856) Files: src/cmdexpand.c, src/proto/cmdexpand.pro, src/ex_getln.c Patch 8.2.1588 Problem: Cannot read back the prompt of a prompt buffer. Solution: Add prompt_getprompt(). (Ben Jackson, closes #6851) Files: runtime/doc/channel.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/channel.c, src/edit.c, src/evalfunc.c, src/proto/channel.pro, src/proto/edit.pro, src/testdir/test_prompt_buffer.vim Patch 8.2.1589 Problem: Term_start() options for size are overruled by 'termwinsize'. (Sergey Vlasov) Solution: Set 'termwinsize' to the specified size. Files: src/terminal.c, src/testdir/test_terminal2.vim, src/testdir/term_util.vim Patch 8.2.1590 Problem: Vim9: bufnr() doesn't take "true" argument. Solution: use tv_get_bool_chk(). (closes #6863) Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1591 Problem: Using winheight('.') in tests works but is wrong. Solution: Use winheight(0). (issue #6863) Files: src/testdir/test_functions.vim, src/testdir/test_quickfix.vim Patch 8.2.1592 Problem: Vim9: passing "true" to char2nr() fails. Solution: Use tv_get_bool_chk(). (closes #6865) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1593 Problem: Tests do not check the error number properly. Solution: Add a colon after the error number. (closes #6869) Files: src/testdir/test_assert.vim, src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_const.vim, src/testdir/test_cscope.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, src/testdir/test_global.vim, src/testdir/test_gui.vim, src/testdir/test_hlsearch.vim, src/testdir/test_lambda.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_move.vim, src/testdir/test_normal.vim, src/testdir/test_popupwin.vim, src/testdir/test_put.vim, src/testdir/test_quickfix.vim, src/testdir/test_rename.vim, src/testdir/test_search.vim, src/testdir/test_signs.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagfunc.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_textprop.vim, src/testdir/test_timers.vim, src/testdir/test_true_false.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vimscript.vim, src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim Patch 8.2.1594 Problem: Pull requests on github do not notify a maintainer. Solution: Add a CODEOWNERS file with a few initial entries. Files: Filelist, .github/CODEOWNERS Patch 8.2.1595 Problem: Cannot easily see what Vim sends to the terminal. Solution: Write output to the channel log if it contains terminal control sequences. Avoid warnings for tputs() argument. Files: src/term.c, src/globals.h, src/edit.c, src/normal.c, src/optionstr.c Patch 8.2.1596 Problem: Using win_screenpos('.') in tests works but is wrong. Solution: Use win_screenpos(0). Files: src/testdir/test_terminal3.vim Patch 8.2.1597 Problem: The channel source file is too big. Solution: Move job related code to a new source file. Files: Filelist, src/Makefile, src/Make_mvc.mak, src/Make_cyg_ming.mak, src/channel.c, src/proto/channel.pro, src/job.c, src/proto/job.pro, src/proto.h, src/edit.c, src/proto/edit.pro, src/globals.h, src/configure.ac, src/auto/configure Patch 8.2.1598 Problem: Starting a hidden terminal resizes the current window. Solution: Do not resize the current window for a hidden terminal. (closes #6872) Files: src/terminal.c, src/testdir/test_terminal2.vim Patch 8.2.1599 Problem: Missing line end when skipping a long line with :cgetfile. Solution: Fix off-by-one error. (closes #6870) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1600 Problem: Vim9: cannot use "true" with deepcopy(). Solution: Use tv_get_bool_chk(). (closes #6867) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_listdict.vim Patch 8.2.1601 Problem: Vim9: cannot use "true" with garbagecollect(). Solution: Use tv_get_bool(). (closes #6871) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1602 Problem: Vim9: cannot use "true" with getbufinfo(). Solution: Use dict_get_bool(). (closes #6873) Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1603 Problem: Vim9: cannot use "true" with getchar(). Solution: use tv_get_bool_chk(). (closes #6874) Files: src/getchar.c, src/testdir/test_vim9_func.vim Patch 8.2.1604 Problem: Vim9: cannot use "true" with getcompletion(). Solution: use tv_get_bool_chk(). (closes #6875) Files: src/cmdexpand.c, src/testdir/test_vim9_func.vim Patch 8.2.1605 Problem: Default maintainer on github is wrong. Solution: Use Bram's account. Files: .github/CODEOWNERS Patch 8.2.1606 Problem: Vim9: cannot use "true" with has(). Solution: Use tv_get_bool(). (closes #6876) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1607 Problem: Vim9: getchar() test fails on MS-Windows. Solution: First consume any available input. Files: src/testdir/test_vim9_func.vim Patch 8.2.1608 Problem: Vim9: getchar() test fails with GUI. Solution: Avoid that getchar(0) gets stuck on K_IGNORE. Files: src/getchar.c Patch 8.2.1609 Problem: Vim9: test fails when build without +channel. Solution: Add check for +channel. (closes #6879) Files: src/testdir/test_vim9_expr.vim Patch 8.2.1610 Problem: Vim9: cannot pass "true" to list2str() and str2list(). Solution: Use tv_get_bool_chk(). (closes #6877) Files: src/evalfunc.c, src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1611 Problem: Vim9: cannot pass "true" to nr2char(). Solution: use tv_get_bool_chk(). (closes #6878) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1612 Problem: Vim9: cannot pass "true" to prop_remove(). Solution: Use dict_get_bool(). (closes #6853) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1613 Problem: Vim9: cannot pass "true" to prop_type_add(). Solution: Use tv_get_bool(). (closes #6850) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1614 Problem: Vim9: cannot pass "true" to searchcount(). Solution: Use tv_get_bool_chk(). (closes #6854) Files: src/search.c, src/testdir/test_vim9_func.vim Patch 8.2.1615 Problem: Vim9: cannot pass "true" to searchdecl(). Solution: use tv_get_bool_chk(). (closes #6881) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1616 Problem: Vim9: cannot pass "true" to synID(). Solution: Use tv_get_bool_chk(). (closes #6860) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1617 Problem: Vim9: cannot pass "true" to win_splitmove(). Solution: Use dict_get_bool(). (closes #6862) Alphabetize test functions. Files: src/evalwindow.c, src/testdir/test_vim9_func.vim Patch 8.2.1618 Problem: Vim9: cannot pass "true" to setloclist(). Solution: Use dict_get_bool(). (closes #6882) Files: src/quickfix.c, src/testdir/test_vim9_func.vim Patch 8.2.1619 Problem: Vim9: cannot pass "true" to spellsuggest(). Solution: Use tv_get_bool_chk(). (closes #6883) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1620 Problem: searchcount() test fails. Solution: Restore default flag value. Files: src/search.c Patch 8.2.1621 Problem: Crash when using submatch(0, 1) in substitute(). Solution: Increment reference count. (closes #6887) Files: src/regexp.c, src/testdir/test_substitute.vim Patch 8.2.1622 Problem: Loop to handle keys for the command line is too long. Solution: Move code to functions. (Yegappan Lakshmanan, closes #6880) Files: src/ex_getln.c Patch 8.2.1623 Problem: Vim9: using :call where it is not needed. Solution: Remove :call. (closes #6892) Files: src/testdir/test_maparg.vim, src/testdir/test_textprop.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1624 Problem: Vim9: cannot pass "true" to split(), str2nr() and strchars(). Solution: Use tv_get_bool_chk(). (closes #6884, closes #6885, closes #6886) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1625 Problem: Compiler warning for use of fptr_T. Solution: Make the type less strict. Files: src/regexp.c Patch 8.2.1626 Problem: Test for strchars() fails with different error number. Solution: Adjust the error number. Files: src/testdir/test_utf8.vim Patch 8.2.1627 Problem: Vim9: cannot pass "true" to submatch(), term_gettty() and term_start() Solution: Use tv_get_bool_chk(). (closes #6888, closes #6890, closes #6889) Files: src/evalfunc.c, src/terminal.c, src/job.c, src/testdir/test_vim9_func.vim Patch 8.2.1628 Problem: Vim9: cannot pass "true" to timer_paused(). Solution: Use tv_get_bool(). (closes #6891) Files: src/time.c, src/testdir/test_vim9_func.vim Patch 8.2.1629 Problem: Test fails without terminal feature. Solution: Check for terminal feature. Files: src/testdir/test_vim9_func.vim Patch 8.2.1630 Problem: Terminal test fails. Solution: Correct argument to term_start(). Correct error number. Files: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim Patch 8.2.1631 Problem: test_fails() does not check the context of the line number. Solution: Use another argument to specify the context of the line number. Files: runtime/doc/testing.txt, runtime/doc/eval.txt, src/testdir/test_vim9_func.vim, src/testing.c, src/globals.h, src/evalfunc.c, src/message.c Patch 8.2.1632 Problem: Not checking the context of test_fails(). Solution: Add the line number and context arguments. Give error if assert_fails() argument types are wrong. Files: src/testing.c, src/errors.h, src/testdir/test_assert.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1633 Problem: Some error messages are internal but do not use iemsg(). Solution: Use iemsg(). (Dominique Pellé, closes #6894) Files: src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.1634 Problem: Loop to handle keys for the command line is too long. Solution: Move a few more parts to separate functions. (Yegappan Lakshmanan, closes #6895) Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.1635 Problem: No digraph for 0x2022 BULLET. Solution: Use "oo". (Hans Ginzel, closes #6904) Files: src/digraph.c, runtime/doc/digraph.txt Patch 8.2.1636 Problem: Get stuck if a popup filter causes an error. Solution: Check whether the function can be called and does not cause an error. (closes #6902) Files: src/structs.h, src/popupwin.c, src/testdir/test_popupwin.vim src/testdir/dumps/Test_popupwin_wrong_name.dump, src/testdir/dumps/Test_popupwin_three_errors_1.dump, src/testdir/dumps/Test_popupwin_three_errors_2.dump Patch 8.2.1637 Problem: Vim9: :put ={expr} does not work inside :def function. Solution: Add ISN_PUT. (closes #6397) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/register.c, src/proto/register.pro, src/edit.c, src/ex_docmd.c, src/mouse.c, src/normal.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1638 Problem: Leaking memory when popup filter function can't be called. Solution: Don't return too soon. Files: src/popupwin.c Patch 8.2.1639 Problem: Options window cannot be translated. Solution: Get the translation for "local to" texts once and use them in many places. Fix that 'whichwrap' is not a local option. (issue #6800) Files: runtime/optwin.vim Patch 8.2.1640 Problem: Amiga: missing header for getgrgid(). Solution: Add the grp.h header. (Ola Söder, closes #6906) Files: src/os_amiga.h Patch 8.2.1641 Problem: Vim9: cannot use 0 or 1 where a bool is expected. Solution: Allow using 0 and 1 for a bool type. (closes #6903) Files: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1642 Problem: Options test fails. Solution: Correct call to OptionG(). Files: runtime/optwin.vim Patch 8.2.1643 Problem: Vim9: :defcompile compiles dead functions. Solution: Skip over dead functions. Files: src/userfunc.c Patch 8.2.1644 Problem: Vim9: cannot assign 1 and 0 to bool at script level. Solution: Add the TTFLAG_BOOL_OK flag to the type. Fix name of test function. Files: src/vim9type.c, src/testdir/test_vim9_script.vim, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1645 Problem: GTK3: icons become broken images when resized. Solution: Use gtk_image_new_from_icon_name(). (closes #6916) Fix compiler warnings. Files: src/gui_gtk_x11.c Patch 8.2.1646 Problem: Amiga: Unnecessary #include. Solution: Remove the #include. (Ola Söder, closes #6908) Files: src/version.c Patch 8.2.1647 Problem: Vim9: result of expression with && and || cannot be assigned to a bool variable. Solution: Add the TTFLAG_BOOL_OK flag and convert the value if needed. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1648 Problem: Amiga: no common build file for Amiga (-like) systems. Solution: Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes #6805) Files: Filelist, src/Make_ami.mak, src/Make_morph.mak, src/INSTALLami.txt Patch 8.2.1649 Problem: GTK3: using old file chooser. Solution: Use native file chooser on GTK 3.20 and above. (Yogeshwar Velingker, closes #6909) Files: src/gui_gtk.c Patch 8.2.1650 Problem: Vim9: result of && and || expression cannot be assigned to a bool at the script level. Solution: Add the VAR_BOOL_OK flag. Convert to bool when needed. Files: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/evalvars.c, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1651 Problem: Spellfile code not completely tested. Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6918) Files: src/testdir/test_spellfile.vim Patch 8.2.1652 Problem: Cannot translate lines in the options window. Solution: Use the AddOption() function to split descriptions where indicated by a line break. (issue #6800) Files: runtime/optwin.vim Patch 8.2.1653 Problem: Expand('<stack>') does not include the final line number. Solution: Add the line number. (closes #6927) Files: src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, src/testing.c, src/testdir/test_expand_func.vim Patch 8.2.1654 Problem: When job writes to hidden buffer current window has display errors. (Johnny McArthur) Solution: Use aucmd_prepbuf() instead of switch_to_win_for_buf(). (closes #6925) Files: src/channel.c Patch 8.2.1655 Problem: Cannot build with Strawberry Perl 5.32.0. Solution: Use Perl_sv_2pvbyte_flags. (closes #6921) Files: src/if_perl.xs Patch 8.2.1656 Problem: Vim9: callstack wrong if :def function calls :def function. Solution: Set the line number before calling. (closes #6914) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1657 Problem: Vim9: no proper error for nested ":def!". Solution: Check for "!". (closes #6920) Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1658 Problem: Expand('<stack>') has trailing "..". Solution: Remove the "..". (closes #6927) Files: src/scriptfile.c, src/testdir/test_expand_func.vim Patch 8.2.1659 Problem: Spellfile code not completely tested. Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6929) Files: src/testdir/test_spell.vim, src/testdir/test_spellfile.vim Patch 8.2.1660 Problem: Assert functions require passing expected result as the first argument, which isn't obvious. Solution: Use a method, as in "runtest()->assert_equal(expected)". Files: src/testdir/test_vim9_func.vim Patch 8.2.1661 Problem: Cannot connect to 127.0.0.1 for host with only IPv6 addresses. Solution: pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger, closes #6931) Files: src/channel.c Patch 8.2.1662 Problem: :mksession does not restore shared terminal buffer properly. Solution: Keep a hashtab with terminal buffers. (Rob Pilling, closes #6930) Files: src/hashtab.c, src/proto/terminal.pro, src/session.c, src/terminal.c, src/testdir/test_mksession.vim Patch 8.2.1663 Problem: Options window entries cannot be translated. Solution: Use AddOption() for all explanations. (closes #6800) Files: runtime/optwin.vim Patch 8.2.1664 Problem: Memory leak when using :mkview with a terminal buffer. Solution: Don't use a hastab for :mkview. (Rob Pilling, closes #6935) Files: src/session.c, src/terminal.c, src/testdir/test_mksession.vim Patch 8.2.1665 Problem: Cannot do fuzzy string matching. Solution: Add matchfuzzy(). (Yegappan Lakshmanan, closes #6932) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/search.pro, src/search.c, src/testdir/test_functions.vim Patch 8.2.1666 Problem: The initial value of 'backupskip' can have duplicate items. Solution: Remove duplicates, like when it is set later. (Tom Ryder, closes #6940) Files: src/option.c, src/testdir/test_options.vim Patch 8.2.1667 Problem: Local function name cannot shadow a global function name. Solution: Ignore global functions when checking a script-local or scoped function name. (closes #6926) Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.1668 Problem: Vim9: not accepting 0 or 1 as bool when type is any. Solution: Convert the type with the CHECKTYPE instruction. (closes #6913) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1669 Problem: Vim9: memory leak when storing a value fails. Solution: Free the value when not storing it. Files: src/evalvars.c Patch 8.2.1670 Problem: A couple of gcc compiler warnings. Solution: Initialize local variables. (Dominique Pellé, closes #6944) Files: src/memline.c, src/option.c Patch 8.2.1671 Problem: Vim9: stray error for missing white space. Solution: Do not skip over white space after member. (closes #6917) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1672 Problem: v_lock is used when it is not initialized. (Yegappan Lakshmanan) Solution: Initialize the typval in eval1(). Files: src/eval.c Patch 8.2.1673 Problem: complete_info() selected index has an invalid value. (Ben Jackson) Solution: Set the index when there is only one match. (closes #6945) Add test for complete_info(). Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.1674 Problem: Vim9: internal error when using variable that was not set. Solution: Give a meaningful error. (closes #6937) Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.1675 Problem: MinGW: testdir makefile deletes non-existing file. Solution: Use another way to delete the output file if it already exists. (Michael Soyka) Files: src/testdir/Make_ming.mak Patch 8.2.1676 Problem: Compiler warnings for function typecast. Solution: Add an intermediate cast to "void *". Files: src/os_unix.c Patch 8.2.1677 Problem: Memory access errors when calling setloclist() in an autocommand. Solution: Give an error if the list was changed unexpectedly. (closes #6946) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1678 Problem: Crash when using ":set" after ":ownsyntax". (Dhiraj Mishra) Solution: Make sure 'spelloptions' is not NULL. (closes #6950) Files: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.1679 Problem: Vim9: ":*" is not recognized as a range. Solution: Move recognizing "*" into skip_range(). (closes #6938) Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c, src/ex_getln.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1680 Problem: Vim9: line number for compare error is wrong. Solution: Set SOURCING_LNUM. (closes #6936) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1681 Problem: Vim9: unnecessary :call commands in tests. Solution: Remove the commands. (issue #6936) Files: src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1682 Problem: Vim9: const works in an unexpected way. Solution: ":const" only disallows changing the variable, not the value. Make "list[0] = 9" work at the script level. Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1683 Problem: Vim9: assignment test fails. Solution: Include changes to find Ex command. Files: src/ex_docmd.c Patch 8.2.1684 Problem: "gF" does not use line number after file in Visual mode. Solution: Look for ":123" after the Visual area. (closes #6952) Files: src/findfile.c, src/testdir/test_gf.vim Patch 8.2.1685 Problem: Vim9: cannot declare a constant value. Solution: Introduce ":const!". Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/errors.h, src/vim.h, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1686 Problem: Vim9: "const!" not sufficiently tested. Solution: Add a few more test cases. Fix type checking. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1687 Problem: Vim9: out of bounds error. Solution: Check that cmdidx is not negative. Files: src/vim9compile.c Patch 8.2.1688 Problem: Increment/decrement removes text property. Solution: Insert the new number before deleting the old one. (closes #6962) Files: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.1689 Problem: 'colorcolumn' doesn't show in indent. Solution: Also draw the column when draw_state is WL_BRI or WL_SBR. (Alexey Demin, closes #6948, closes #6619) Files: src/drawline.c, src/testdir/dumps/Test_colorcolumn_2.dump, src/testdir/dumps/Test_colorcolumn_3.dump, src/testdir/test_highlight.vim Patch 8.2.1690 Problem: Text properties not adjusted for "I" in Visual block mode. Solution: Call inserted_bytes(). (closes #6961) Files: src/ops.c, src/change.c, src/proto/change.pro, src/testdir/test_textprop.vim Patch 8.2.1691 Problem: Vim9: list<any> is not accepted where list<number> is expected. Solution: Add functions to allocate and free a type_T, use it in ISN_CHECKTYPE. (closes #6959) Files: src/vim9.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalfunc.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1692 Problem: Build fails because TTFLAG_STATIC is missing. Solution: Include missing change. Files: src/structs.h Patch 8.2.1693 Problem: "hi def" does not work for cleared highlight. Solution: Check the "sg_cleared" flag. (Maxim Kim, closes #6956, closes #4405) Files: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1694 Problem: Compiler warning for loss if data. Solution: Add typecast. Files: src/ops.c Patch 8.2.1695 Problem: Vim9: crash when using varargs type "any". Solution: Check if uf_va_type is &t_any. (closes #6957) Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1696 Problem: Unused (duplicate) macros. Solution: Remove the macros. Files: src/spell.c Patch 8.2.1697 Problem: Inconsistent capitalization of error messages. Solution: Always start with a capital. Files: src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim Patch 8.2.1698 Problem: Cannot lock a variable in legacy Vim script like in Vim9. Solution: Make ":lockvar 0" work. Files: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, src/dict.c, src/eval.c, src/list.c, src/typval.c, src/userfunc.c, src/testdir/test_const.vim, src/testdir/test_listdict.vim Patch 8.2.1699 Problem: Build failure due to missing error message. Solution: Add error message. Files: src/errors.h Patch 8.2.1700 Problem: Vim9: try/catch causes wrong value to be returned. Solution: Reset tcd_return. (closes #6964) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1701 Problem: Vim9: sort("i") does not work. Solution: Don't try getting a number for a string argument. (closes #6958) Files: src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1702 Problem: Crash when using undo after deleting folded lines. Solution: Check for NULL pointer. (closes #6968) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1703 Problem: ":highlight clear" does not restore default link. Solution: Remember the default link and restore it. (Antony Scriven, closes #6970, closes #4405) Files: runtime/doc/syntax.txt, src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1704 Problem: Vim9: crash in for loop when autoload script has an error. Solution: Reset suppress_errthrow. Check for NULL list. (closes #6967) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1705 Problem: "verbose hi Name" reports incorrect info after ":hi clear". Solution: Store the script context. (Antony Scriven, closes #6975) Files: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1706 Problem: Vim9: crash after running into the "Multiple closures" error. Solution: When a function fails still update any closures. (closes #6973) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1707 Problem: Small inconsistency in highlight test. Solution: Use one argument for :execute. (Antony Scriven, #6975) Files: src/testdir/test_highlight.vim Patch 8.2.1708 Problem: Vim9: error message for function has unprintable characters. Solution: use printable_func_name(). (closes #6965) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1709 Problem: Vim9: memory leak when using multiple closures. Solution: Free the partial. Files: src/vim9execute.c Patch 8.2.1710 Problem: Vim9: list of list type can be wrong. Solution: Use VAR_UNKNOWN for empty list. Recognize VAR_UNKNOWN when looking for a common type. (closes #6979) Files: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1711 Problem: Vim9: leaking memory when using partial. Solution: Do delete the function even when it was compiled. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9execute.c Patch 8.2.1712 Problem: Vim9: leaking memory when calling a lambda. Solution: Decrement function reference from ISN_DCALL. Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.1713 Problem: Motif GUI: crash when setting menu colors. (Andrzej Bylicki) Solution: Add {} to make "n" incremented correctly. (closes #6989, closes #5948) Files: src/gui_motif.c Patch 8.2.1714 Problem: Text properties corrupted with substitute command. (Filipe Brandenburger) Solution: Get the changed line again after using u_savesub(). (closes #6984) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1715 Problem: Motif GUI: commented out code missed {}. Solution: Add {} and reenable the code. (similar to #6989) Files: src/gui_motif.c Patch 8.2.1716 Problem: Options window has duplicate translations. Solution: Make one entry for "global or local to buffer". Fix wrong text. (closes #6983) Files: runtime/optwin.vim Patch 8.2.1717 Problem: MS-Windows installer doesn't have Russian translations. Solution: Add Russian translations. (closes #6985) Files: nsis/gvim.nsi, nsis/lang/russian.nsi Patch 8.2.1718 Problem: Vim9: :def function disallows "firstline" and "lastline" argument names for no good reason. Solution: Don't check the arguments for a :def function. (closes #6986) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1719 Problem: Vim9: no error if comma is missing in between arguments. Solution: Give an error message. Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1720 Problem: Vim9: memory leak with heredoc that isn't executed. (Dominique Pellé) Solution: Don't clear the list items. (closes #6991) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1721 Problem: MS-Windows installer doesn't work. Solution: Write "Russian" in ASCII. (closes #6995, see #6985). Files: nsis/lang/russian.nsi Patch 8.2.1722 Problem: Vim9: cannot assign a lambda to a variable of type function. Solution: Allow for assigning a partial to a variable of type function. (Naruhiko Nishino, closes #6996) Files: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1723 Problem: Vim9: Variable argument name cannot start with underscore. Solution: Use eval_isnamec1(). (closes #6988) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1724 Problem: Vim9: assignment tests spread out. Solution: Create new test file for assignment tests. Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/Make_all.mak Patch 8.2.1725 Problem: Not all Pascal files are recognized. Solution: Add filetype patterns. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1726 Problem: Fuzzy matching only works on strings. Solution: Support passing a dict. Add matchfuzzypos() to also get the match positions. (Yegappan Lakshmanan, closes #6947) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/search.pro, src/search.c, src/testdir/Make_all.mak, src/testdir/test_functions.vim, src/testdir/test_matchfuzzy.vim Patch 8.2.1727 Problem: A popup created with "cursorline" will ignore "firstline". Solution: When both "cursorline" and "firstline" are present put the cursor on "firstline". (closes #7000) Add the "winid" argument to getcurpos(). Files: runtime/doc/eval.txt, src/evalfunc.c, src/popupwin.c, src/evalwindow.c, src/testdir/test_popupwin.vim, src/testdir/test_functions.vim Patch 8.2.1728 Problem: Compiler warning for using uninitialized variable. (John Marriott) Solution: Initialize "neighbor". Files: src/search.c Patch 8.2.1729 Problem: Endless loop when ":normal" feeds popup window filter. Solution: Add the ex_normal_busy_done flag. Files: src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c, src/menu.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_normal_cmd.dump Patch 8.2.1730 Problem: Vim9: cannot use member of unknown type. Solution: When type is unknown use "any". (closes #6997) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1731 Problem: Vim9: cannot use += to append to empty NULL list. Solution: Copy the list instead of extending it. (closes #6998) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.1732 Problem: Stuck when win_execute() for a popup causes an error. Solution: Disable the filter callback on error. (issue #6999) Files: src/popupwin.c, src/testdir/term_util.vim, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_win_execute.dump Patch 8.2.1733 Problem: Vim9: memory leaks when using nested function. Solution: Free function when compilation fails. Files: src/vim9compile.c Patch 8.2.1734 Problem: Vim9: cannot use a funcref for a closure twice. Solution: Instead of putting the funcref on the stack use a growarray on the execution context. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1735 Problem: Github actions appear to timeout too soon. Solution: use "timeout" instead of "ping". Files: .github/workflows/ci-windows.yaml Patch 8.2.1736 Problem: Failure to compile a pattern not tested much. Solution: Add tests where a pattern fails to compile. (Yegappan Lakshmanan, closes #7004) Files: src/testdir/gen_opt_test.vim, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_checkpath.vim, src/testdir/test_cmdline.vim, src/testdir/test_debugger.vim, src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_listdict.vim, src/testdir/test_options.vim, src/testdir/test_search_stat.vim, src/testdir/test_sort.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim, src/testdir/test_user_func.vim Patch 8.2.1737 Problem: Cursor line highlight in popup window is not always updated. Solution: Check if the cursor has moved. (closes #7010) Files: src/popupwin.c, src/testdir/test_popupwin.vim src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump Patch 8.2.1738 Problem: Mac: str2float() recognizes comma instead of decimal point. Solution: Set LC_NUMERIC to "C". (closes #7003) Files: src/os_mac_conv.c Patch 8.2.1739 Problem: Vim9: crash when compiling a manually defined function. (Antony Scriven) Solution: Check that the script ID is positive. (closes #7012) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1740 Problem: Test fails without the terminal feature. Solution: Skip test if the terminal feature is not available. Files: src/testdir/test_vim9_script.vim Patch 8.2.1741 Problem: pathshorten() only supports using one character. Solution: Add an argument to control the length. (closes #7006) Files: runtime/doc/eval.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.1742 Problem: Test still fails without the terminal feature. Solution: Put check for terminal feature in separate function. Files: src/testdir/test_vim9_script.vim Patch 8.2.1743 Problem: Cannot build without the eval feature. Solution: Move shorten_dir outside of #ifdef. Files: src/filepath.c Patch 8.2.1744 Problem: Vim9: using ":const!" is weird. Solution: Use "var" - "final" - "const" like Dart. "let" still works for now. Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/cmdexpand.c, src/eval.c, src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim.h, src/ex_cmdidxs.h, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1745 Problem: Tiny version doesn't build. Solution: Add dummy ex_var() function. Files: src/ex_docmd.c Patch 8.2.1746 Problem: Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino) Solution: Specifically check for "fina". (closes #7020) Files: src/ex_docmd.c, src/testdir/test_trycatch.vim, src/testdir/test_vim9_script.vim Patch 8.2.1747 Problem: Result of expand() unexpectedly depends on 'completeslash'. Solution: Temporarily reset 'completeslash'. (Yasuhiro Matsumoto, closes #7021) Files: src/evalfunc.c, src/testdir/test_ins_complete.vim Patch 8.2.1748 Problem: Closing split window in other tab may cause a crash. Solution: Set tp_curwin properly. (Rob Pilling, closes #7018) Files: src/window.c, src/testdir/test_winbuf_close.vim Patch 8.2.1749 Problem: Vim9: crash when closure fails in nested function. Solution: Handle function returns before dereferencing remaining closures. (closes #7008) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1750 Problem: Setting firstline with popup_setoptions() fails if cursorline is set. Solution: Use apply_options(). Update the popup before applying "zz". (closes #7010) Files: src/popupwin.c, src/proto/popupwin.pro, src/move.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump, src/testdir/dumps/Test_popupwin_set_firstline_1.dump, src/testdir/dumps/Test_popupwin_set_firstline_2.dump Patch 8.2.1751 Problem: Using 2 where bool is expected may throw an error. Solution: Make this backwards compatible. Files: src/typval.c, src/evalfunc.c, src/testdir/test_search.vim, src/testdir/test_terminal2.vim Patch 8.2.1752 Problem: GTK GUI: cannot map alt-? with <A-?>. (Ingo Karkat) Solution: Adjust the characters for which the shift modifier is removed. (closes #7016) Make Motif and Win32 use the same function as GTK. Files: src/misc2.c, src/gui_x11.c, src/gui_w32.c, src/testdir/test_termcodes.vim Patch 8.2.1753 Problem: Vim9: crash when using import at script level. Solution: Give a "not implemented yet" error. (closes #7026) Files: src/evalvars.c Patch 8.2.1754 Problem: Completion with spell checking not tested. Solution: Add a test case. (Dominique Pellé, closes #7024) Files: src/testdir/test_spell.vim Patch 8.2.1755 Problem: Vim9: crash when using invalid heredoc marker. (Dhiraj Mishra) Solution: Check for NULL list. (closes #7027) Fix comment character. Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.1756 Problem: Vim9: :let will soon be disallowed. Solution: Add v:disallow_let temporarily. Fix tests. Files: src/vim.h, src/errors.h, src/evalvars.c, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1757 Problem: Mac: default locale is lacking the encoding. Solution: Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022) Files: src/os_mac_conv.c, src/testdir/test_environ.vim Patch 8.2.1758 Problem: Vim9: type of unmaterialized list is wrong. Solution: Use list<number>. Files: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1759 Problem: Vim9: Some tests are still using :let. Solution: Change more declarations to use :var. Files: src/testdir/test_vim9_expr.vim Patch 8.2.1760 Problem: Vim9: crash when end marker is missing. (Dhiraj Mishra) Solution: Check for end of function lines. (closes #7031) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1761 Problem: Vim9: Some tests are still using :let. Solution: Change more declarations to use :var. Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1762 Problem: When a timer uses :stopinsert Insert mode completion isn't stopped. (Stanley Chan) Solution: Call ins_compl_prep(ESC). Files: src/edit.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_pum_stopped_by_timer.dump Patch 8.2.1763 Problem: Vim9: cannot use "true" for popup window scrollbar option. Solution: use dict_get_bool(). (closes #7029) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1764 Problem: Vim9: no error when assigning to script var with wrong type. Solution: Fix off-by-one error. (closes #7028) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1765 Problem: Vim9: some tests use "var var". Solution: Use "var name". (closes #7032) Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1766 Problem: Vim9: Some tests are still using :let. Solution: Change the last few declarations to use :var. Files: src/testdir/runtest.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_maparg.vim, src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim Patch 8.2.1767 Problem: Vim9: test fails with python support. Solution: Use "let" in legacy function. Files: src/testdir/test_vim9_func.vim Patch 8.2.1768 Problem: Cannot use the help menu from a terminal window. Solution: Add ":tlnoremenu" commands. (Yee Cheng Chin, closes #7023) Files: runtime/menu.vim, src/testdir/test_gui.vim Patch 8.2.1769 Problem: A popup filter interferes with using :normal to move the cursor in a popup. Solution: Do not invoke the filter when ex_normal_busy is set. Files: runtime/doc/popup.txt, src/getchar.c, src/evalfunc.c, src/ex_docmd.c, src/menu.c, src/globals.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_normal_cmd.dump Patch 8.2.1770 Problem: Invalid memory use when using SpellFileMissing autocmd. Solution: Add test case. (Dominique Pellé, closes #7036) Fix using a window that was closed. Files: src/spell.c, src/testdir/test_spell.vim Patch 8.2.1771 Problem: synIDattr() cannot get the value of ctermul. Solution: Add the "ul" value for "what". (closes #7037) Files: runtime/doc/eval.txt, src/highlight.c, src/evalfunc.c, src/testdir/test_highlight.vim Patch 8.2.1772 Problem: Cannot use CTRL-W <Down> to move out of a terminal window. Solution: Use special_to_buf() instead of mb_char2bytes(). (closes #7045) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1773 Problem: Crash when calling mapset() with a list as first argument. Solution: Check for NULL. (closes #7040) Files: src/map.c, src/testdir/test_maparg.vim Patch 8.2.1774 Problem: GTK: hang when forced to exit. Solution: Do not clean up "mainwin" when really_exiting is set. (Zdenek Dohnal, closes #7042) Files: src/gui_gtk_x11.c Patch 8.2.1775 Problem: MS-Windows: adding a long quickfix list is slow. Solution: Shorten the buffer name only for the first entry. (Yegappan Lakshmanan, closes #7039, closes #7033) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1776 Problem: Filetype.vim may be loaded twice. Solution: Do "syntax on" after "filetype on". (Adam Stankiewicz, closes #7049) Files: runtime/defaults.vim Patch 8.2.1777 Problem: Vim9: some assignment tests in the wrong file. Solution: Move assignment tests to test_vim9_assign. Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1778 Problem: Vim9: returning from a partial call clears outer context, causing a crash. Solution: Put the outer context in the stack frame. (closes #7044) Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.1779 Problem: Some debian changelog files are not recognized. Solution: Add */debian/changelog. (Jason Franklin) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1780 Problem: Statusline not updated when splitting windows. Solution: Call status_redraw_all(). (Jason Franklin, closes #5496) Files: src/window.c, src/testdir/test_statusline.vim Patch 8.2.1781 Problem: Writing to prompt buffer interferes with insert mode. Solution: Use win_enter() instead of just setting "curwin". (Ben Jackson, closes #7035) Files: src/autocmd.c, src/testdir/test_prompt_buffer.vim Patch 8.2.1782 Problem: Vim9: cannot pass boolean to mapset(). Solution: Use get_tv_bool(). (closes #7041) Files: src/map.c, src/testdir/test_vim9_func.vim Patch 8.2.1783 (after 8.2.1781) Problem: Try-catch test fails. Solution: Don't call win_enter(), only call entering_window(). Files: src/autocmd.c, src/window.c, src/proto/window.pro, src/testdir/runtest.vim Patch 8.2.1784 Problem: commits are not scanned for security problems Solution: Enable Github code scanning. (Christian Brabandt, closes #7057) Files: .github/workflows/codeql-analysis.yml Patch 8.2.1785 Problem: Compiler warning for strcpy() out of bounds. (Christian Brabandt) Solution: use memmove() instead. Files: src/dict.c Patch 8.2.1786 Problem: Various Normal mode commands not fully tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #7059) Files: src/testdir/test_normal.vim, src/testdir/test_regexp_utf8.vim, src/testdir/test_registers.vim, src/testdir/test_spellfile.vim, src/testdir/test_tagjump.vim, src/testdir/test_visual.vim Patch 8.2.1787 Problem: Crash with 'incsearch' and very long line. Solution: Check whether regprog becomes NULL. (closes #7063) Files: src/search.c, src/testdir/test_search.vim Patch 8.2.1788 Problem: Vim9: still allows :let for declarations. Solution: Make the default for v:disallow_let one. It can still be set to zero to allow for using :let. Files: src/evalvars.c, src/testdir/runtest.vim Patch 8.2.1789 Problem: Vim9: crash with invalid list constant. (Dhiraj Mishra) Solution: Return FAIL when compiling the list fails. (closes #7066) Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.1790 Problem: MS-Windows with Python: crash when executed from Vifm. Solution: Use NUL instead of CONIN. (Ken Takata, closes #7061, closes #7053) Files: src/if_python3.c Patch 8.2.1791 Problem: Vim9: debugger test fails. Solution: Use "var" instead of "let". Files: src/testdir/test_debugger.vim Patch 8.2.1792 Problem: Configure does not recognize Racket 6.1+. Solution: Add a check for "rktio". (closes #7062) Files: src/configure.ac, src/auto/configure Patch 8.2.1793 Problem: Not consistently giving the "is a directory" warning. Solution: Adjust check for illegal file name and directory. (Yasuhiro Matsumoto, closes #7067) Files: src/fileio.c, src/testdir/test_edit.vim Patch 8.2.1794 Problem: No falsy Coalescing operator. Solution: Add the "??" operator. Fix mistake with function argument count. Files: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, src/vim9type.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1795 Problem: Vim9: operators && and || have a confusing result. Solution: Make the result a boolean. Files: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1796 Problem: Vim9: invalid memory access with weird function name. (Dhiraj Mishra) Solution: Check the name is valid. Add a test. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1797 Problem: Vim9: some parts of the code not tested. Solution: Add a few tests. Files: src/testdir/test_vim9_func.vim Patch 8.2.1798 Problem: Vim9: ternary operator condition is too permissive. Solution: Use tv_get_bool_chk(). Files: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.1799 Problem: Some Normal mode commands not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #7073) Files: src/testdir/test_gf.vim, src/testdir/test_goto.vim, src/testdir/test_normal.vim, src/testdir/test_registers.vim, src/testdir/test_startup.vim, src/testdir/test_tabpage.vim, src/testdir/test_visual.vim Patch 8.2.1800 Problem: Vim9: memory leak if "if" condition is invalid. Solution: Free ppconst earlier. Files: src/vim9compile.c Patch 8.2.1801 Problem: Undo file not found when using ":args" or ":next". Solution: Handle like editing another file. (closes #7072) Files: src/ex_cmds.c, src/testdir/test_undo.vim Patch 8.2.1802 Problem: Vim9: crash with unterminated dict. (Dhiraj Mishra) Solution: Return empty string instead of NULL. (closes #7084) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1803 Problem: A few failures are not tested. Solution: Test a few failures. (Dominique Pellé, closes #7075) Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_json.vim, src/testdir/test_listdict.vim Patch 8.2.1804 Problem: resolve('/') returns an empty string. Solution: Don't remove single slash. (closes #7074) Files: src/filepath.c, src/testdir/test_functions.vim Patch 8.2.1805 Problem: Unix: terminal mode changed when using ":shell". Solution: Avoid calling settmode() when not needed. (issue #7079) Files: src/os_unix.c Patch 8.2.1806 Problem: MS-Windows with Python: Vim freezes after import command. Solution: Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro Matsumoto, closes #7083) Files: src/if_python3.c Patch 8.2.1807 Problem: Can use :help in a terminal popup window. Solution: Give an error. (closes #7088) Files: src/help.c, src/testdir/test_popupwin.vim Patch 8.2.1808 Problem: No test coverage for ":spelldump!". Solution: Add a test. (Dominique Pellé, closes #7089) Files: src/testdir/test_spell.vim Patch 8.2.1809 Problem: Mapping some keys with Ctrl does not work properly. Solution: For terminal, GTK and Motif handle "@", "^" and "_" codes. Files: src/misc2.c, src/proto/misc2.pro, src/term.c, src/gui_gtk_x11.c, src/gui_x11.c, src/testdir/test_termcodes.vim Patch 8.2.1810 Problem: Some code in normal.c not covered by tests. Solution: Add normal mode tests. (Yegappan Lakshmanan, closes #7086) Files: src/testdir/test_charsearch.vim, src/testdir/test_normal.vim Patch 8.2.1811 Problem: Mapping Ctrl-key does not work for '{', '}' and '|'. Solution: Remove the shift modifier. (closes #6457) Files: runtime/doc/map.txt, src/misc2.c, src/testdir/test_termcodes.vim Patch 8.2.1812 Problem: Vim9: nested closure throws an internal error. Solution: Do not skip a local variable with a partial. (closes #7065) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1813 Problem: Vim9: can assign wrong type to script dict. (Christian J. Robinson) Solution: Check the type if known. Files: src/structs.h, src/eval.c, src/vim9script.c, src/proto/vim9script.pro, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.1814 (after 8.2.1813) Problem: Missing change to remove "static". Solution: Add the change. Files: src/evalvars.c Patch 8.2.1815 Problem: Vim9: memory leak when using function reference. Solution: Temporarily disable the test. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.1816 Problem: Vim9: another memory leak when using function reference. Solution: Temporarily disable the tests. Files: src/testdir/test_vim9_func.vim Patch 8.2.1817 Problem: Vim9: wrong instruction when reusing a local variable spot. Solution: Clear a newly allocated local variable. (closes #7080) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1818 Problem: SE Linux: deprecation warning for security_context_t. Solution: Use "char *" instead. (James McCoy, closes #7093) Files: src/os_unix.c Patch 8.2.1819 Problem: Vim9: Memory leak when using a closure. Solution: Compute the minimal refcount in the funcstack. Reenable disabled tests. Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1820 Problem: Vim9: crash when error happens in timer callback. Solution: Check that current_exception is not NULL. (closes #7100) Files: src/ex_docmd.c Patch 8.2.1821 Problem: Vim9: concatenating to a NULL list doesn't work. Solution: Handle a NULL list like an empty list. (closes #7064) Files: src/list.c, src/testdir/test_vim9_assign.vim Patch 8.2.1822 (after 8.2.1821) Problem: List test doesn't fail. Solution: Adjust the test for NULL list handling. Files: src/testdir/test_listdict.vim Patch 8.2.1823 Problem: "gN" does not select the matched string. Solution: Move the cursor to the start of the match. Files: src/search.c, src/testdir/test_gn.vim Patch 8.2.1824 Problem: Vim9: variables at the script level escape their scope. Solution: When leaving a scope remove variables declared in it. Files: src/structs.h, src/ex_eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.1825 Problem: Vim9: accessing freed memory. Solution: Clear sv_name when the variable is deleted. Files: src/ex_eval.c Patch 8.2.1826 Problem: Vim9: cannot use a {} block at script level. Solution: Recognize a {} block. Files: src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_eval.c, src/structs.h, src/proto/ex_eval.pro, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.1827 Problem: Filetype detection does not test enough file names. Solution: Test more file names. (Adam Stankiewicz, closes #7099) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1828 Problem: Build failure without the +eval feature. Solution: Add dummies for ex_block and ex_endblock. Files: src/ex_docmd.c Patch 8.2.1829 Problem: Warnings when executing Github actions. Solution: Use another method to set environment variables. (Ken Takata, closes #7107) Files: .github/workflows/ci-windows.yaml Patch 8.2.1830 Problem: MS-Windows: Python3 issue with stdin. Solution: Check if stdin is readable. (Ken Takata, closes #7106) Files: src/if_python3.c Patch 8.2.1831 Problem: File missing from distribution. Solution: Add the github code analyses file. Files: Filelist Patch 8.2.1832 Problem: readdirex() error is displayed as a message. (Yegappan Lakshmanan) Solution: Use semsg() instead of smsg(). Files: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.1833 Problem: When reading from stdin dup() is called twice. Solution: Remove the dup() in main.c. (Ken Takata, closes #7110) Files: src/main.c Patch 8.2.1834 Problem: PyEval_InitThreads() is deprecated in Python 3.9. Solution: Do not call PyEval_InitThreads in Python 3.9 and later. (Ken Takata, closes #7113) Avoid warnings for functions. Files: src/if_python3.c, src/if_py_both.h Patch 8.2.1835 Problem: ":help ??" finds the "!!" tag. Solution: Do not translate "?" into ".". (Naruhiko Nishino, closes #7114, closes #7115) Files: src/help.c, src/testdir/test_help_tagjump.vim Patch 8.2.1836 Problem: Autocmd test fails on pacifist systems. Solution: Check that /bin/kill exists. (James McCoy, closes #7117) Tune the timing, make the autocmd test run faster. Files: src/testdir/test_autocmd.vim Patch 8.2.1837 Problem: Using "gn" after "gN" does not work. Solution: Extend the other end of the Visual area. (closes #7109) Files: src/search.c, src/testdir/test_gn.vim Patch 8.2.1838 Problem: Vim9: cannot insert a comment line in an expression. Solution: Skip comment lines at the script level. (closes #7111) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1839 Problem: Vim9: memory leaks reported in assign test. Solution: Move the failing job_start() call to separate test files, it causes false leak reports. Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_fails.vim, src/testdir/Make_all.mak Patch 8.2.1840 Problem: Vim9: error message is not clear about compilation error. Solution: Say "compiling" instead of "processing". Files: src/vim9compile.c, src/message.c, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.1841 Problem: Vim9: test for compilation error fails in normal build. Solution: Invoke CheckRunVimInTerminal in a separate function. Files: src/testdir/test_vim9_func.vim Patch 8.2.1842 Problem: Crash when USE_FNAME_CASE is defined and using :browse. Solution: Don't use read-only memory for ".". (Yegappan Lakshmanan, closes #7123) Files: src/ex_cmds.c, src/ex_docmd.c, src/testdir/test_edit.vim Patch 8.2.1843 Problem: Netbeans: with huge buffer number memory allocation may fail. Solution: Check for size overflow. Files: src/netbeans.c Patch 8.2.1844 Problem: Using "q" at the more prompt doesn't stop a long message. Solution: Check for "got_int". (closes #7122) Files: src/message.c, src/testdir/test_messages.vim, src/testdir/dumps/Test_quit_long_message.dump Patch 8.2.1845 Problem: Vim9: function defined in a block can't use variables defined in that block. Solution: First step: Make a second hashtab that holds all script variables, also block-local ones, with more information. Files: src/structs.h, src/evalvars.c, src/ex_eval.c, src/vim9script.c, src/proto/vim9script.pro, src/scriptfile.c Patch 8.2.1846 Problem: Vim9: variables declared in a local block are not found in when a function is compiled. Solution: Look for script variables in sn_all_vars. Files: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/proto/userfunc.pro, src/ex_eval.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1847 Problem: Vim9: using negative value for unsigned type. Solution: Use zero instead of -1. Files: src/vim9compile.c Patch 8.2.1848 Problem: Crash when passing a NULL string or list to popup_settext(). Solution: Check for NULL pointers. (closes #7132) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1849 Problem: Vim9: garbage collection frees block-local variables. Solution: Mark all script variables as used. Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1850 Problem: "vat" does not select tags correctly over line break. Solution: Adjust the search pattern. (Aufar Gilbran, closes #7136) Files: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.1851 Problem: Vim9: "!" followed by space incorrectly used. Solution: Skip over trailing spaces. (closes #7131) Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1852 Problem: map() returning zero for NULL list is unexpected. Solution: Return the empty list. (closes #7133) Files: src/list.c, src/testdir/test_filter_map.vim, src/testdir/test_blob.vim Patch 8.2.1853 Problem: "to_f" is recognized at "topleft" modifier. Solution: Do not recognize modifier when "_" follows. (closes #7019) Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.1854 Problem: Vim9: crash when throwing exception for NULL string. (Dhiraj Mishra) Solution: Handle NULL string like empty string. (closes #7139) Files: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.1855 Problem: Vim9: get error message when nothing is wrong. Solution: Check called_emsg instead of did_emsg. (closes #7143) Files: src/vim9compile.c, src/vim9execute.c, src/errors.h Patch 8.2.1856 Problem: "2resize" uses size of current window. (Daniel Steinberg) Solution: Use size of resized window. (Yasuhiro Matsumoto, closes #7152) Files: src/ex_docmd.c, src/testdir/test_window_cmd.vim Patch 8.2.1857 Problem: Vim9: using job_status() on an unused var gives an error. Solution: Return "fail". (closes #7158) Files: src/job.c, src/testdir/test_vim9_assign.vim Patch 8.2.1858 Problem: Vim9: filter functions return number instead of bool. Solution: Return v:true instead of one. (closes #7144) Files: src/popupwin.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1859 Problem: Vim9: crash in unpack assignment. Solution: Make sure an error message is turned into an exception. (closes #7159) Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1860 Problem: Vim9: memory leak when throwing empty string. Solution: Free the empty string. Files: src/vim9execute.c Patch 8.2.1861 Problem: Vim9: no specific error when parsing lambda fails. Solution: Also give syntax errors when not evaluating. (closes #7154) Files: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1862 Problem: vim9: memory leak when compiling lambda fails. Solution: Call clear_evalarg(). Files: src/vim9compile.c Patch 8.2.1863 Problem: Json code not sufficiently tested. Solution: Add more test cases. (Dominique Pellé, closes #7166) Files: src/testdir/test_json.vim Patch 8.2.1864 Problem: Vim9: no error for wrong list type. Solution: Add flag to indicate a constant. (closes #7160) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1865 Problem: Vim9: add() does not check type of argument. Solution: Inline the add() call. (closes #7160) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1866 Problem: Vim9: appending to pushed blob gives wrong result. Solution: Set ga_maxlen when copying a blob. Files: src/blob.c, src/testdir/test_vim9_func.vim Patch 8.2.1867 Problem: Vim9: argument to add() not checked for blob. Solution: Add the BLOBAPPEND instruction. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1868 Problem: Vim9: no error for missing space after comma in dict. Solution: Check for white space. (closes #6672) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1869 Problem: Vim9: memory leak when using add(). Solution: Free the added item. Files: src/vim9execute.c Patch 8.2.1870 Problem: Vim9: no need to keep all script variables. Solution: Only keep script variables when a function was defined that could use them. Fix freeing static string on exit. Files: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, src/ex_eval.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1871 Problem: Using %v in 'errorformat' may fail before %Z. Solution: Set qf_viscol only when qf_col is set. (closes #7169) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1872 Problem: Matchfuzzy() does not prefer sequential matches. Solution: Give sequential matches a higher bonus. (Christian Brabandt, closes #7140) Files: src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1873 Problem: Vim9: missing white space when using <f-args>. Solution: Add spaces. (Christian J. Robinson) Files: src/usercmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1874 Problem: Can't do something just before leaving Insert mode. Solution: Add the InsertLeavePre autocommand event. (closes #7177) Files: runtime/doc/autocmd.txt, src/edit.c, src/vim.h, src/autocmd.c, src/testdir/test_edit.vim Patch 8.2.1875 Problem: Warning when building GTK gui. Solution: Add missing function parameter. Files: src/gui_gtk_f.c Patch 8.2.1876 Problem: Vim9: argument types for builtin functions are not checked at compile time. Solution: Add an argument type checking mechanism. Implement type checks for one function. Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim, src/testdir/Make_all.mak Patch 8.2.1877 (after 8.2.1876) Problem: Test for function list fails. Solution: Move "obsolete" comments one line up. Files: src/evalfunc.c Patch 8.2.1878 Problem: GTK: error for redefining function. (Tony Mechelynck) Solution: Remove "gtk_" prefix from local functions and prepend "gui_" to global functions. Files: src/gui_gtk_f.c, src/gui_gtk_f.h, src/gui_gtk.c, src/gui_gtk_x11.c Patch 8.2.1879 Problem: Vim9: argument types of insert() not checked when compiling. Solution: Add argument type checks for insert(). Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1880 Problem: Vim9: Asan complains about adding zero to NULL. Solution: Check for argument count first. Files: src/vim9compile.c Patch 8.2.1881 Problem: Cannot build with GTK3. Solution: Adjust form functions. Files: src/gui_gtk_f.c Patch 8.2.1882 Problem: Vim9: v:disallow_let is no longer needed. Solution: Remove v:disallow_let. Files: src/evalvars.c, src/vim.h, src/vim9compile.c Patch 8.2.1883 Problem: Compiler warnings when using Python. Solution: Adjust PyCFunction to also have the second argument. Use "int" return type for some functions. Insert "(void *)" to get rid of the remaining warnings. Files: src/if_py_both.h, src/if_python.c, src/if_python3.c Patch 8.2.1884 Problem: Compiler warning for uninitialized variable. (John Marriott) Solution: Initialize with NULL. Files: src/vim9compile.c, src/evalfunc.c Patch 8.2.1885 Problem: Filetype tests unnecessarily creates swap files. Solution: Disable 'swapfile'. (Ken Takata, closes #7183) Files: src/testdir/test_filetype.vim Patch 8.2.1886 Problem: Using ":silent!" in a popup filter has unexpected effect. Solution: Use did_emsg instead of called_emsg. (closes #7178) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1887 Problem: Github actions not optimally configured. Solution: Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi, closes #7184) Files: .github/workflows/ci-windows.yaml Patch 8.2.1888 Problem: Vim9: Getbufline(-1, 1, '$') gives an error. Solution: Return an empty list. (closes #7180) Files: src/evalbuffer.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1889 Problem: Vim9: erroneous error for missing white space after {}. Solution: Don't skip over white space after {}. (issue #7167) Files: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1890 Problem: Vim9: strange error for subtracting from a list. Solution: Check getting a number, not a string. (closes #7167) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1891 Problem: Vim9: skipping over expression doesn't handle line breaks. Solution: Pass evalarg to skip_expr(). (closes #7157) Files: src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/ex_docmd.c, src/misc1.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1892 Problem: Valgrind warns for using uninitialized access in tests. Solution: Fix condition for breaking out of loop. (Dominique Pellé, closes #7187) Files: src/terminal.c Patch 8.2.1893 Problem: Fuzzy matching does not support multiple words. Solution: Add support for matching white space separated words. (Yegappan Lakshmanan, closes #7163) Files: runtime/doc/eval.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1894 Problem: Vim9: command modifiers are not supported. Solution: Support "silent" and "silent!". Files: src/structs.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.1895 (after 8.2.1894) Problem: Vim9: silent command modifier test fails. Solution: Add missing changes. Files: src/ex_docmd.c Patch 8.2.1896 Problem: Valgrind warns for using uninitialized memory. Solution: NUL terminate the SmcOpenConnection() error message. (Dominique Pellé, closes #7194) Files: src/os_unix.c Patch 8.2.1897 Problem: Command modifiers are saved and set inconsistently. Solution: Separate parsing and applying command modifiers. Save values in cmdmod_T. Files: src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_cmds.h, src/vim9compile.c Patch 8.2.1898 Problem: Command modifier parsing always uses global cmdmod. Solution: Pass in cmdmod_T to use. Rename struct fields consistently. Files: src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c, src/diff.c, src/change.c, src/cmdhist.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c, src/help.c, src/if_cscope.c, src/indent.c, src/mark.c, src/memline.c, src/message.c, src/option.c, src/ops.c, src/os_unix.c, src/quickfix.c, src/register.c, src/scriptfile.c, src/search.c, src/session.c, src/tag.c, src/terminal.c, src/textformat.c, src/usercmd.c, src/vim9compile.c, src/window.c, src/proto/ex_docmd.pro Patch 8.2.1899 Problem: Crash in out-of-memory situation. Solution: Bail out if shell_name is NULL. (Dominique Pellé, closes #7196) Files: src/ex_cmds.c Patch 8.2.1900 Problem: Vim9: command modifiers do not work. Solution: Make most command modifiers work. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1901 Problem: Variable completion does not work in command line window. Solution: Use the "prevwin". (closes #7198) Files: src/evalvars.c, src/testdir/test_ins_complete.vim Patch 8.2.1902 Problem: Default option values are changed when using :badd for an existing buffer. Solution: When calling buflist_new() pass a zero line number. (closes #7195) Files: src/ex_cmds.c, src/testdir/test_buffer.vim Patch 8.2.1903 (after 8.2.1902) Problem: Buffer test fails with normal features. Solution: Use 'numberwidth' instead of 'conceallevel' in the test. Files: src/testdir/test_buffer.vim Patch 8.2.1904 Problem: Still using default option values after using ":badd +1". Solution: Find a window where options were set. Don't set the window when using ":badd". Files: src/buffer.c, src/ex_cmds.c, src/vim.h, src/testdir/test_buffer.vim Patch 8.2.1905 Problem: The wininfo list may contain stale entries. Solution: When closing a window remove any other entry where the window pointer is NULL. Files: src/buffer.c, src/proto/buffer.pro, src/window.c Patch 8.2.1906 Problem: Warning for signed/unsigned. Solution: Use size_t instead of int. (Mike Williams) Files: src/proto/usercmd.pro, src/usercmd.c, src/vim9execute.c Patch 8.2.1907 Problem: Complete_info().selected may be wrong. Solution: Update cp_number if it was never set. (issue #6945) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.1908 Problem: Lua is initialized even when not used. Solution: Put lua_init() after check for "eap->skip". (Christian Brabandt, closes #7191). Avoid compiler warnings. Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1909 Problem: Number of status line items is limited to 80. Solution: Dynamically allocate the arrays. (Rom Grk, closes #7181) Files: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, src/proto/buffer.pro, src/screen.c, src/structs.h, src/testdir/test_options.vim, src/testdir/test_statusline.vim, src/vim.h Patch 8.2.1910 Problem: Reading past the end of the command line. Solution: Check for NUL. (closes #7204) Files: src/ex_docmd.c, src/testdir/test_edit.vim Patch 8.2.1911 Problem: Tiny build fails. Solution: Add #ifdef. Files: src/insexpand.c Patch 8.2.1912 Problem: With Python 3.9 some tests fail. Solution: Take into account the different error message. (James McCoy, closes #7210) Files: src/testdir/test_python3.vim Patch 8.2.1913 Problem: GTK GUI: rounding for the cell height is too strict. Solution: Round up above 15/16 of a pixel. (closes #7203) Files: src/gui_gtk_x11.c Patch 8.2.1914 Problem: Vim9: cannot put line break in expression for '=' register. Solution: Pass fgetline to set_expr_line(). (closes #7209) Files: src/register.c, src/proto/register.pro, src/ex_docmd.c, src/eval.c, src/proto/eval.pro, src/misc2.c, src/testdir/test_vim9_script.vim Patch 8.2.1915 Problem: Vim9: error for wrong number of arguments is not useful. Solution: Mention whatever we have for the name. (closes #7208) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1916 Problem: Vim9: function call is aborted even when "silent!" is used. Solution: Use did_emsg instead of called_emsg. (closes #7213) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1917 Problem: No test for improved Man command. Solution: Test that shell arguments are properly escaped. Files: src/testdir/test_man.vim Patch 8.2.1918 Problem: Vim9: E1100 mentions :let. Solution: Mention "var". (closes #7207) Files: src/vim9script.c, src/errors.h Patch 8.2.1919 Problem: Assert_fails() setting emsg_silent changes normal execution. Solution: Use a separate flag in_assert_fails. Files: src/testing.c, src/globals.h, src/buffer.c, src/change.c, src/fileio.c, src/insexpand.c, src/message.c, src/misc1.c, src/normal.c, src/screen.c, src/term.c, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/gen_opt_test.vim, src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim, src/testdir/test_popup.vim, src/testdir/test_terminal.vim Patch 8.2.1920 Problem: Listlbr test fails when run after another test. Solution: Add test separately to list of test targets. Files: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim Patch 8.2.1921 Problem: Fuzzy matching does not recognize path separators. Solution: Add a bonus for slash and backslash. (Yegappan Lakshmanan, closes #7225) Files: src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1922 Problem: Win32: scrolling doesn't work properly when part of window is off-screen. Solution: Fall back to GDI scrolling if part of the window is off-screen. Handle multi-monitor setup better. (Ken Takata, closes #7219) Files: src/gui_w32.c Patch 8.2.1923 Problem: Vim9: "filter" command modifier doesn't work. Solution: Check for space on char before argument. (closes #7216, closes #7222) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1924 Problem: Vim9: crash when indexing dict with NULL key. Solution: Use empty string instead of NULL. (closes #7229) Make error message more useful for empty string. Files: src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim Patch 8.2.1925 (after 8.2.1924) Problem: List/dict test fails. Solution: Correct expected exception. File: src/testdir/test_listdict.vim Patch 8.2.1926 Problem: Cannot use a space in 'spellfile'. (Filipe Brandenburger) Solution: Permit using a space. (closes #7230) Files: src/spell.c, src/testdir/gen_opt_test.vim Patch 8.2.1927 Problem: Vim9: get unknown error with an error in a timer function. Solution: Use did_emsg instead of called_emsg. (closes #7231) Files: src/vim9compile.c, src/vim9execute.c Patch 8.2.1928 Problem: Vim9: "silent!" not effective when list index is wrong. Solution: Ignore list index failure when emsg_silent is set. (closes #7232) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1929 Problem: MS-Windows: problem loading Perl 5.32. Solution: Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes #7234) Files: src/if_perl.xs Patch 8.2.1930 Problem: Wrong input if removing shift results in special key code. Solution: Handle special key codes. (closes #7189) Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.1931 Problem: Vim9: arguments of extend() not checked at compile time. Solution: Add argument type checking for extend(). Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1932 Problem: Compiler warnings when building with Athena GUI. Solution: Fix function signatures. Files: src/gui_at_fs.c Patch 8.2.1933 Problem: Cannot sort using locale ordering. Solution: Add a flag for :sort and sort() to use the locale. (Dominique Pellé, closes #7237) Files: runtime/doc/change.txt, runtime/doc/eval.txt, src/ex_cmds.c, src/list.c, src/testdir/test_sort.vim Patch 8.2.1934 Problem: Vim9: command modifiers in :def function not tested. Solution: Add tests. Fix using modifier before filter command. Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1935 (after 8.2.1933) Problem: Sort test fails on Mac. Solution: Disable the sort test with locale on Mac. Files: src/testdir/test_sort.vim Patch 8.2.1936 Problem: Session sets the local 'scrolloff' value to the global value. Solution: Do not let restoring the global option value change the local value. Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.1937 Problem: Vim9: test for confirm modifier fails in some situations. Solution: Add a short wait. Handle failure better. Files: src/testdir/term_util.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.1938 Problem: Wiping out a terminal buffer makes some tests fail. Solution: Do not wipe out the terminal buffer unless wanted. Files: src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim Patch 8.2.1939 Problem: Invalid memory access in Ex mode with global command. Solution: Make sure the cursor is on a valid line. (closes #7238) Files: src/move.c, src/testdir/test_ex_mode.vim Patch 8.2.1940 Problem: Vim9: browse modifier test fails on Mac. Solution: Only test when the +browse feature is available. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.1941 Problem: Ex mode test fails on MS-Windows with GUI. Solution: Skip the test when using gvim. Files: src/testdir/test_ex_mode.vim Patch 8.2.1942 Problem: Insufficient test coverage for the Netbeans interface. Solution: Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan, closes #7240) Files: runtime/doc/netbeans.txt, src/mouse.c, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim, src/testdir/test_quickfix.vim Patch 8.2.1943 Problem: Vim9: wrong error message when colon is missing. Solution: Check for a missing colon. (issue #7239) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1944 Problem: Netbeans test is flaky. Solution: Add a short delay. (Yegappan Lakshmanan, closes #7246) Files: src/testdir/test_netbeans.vim Patch 8.2.1945 Problem: Crash when passing NULL function to reduce(). Solution: Check for NULL pointer and give an error. (Dominique Pellé, closes #7243) Files: src/list.c, src/errors.h, src/testdir/test_listdict.vim Patch 8.2.1946 Problem: sort() with NULL string not tested. Solution: Add a test. use v:collate. (Dominique Pellé, closes #7247) Files: src/testdir/test_sort.vim Patch 8.2.1947 Problem: Crash when using "zj" without folds. (Sean Dewar) Solution: Check for at least one fold. (closes #7245) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1948 Problem: GUI: crash when handling message while closing a window. (Srinath Avadhanula) Solution: Don't handle message while closing a window. (closes #7250) Files: src/window.c, src/globals.h, src/getchar.c Patch 8.2.1949 Problem: Vim9: using extend() on null dict is silently ignored. Solution: Give an error message. Initialize a dict variable with an empty dictionary. (closes #7251) Files: src/errors.h, src/list.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.1950 Problem: Vim9: crash when compiling function fails when getting type. Solution: Handle NULL type. (closes #7253) Files: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1951 (after 8.2.1949) Problem: Test for list and dict fails. Solution: Adjust for using an empty list/dict for a null one. Files: src/testdir/test_listdict.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1952 Problem: Vim9: crash when using a NULL dict key. Solution: Use a NULL dict key like an empty string. (closes #7249) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1953 Problem: Vim9: extra "unknown" error after other error. Solution: Restore did_emsg count after EXEC instruction. (closes #7254) Improve error message from assert_fails() Files: src/vim9execute.c, src/testing.c, src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim Patch 8.2.1954 Problem: Vim9: not all command modifiers are tested. Solution: Add tests for "keep" modifiers. Fix that marks are lost even though ":lockmarks" is used. Files: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1955 Problem: Vim9: not all command modifiers are tested. Solution: Add tests for remaining modifiers. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.1956 Problem: Vim9: cannot specify argument types for lambda. Solution: Allow adding argument types. Check arguments when calling a function reference. Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1957 Problem: Diff and cursorcolumn highlighting don't mix. Solution: Fix condition for what attribute to use. (Christian Brabandt, closes #7258, closes #7260) Files: src/drawline.c, src/testdir/dumps/Test_diff_cuc_01.dump, src/testdir/dumps/Test_diff_cuc_02.dump, src/testdir/dumps/Test_diff_cuc_03.dump, src/testdir/dumps/Test_diff_cuc_04.dump, src/testdir/test_diffmode.vim Patch 8.2.1958 (after 8.2.1956) Problem: Build failure with timers. Solution: Add missing change. Files: src/popupwin.c Patch 8.2.1959 Problem: Crash when terminal buffer name is made empty. (Dhiraj Mishra) Solution: Fall back to "[No Name]". (closes #7262) Files: src/buffer.c, src/proto/buffer.pro, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1960 Problem: Warning for uninitialized variable. Solution: Initialize the variable. Files: src/evalfunc.c Patch 8.2.1961 Problem: Various comments can be improved. Solution: Various comment adjustments. Files: src/dict.c, src/structs.h, src/time.c, src/testdir/shared.vim, src/testdir/test_netbeans.vim, src/gui_motif.c Patch 8.2.1962 Problem: Netbeans may access freed memory. Solution: Check the buffer pointer is still valid. Add a test. (Yegappan Lakshmanan, closes #7248) Files: src/netbeans.c, src/testdir/test_netbeans.vim Patch 8.2.1963 Problem: Crash when using a popup window with "latin1" encoding. Solution: Don't use ScreenLinesUC when enc_utf8 is false. (closes #7241) Files: src/screen.c, src/terminal.c, src/testdir/test_popupwin.vim Patch 8.2.1964 Problem: Not all ConTeXt files are recognized. Solution: Add two patterns. (closes #7263) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1965 Problem: Vim9: tests fail without the channel feature. Solution: Check if the channel feature is present. (Dominique Pellé, closes #7270) Files: src/testdir/test_vim9_expr.vim Patch 8.2.1966 Problem: Popup becomes current window after closing a terminal window. Solution: When restoring the window after executing autocommands, check that the window ID is still the same. (Naruhiko Nishino, closes #7272) Files: src/autocmd.c, src/window.c, src/proto/window.pro, src/structs.h, src/testdir/test_popupwin.vim Patch 8.2.1967 Problem: The session file does not restore the alternate file. Solution: Add ":balt". Works like ":badd" and also sets the buffer as the alternate file. Use it in the session file. (closes #7269, closes #6714) Files: runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_docmd.c, src/vim.h, src/ex_cmds.c, src/session.c, src/testdir/test_buffer.vim Patch 8.2.1968 Problem: Vim9: has() assumes a feature does not change dynamically. Solution: Check whether a feature may change dynamically. (closes #7265) Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_disassemble.vim Patch 8.2.1969 Problem: Vim9: map() may change the list or dict item type. Solution: Add mapnew(). Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/test_filter_map.vim Patch 8.2.1970 Problem: It is easy to make mistakes when cleaning up swap files after the system crashed. Solution: Warn for the process still running after recovery. Do not automatically delete a swap file created on another system. (David Fries, closes #7273) Files: src/memline.c, src/testdir/test_swap.vim Patch 8.2.1971 Problem: Memory leak when map() fails. Solution: Clear the typval. Files: src/list.c Patch 8.2.1972 Problem: Crash when recreating nested fold. Solution: Check for empty growarray. (closes #7278) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1973 Problem: Finding a patch number can be a bit slow. Solution: Use binary search. (closes #7279) Files: src/version.c Patch 8.2.1974 Problem: Vim9: test for has('gui_running') fails with VIMDLL. Solution: Adjust the #ifdef. (Ken Takata, closes #7276) Files: src/evalfunc.c Patch 8.2.1975 Problem: Win32: memory leak when encoding conversion fails. Solution: Free the allocated memory. (Ken Takata, closes #7277) Files: src/os_win32.c Patch 8.2.1976 Problem: Cannot backspace in prompt buffer after using cursor-left. (Maxim Kim) Solution: Ignore "arrow_used" in a prompt buffer. (closes #7281) Files: src/edit.c, src/testdir/test_prompt_buffer.vim Patch 8.2.1977 Problem: Vim9: error for using a string in a condition is confusing. Solution: Give a more specific error. Also adjust the compile time type checking for || and &&. Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/typval.c, src/errors.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1978 Problem: Making a mapping work in all modes is complicated. Solution: Add the <Cmd> special key. (Yegappan Lakshmanan, closes #7282, closes 4784, based on patch by Bjorn Linse) Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, runtime/doc/map.txt, src/edit.c, src/errors.h, src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/insexpand.c, src/keymap.h, src/map.c, src/misc2.c, src/normal.c, src/ops.c, src/proto/getchar.pro, src/screen.c, src/terminal.c, src/testdir/test_mapping.vim Patch 8.2.1979 Problem: "term_opencmd" option of term_start() is truncated. (Sergey Vlasov) Solution: Allocate the buffer to hold the command. (closes #7284) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1980 Problem: Vim9: some tests are not done at the script level. Solution: Use CheckDefAndScriptSuccess() in more places. Fix uncovered problems. Files: src/eval.c, src/list.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1981 Problem: MinGW: parallel compilation might fail. Solution: Add dependencies on $(OUTDIR). (Masamichi Abe, closes #7287) Files: src/Make_cyg_ming.mak Patch 8.2.1982 Problem: Quickfix window not updated when adding invalid entries. Solution: Update the quickfix buffer properly. (Yegappan Lakshmanan, closes #7291, closes #7271) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1983 Problem: ml_get error when using <Cmd> to open a terminal. Solution: If the window changed reset the incsearch state. (closes #7289) Files: src/ex_getln.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_from_cmd.dump Patch 8.2.1984 Problem: Cannot use :vimgrep in omni completion, causing C completion to fail. Solution: Add the EX_LOCK_OK flag to :vimgrep. (closes #7292) Files: src/ex_cmds.h, src/testdir/test_quickfix.vim Patch 8.2.1985 Problem: Crash when closing terminal popup with <Cmd> mapping. Solution: Check b_term is not NULL. (closes #7294) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1986 Problem: Expression test is flaky on Appveyor. Solution: Temporarily disable the test in MS-Windows. Files: src/testdir/test_vim9_expr.vim Patch 8.2.1987 Problem: MS-Windows: Win32.mak is no longer needed. Solution: Do not include Win32.mak. (Jason McHugh, closes #7290) Files: src/Make_mvc.mak, src/INSTALLpc.txt Patch 8.2.1988 Problem: Still in Insert mode when opening terminal popup with a <Cmd> mapping in Insert mode. Solution: Exit Insert mode. (closes #7295) Files: src/edit.c, src/testdir/test_terminal.vim Patch 8.2.1989 Problem: Info popup triggers WinEnter and WinLeave autocommands. Solution: Suppress autocommands for the info popup. (closes #7296) Files: src/popupmenu.c, src/testdir/test_popupwin.vim Patch 8.2.1990 Problem: Cursor position wrong in terminal popup with finished job. Solution: Only add the top and left offset when not done already. (closes #7298) Files: src/popupwin.c, src/structs.h, src/drawline.c, src/move.c, src/terminal.c, src/testdir/dumps/Test_terminal_popup_m1.dump Patch 8.2.1991 Problem: Coverity warns for not using the ga_grow() return value. Solution: Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes #7303) Files: src/getchar.c Patch 8.2.1992 Problem: Build fails with small features. Solution: Add #ifdef. Files: src/move.c Patch 8.2.1993 Problem: Occasional failure of the netbeans test. Solution: Add "silent!". (Yegappan Lakshmanan, closes #7304) Files: src/testdir/test_netbeans.vim Patch 8.2.1994 (after 8.2.1981) Problem: MS-Windows: MinGW always does a full build. Solution: Only check if $OUTDIR exists. (Masamichi Abe, closes #7311) Files: src/Make_cyg_ming.mak Patch 8.2.1995 Problem: The popup menu can cause too much redrawing. Solution: Reduce the length of the displayed text. (Yasuhiro Matsumoto, closes #7306) Files: src/popupmenu.c Patch 8.2.1996 Problem: Vim9: invalid error for argument of extend(). Solution: Check if the type could match. (closes #7299) Files: src/evalfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.1997 Problem: Window changes when using bufload() while in a terminal popup. Solution: When searching for a window by ID also find a popup window. (closes #7307) Files: src/window.c, src/testdir/test_terminal.vim Patch 8.2.1998 Problem: Terminal Cmd test sometimes fails to close popup. Solution: Add "term_finish" option. Files: src/testdir/test_terminal.vim Patch 8.2.1999 Problem: Terminal popup test sometimes fails. Solution: Wait for the popup to close. Files: src/testdir/test_terminal.vim Patch 8.2.2000 Problem: Vim9: dict.key assignment not implemented yet. Solution: Implement dict.key assignment. (closes #7312) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2001 Problem: Vim9: :def function does not apply 'maxfuncdepth'. Solution: Use 'maxfuncdepth'. (issue #7313) Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.2002 Problem: Vim9: lambda argument shadowed by function name. Solution: Let function name be shadowed by lambda argument. (closes #7313) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2003 Problem: Build error with +conceal but without +popupwin. Solution: Add #ifdef. (Tom Ryder, closes #7316) Files: src/drawline.c Patch 8.2.2004 (after 8.2.2002) Problem: Compiler warning for uninitialized variable. Solution: Initialize "ufunc". (John Marriott) Files: src/vim9compile.c Patch 8.2.2005 Problem: Redoing a mapping with <Cmd> doesn't work properly. Solution: Fill the redo buffer. Use "<SNR>" instead of a key code. (closes #7282) Files: src/ops.c, src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.2006 Problem: .pbtxt files are not recognized. Solution: Recognize .pbtxt as protobuf text buffers. (closes #7326) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2007 Problem: Test for insert mode in popup is not reliable. Solution: Wait for the popup to disappear. (Ozaki Kiichi, closes #7321) Files: src/testdir/test_terminal.vim Patch 8.2.2008 Problem: MS-Windows GUI: handling channel messages lags. Solution: Reduce the wait time from 100 to 10 msec. (closes #7097) Files: src/gui_w32.c Patch 8.2.2009 Problem: MS-Windows: setting $LANG in gvimext only causes problems. Solution: Do not set $LANG. (Ken Takata, closes #7325) Files: src/GvimExt/gvimext.cpp Patch 8.2.2010 Problem: Vim9: compiling fails for unreachable return statement. Solution: Fix it. (closes #7319) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2011 Problem: "syn sync" reports a very large number. Solution: Use "at the first line". Files: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2012 Problem: Vim9: confusing error message when using bool wrongly. Solution: Mention "Bool" instead of "Special". (closes #7323) Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.2013 Problem: Vim9: not skipping white space after unary minus. Solution: Skip whitespace. (closes #7324) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2014 Problem: Using CTRL-O in a prompt buffer moves cursor to start of the line. Solution: Do not move the cursor when restarting edit. (closes #7330) Files: src/job.c, src/testdir/test_prompt_buffer.vim Patch 8.2.2015 Problem: Vim9: literal dict #{} is not like any other language. Solution: Support the JavaScript syntax. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/proto/vim9compile.pro, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2016 Problem: Swap file test is a little flaky. Solution: Don't set a byte to a fixed value, increment it. Files: src/testdir/test_swap.vim Patch 8.2.2017 (after 8.2.2015) Problem: Missing part of the dict change. Solution: Also change the script level dict. Files: src/dict.c Patch 8.2.2018 Problem: Vim9: script variable not found from lambda. Solution: In a lambda also check the script hashtab for a variable without a scope. (closes #7329) Files: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.2019 (after 8.2.2016) Problem: Swap file test fails on MS-Windows. Solution: Add four to the process ID. (Ken Takata, closes #7333) Files: src/testdir/test_swap.vim Patch 8.2.2020 Problem: Some compilers do not like the "namespace" argument. Solution: Rename to "use_namespace". (closes #7332) Files: src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.2021 Problem: Vim9: get E1099 when autocommand resets did_emsg. Solution: Add did_emsg_cumul. (closes #7336) Files: src/globals.h, src/ex_docmd.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2022 Problem: Vim9: star command recognized erroneously. Solution: Give an error for missing colon. (issue #7335) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2023 Problem: Vim: memory leak when :execute fails. Solution: Clear the growarray. Files: src/vim9execute.c Patch 8.2.2024 Problem: Flicker when redrawing a popup with a title and border. Solution: Do not redraw the border where the title is displayed. (Naruhiko Nishino, closes #7334) Files: src/popupwin.c Patch 8.2.2025 Problem: Amiga: Not all colors are used on OS4. Solution: Adjust the #ifdef to include __amigaos4__. (Ola Söder, closes #7328) Files: src/term.c Patch 8.2.2026 Problem: Coverity warns for possibly using not NUL terminated string. Solution: Put a NUL in b0_hname just in case. Files: src/memline.c Patch 8.2.2027 Problem: Coverity warns for uninitialized field. Solution: Set "v_lock". Files: src/list.c Patch 8.2.2028 Problem: Coverity warns for using an uninitialized variable. Solution: Initialize to NULL. Files: src/eval.c Patch 8.2.2029 Problem: Coverity warns for not checking return value. Solution: Check that u_save_cursor() returns OK. Files: src/ops.c Patch 8.2.2030 Problem: Some tests fail on Mac. Solution: Avoid Mac test failures. Add additional test for wildmenu. (Yegappan Lakshmanan, closes #7341) Files: src/testdir/runtest.vim, src/testdir/test_cmdline.vim, src/testdir/test_options.vim, src/testdir/test_popupwin.vim Patch 8.2.2031 Problem: Some tests fail when run under valgrind. Solution: Avoid timing problems. Files: src/testdir/test_vim9_func.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_debugger.vim, src/testdir/test_quotestar.vim Patch 8.2.2032 Problem: Cabalconfig and cabalproject filetypes not recognized. Solution: Detect more cabal files. (Marcin Szamotulski, closes #7339) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2033 Problem: Vim9: :def without argument gives compilation error. Solution: Add the DEF instruction. (closes #7344) Files: src/ex_docmd.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2034 Problem: Vim9: list unpack in for statement not compiled yet. Solution: Compile list unpack. (closes #7345) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2035 Problem: MS-Windows: some tests may fail. Solution: Avoid test failures. (Yegappan Lakshmanan, closes #7346) Files: src/testdir/test_channel.vim, src/testdir/test_ex_mode.vim, src/testdir/test_functions.vim Patch 8.2.2036 Problem: Current buffer is messed up if creating a new buffer for the quickfix window fails. Solution: Check that creating the buffer succeeds. (closes #7352) Files: src/quickfix.c, src/testdir/test_quickfix.vim, src/testdir/dumps/Test_quickfix_window_fails.dump Patch 8.2.2037 Problem: Compiler test depends on list of compiler plugins. Solution: Compare with the actual list of compiler plugins. Files: src/testdir/test_compiler.vim Patch 8.2.2038 Problem: Compiler test fails on MS-Windows. Solution: Sort the found compiler plugin names. Files: src/testdir/test_compiler.vim Patch 8.2.2039 Problem: Viminfo is not written when creating a new file. Solution: Set "b_marks_read" in the new buffer. (Christian Brabandt, closes #7350) Files: src/bufwrite.c, src/testdir/test_viminfo.vim Patch 8.2.2040 Problem: Terminal buffer disappears even when 'bufhidden' is "hide". (Sergey Vlasov) Solution: Check 'bufhidden' when a terminal buffer becomes hidden. (closes #7358) Files: src/buffer.c, src/testdir/test_terminal.vim Patch 8.2.2041 Problem: Haskell filetype not optimally recognized. Solution: Recognize all *.hsc files as Haskell. (Marcin Szamotulski, closes #7354) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2042 Problem: Build failure with +profile but without +reltime. Solution: Adjust #ifdef. (Christian Brabandt, closes #7361) Files: src/syntax.c Patch 8.2.2043 Problem: GTK3: white border around text stands out. Solution: Use current theme color. (closes #7357, issue #349) Files: src/gui_gtk_x11.c Patch 8.2.2044 Problem: MS-Windows: swap file test sometimes fails. Solution: Use a more reliable way to change the process ID. When "timeout" fails use "ping" to wait up to ten minutes. (Ken Takata, closes #7365) Files: .github/workflows/ci-windows.yaml, src/testdir/test_swap.vim Patch 8.2.2045 Problem: Highlighting a character too much with incsearch. Solution: Check "search_match_endcol". (Christian Brabandt, closes #7360) Files: src/drawline.c, src/testdir/test_search.vim, src/testdir/dumps/Test_incsearch_newline1.dump, src/testdir/dumps/Test_incsearch_newline2.dump, src/testdir/dumps/Test_incsearch_newline3.dump, src/testdir/dumps/Test_incsearch_newline4.dump, src/testdir/dumps/Test_incsearch_newline5.dump Patch 8.2.2046 Problem: Some test failures don't give a clear error. Solution: Use assert_match() and assert_fails() instead of assert_true(). (Ken Takata, closes #7368) Files: src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim Patch 8.2.2047 Problem: Amiga: FEAT_ARP defined when it should not. Solution: Adjust #ifdef. (Ola Söder, closes #7370) Files: src/feature.h Patch 8.2.2048 Problem: Amiga: obsolete code. Solution: Remove the unused lines. (Ola Söder, closes #7373) Files: src/gui.c Patch 8.2.2049 Problem: Amiga: obsolete function. Solution: Remove the function. (Ola Söder, closes #7374) Files: src/memfile.c Patch 8.2.2050 Problem: Search test contains unneeded sleeps. Solution: Rename the function, remove sleeps. (Christian Brabandt, closes #7369) Files: src/testdir/test_search.vim Patch 8.2.2051 Problem: Vim9: crash when aborting a user function call. Solution: Do not use the return value when aborting. (closes #7372) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2052 Problem: Vim9: "edit +4 fname" gives an error. (Naruhiko Nishino) Solution: Allow using a range in the +cmd argument. (closes #7364) Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2053 Problem: Vim9: lambda doesn't accept argument types. Solution: Optionally accept argument types at the script level. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2054 Problem: Amiga: FEAT_ARP defined when it should not. Solution: Adjust "||" to "&&" in #ifdef. (Ola Söder, closes #7375) Files: src/feature.h Patch 8.2.2055 Problem: MS-Windows: two Vim instances may use the same temp file. Solution: Use the process ID for the temp name. (Ken Takata, closes #7378) Files: src/fileio.c Patch 8.2.2056 Problem: Configure fails when building with the "implicit-function-declaration" error enabled, specifically on Mac. Solution: Declare the functions like in the source code. (suggestion by Clemens Lang, closes #7380) Files: src/configure.ac, src/auto/configure Patch 8.2.2057 Problem: Getting the selection may trigger TextYankPost autocmd. Solution: Only trigger the autocommand when yanking in Vim, not for getting the selection. (closes #7367) Files: src/clipboard.c, src/normal.c, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.2058 Problem: Using mkview/loadview changes the jumplist. Solution: Use ":keepjumps". Don't let ":badd" or ":balt" change the jumplist. (closes #7371) Files: src/session.c, src/ex_docmd.c, src/testdir/test_mksession.vim Patch 8.2.2059 Problem: Amiga: can't find plugins. Solution: Do not use "**" in the pattern. (Ola Söder, closes #7384) Files: src/main.c Patch 8.2.2060 Problem: Check for features implemented with "if". Solution: Use the Check commands. (Ken Takata, closes #7383) Files: src/testdir/test_autocmd.vim, src/testdir/test_compiler.vim, src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, src/testdir/test_expr.vim, src/testdir/test_fold.vim Patch 8.2.2061 Problem: Vim9: E1030 error when using empty string for term_sendkeys(). Solution: Don't check for an invalid type unless the terminal can't be found. (closes #7382) Files: src/terminal.c, src/testdir/test_termcodes.vim Patch 8.2.2062 Problem: <Cmd> does not handle CTRL-V. Solution: Call get_literal() after encountering CTRL-V. (closes #7387) Files: src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.2063 Problem: Vim9: only one level of indexing supported. Solution: Handle more than one index in an assignment. Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.2064 Problem: terminal: cursor is on while redrawing, causing flicker. Solution: Switch the cursor off while redrawing. Always add the top and left offset to the cursor position when not done already. (closes #5943) Files: src/terminal.c, src/popupwin.c Patch 8.2.2065 Problem: Using map() and filter() on a range() is inefficient. Solution: Do not materialize the range. (closes #7388) Files: src/list.c, src/testdir/test_functions.vim Patch 8.2.2066 Problem: Vim9: assignment with += doesn't work. Solution: Do not see the "+" as an addition operator. Files: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2067 (after 8.2.2064) Problem: Cursor position in popup terminal is wrong. Solution: Don't check the flags. Files: src/terminal.c, src/testdir/test_popupwin.vim Patch 8.2.2068 Problem: Transparent syntax item uses start/end of containing region. Solution: Do not change the startpos and endpos of a transparent region to that of its containing region. (Adrian Ghizaru, closes #7349, closes #7391) Files: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2069 Problem: The quickfix window is not updated after setqflist(). Solution: Update the quickfix buffer. (Yegappan Lakshmanan, closes #7390, closes #7385) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.2070 Problem: Can't get the exit value in VimLeave or VimLeavePre autocommands. Solution: Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes #7395) Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/evalvars.c, src/main.c, src/testdir/test_exit.vim, src/vim.h Patch 8.2.2071 Problem: Vim9: list assign doesn't accept an empty remainder list. Solution: Recognize list assignment with ";". Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2072 Problem: Vim9: list assign not well tested. Solution: Test with different destinations. Fix white space error. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2073 Problem: Vim9: for with unpack only works for local variables. Solution: Recognize different destinations. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2074 Problem: Vim9: using :normal from Vim9 script can't handle range. Solution: Execute a :normal command in legacy script context. (closes #7401) Files: src/structs.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2075 Problem: Error for const argument to mapnew(). Solution: Don't give an error. (closes #7400) Files: src/list.c, src/testdir/test_filter_map.vim Patch 8.2.2076 Problem: MS-Windows console: sometimes drops typed characters. Solution: Do not wait longer than 10 msec for input. (issue #7164) Files: src/os_win32.c Patch 8.2.2077 Problem: Build failure with small features. Solution: Add #ifdef. Files: src/structs.h, src/ex_docmd.c Patch 8.2.2078 Problem: Illegal memory access when using :print on invalid text. (Dhiraj Mishra) Solution: Check for more composing characters than supported. (closes #7399) Files: src/message.c, src/testdir/test_utf8.vim Patch 8.2.2079 Problem: Vim9: cannot put a linebreak before or after "in" of ":for". Solution: Skip over linebreak. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2080 Problem: Vim9: no proper error message for using s:var in for loop. Solution: Give a specific error. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2081 Problem: Vim9: cannot handle a linebreak after "=" in assignment. Solution: Skip over linebreak. (closes #7407) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2082 Problem: Vim9: can still use the deprecated #{} dict syntax. Solution: Remove support for #{} in Vim9 script. (closes #7406, closes #7405) Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim Patch 8.2.2083 Problem: Vim9: crash when using ":silent!" and getting member fails. Solution: Jump to on_fatal_error. (closes #7412) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2084 Problem: CTRL-V U doesn't work to enter a Unicode character when modifyOtherKeys is effective. (Ken Takata) Solution: Add a flag to get_literal() for the shift key. (closes #7413) Files: src/edit.c, src/proto/edit.pro, src/ex_getln.c, src/getchar.c, src/normal.c, src/testdir/test_termcodes.vim Patch 8.2.2085 Problem: Qt translation file is recognized as typescript. Solution: Check the first line for "<?xml". (closes #7418) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2086 Problem: Libvterm tests are only run on Linux. Solution: Use static libraries. (Ozaki Kiichi, closes #7419) Files: .travis.yml, src/Makefile, src/libvterm/Makefile, src/libvterm/t/run-test.pl Patch 8.2.2087 Problem: Vim9: memory leak when statement is truncated. Solution: Increment the number of local variables. Files: src/vim9compile.c Patch 8.2.2088 Problem: Vim9: script test sometimes fails. Solution: Unlet variables. Files: src/testdir/test_vim9_script.vim Patch 8.2.2089 Problem: Libvterm test fails to build on Mac. Solution: Adjust configure to remove a space between -L and the path that follows. Files: src/configure.ac, src/auto/configure Patch 8.2.2090 Problem: Vim9: dict does not accept a key in quotes. Solution: Recognize a key in single or double quotes. Files: runtime/doc/vim9.txt, src/dict.c, src/proto/dict.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2091 Problem: MS-Windows: build warnings. Solution: Add a #pragma to suppress the deprecation warning. (Ken Takata) Avoid using a non-ASCII character. (closes #7421) Files: src/message.c, src/os_win32.c Patch 8.2.2092 Problem: Vim9: unpredictable errors for script tests. Solution: Use a different script file name for each run. Files: src/testdir/vim9.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_quickfix.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2093 Problem: Vim9: script test sometimes fails. Solution: Do not find a script variable by its typval if the name was cleared. Files: src/vim9script.c Patch 8.2.2094 Problem: When an expression fails getting the next command may be wrong. Solution: Do not check for a next command after :eval fails. (closes #7415) Files: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2095 Problem: Vim9: crash when failed dict member is followed by concatenation. Solution: Remove the dict from the stack. (closes #7416) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2096 Problem: Vim9: command modifiers not restored after assignment. Solution: Jump to nextline instead of using continue. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2097 Problem: Vim9: using :silent! when calling a function prevents aborting that function. Solution: Add emsg_silent_def and did_emsg_def. Files: src/globals.h, src/message.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2098 Problem: Vim9: function argument of sort() and map() not tested. Solution: Add a couple of tests. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.2099 Problem: Vim9: some checks are not tested. Solution: Add a few more tests. Give better error messages. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2100 Problem: Insufficient testing for function range and dict. Solution: Add a few tests. (Dominique Pellé, closes #7428) Files: src/testdir/test_functions.vim, src/testdir/test_lambda.vim, src/testdir/test_signals.vim, src/testdir/test_user_func.vim Patch 8.2.2101 Problem: Vim9: memory leak when literal dict has an error and when an expression is not complete. Solution: Clear the typval and the growarray. Files: src/dict.c, src/vim9compile.c Patch 8.2.2102 Problem: Vim9: not all error messages tested. Solution: Add a few test cases. Files: src/testdir/test_vim9_func.vim Patch 8.2.2103 Problem: Vim9: unreachable code. Solution: Remove the code to prepend s: to the variable name Files: src/vim9compile.c Patch 8.2.2104 Problem: Build problem with Ruby 2.7. Solution: Adjust function declarations. (Ozaki Kiichi, closes #7430) Files: src/configure.ac, src/auto/configure, src/if_ruby.c Patch 8.2.2105 Problem: Sound test is a bit flaky. Solution: Use WaitForAssert(). (Dominique Pellé, closes #7429) Files: src/testdir/test_sound.vim Patch 8.2.2106 Problem: TOML files are not recognized. Solution: Match *.toml. (issue #7432) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2107 Problem: Vim9: some errors not tested. Solution: Add tests. Fix getting the right error. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2108 Problem: Vim9: no test to check for :let error. Solution: Add a test. Rename tests from _let_ to _var_. Files: src/testdir/test_vim9_assign.vim Patch 8.2.2109 Problem: "vim -" does not work well when modifyOtherKeys is enabled and a shell command is executed on startup. Solution: Only change modifyOtherKeys when executing a shell command in raw mode. Files: src/os_unix.c Patch 8.2.2110 Problem: Cannot use ":shell" when reading from stdin. (Gary Johnson) Solution: Revert patch 8.2.1833. Files: src/main.c Patch 8.2.2111 Problem: GTK: Menu background is the same color as the main window. Solution: Fix white space around the text in another way. (closes #7437, closes #7427) Files: src/gui_gtk_x11.c Patch 8.2.2112 Problem: Running tests may leave some files behind. Solution: Delete the right files. Fix a few typos. (Dominique Pellé, closes #7436) Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, src/testdir/test_mksession.vim Patch 8.2.2113 Problem: MS-Windows GUI: crash after using ":set guifont=" four times. Solution: Check for NULL pointer. (Ken Takata, closes #7434) Files: src/gui_dwrite.cpp, src/testdir/test_gui.vim Patch 8.2.2114 Problem: Vim9: unreachable code in assignment. Solution: Remove impossible condition and code. Files: src/vim9compile.c Patch 8.2.2115 Problem: Vim9: some errors not tested for; dead code. Solution: Add a test. Remove dead code. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2116 Problem: MS-Windows GUI: test for 'guifont' is incomplete. Solution: Set 'renderoptions'. (Christian Brabandt) Files: src/testdir/test_gui.vim Patch 8.2.2117 Problem: Some functions use any value as a string. Solution: Check that the value is a non-empty string. Files: src/typval.c, src/proto/typval.pro, src/mbyte.c, src/filepath.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2118 Problem: Dead code in the job support. (Dominique Pellé) Solution: Define USE_ARGV before checking for it. Files: src/job.c Patch 8.2.2119 Problem: GTK3: status line background color is wrong. Solution: Don't change the code for earlier GTK3 versions. (closes #7444) Files: src/gui_gtk_x11.c Patch 8.2.2120 Problem: Not all Perl functionality is tested. Solution: Add a few more test cases. (Dominique Pellé, closes #7440) Files: src/testdir/test_perl.vim Patch 8.2.2121 Problem: Internal error when using \ze before \zs in a pattern. Solution: Check the end is never before the start. (closes #7442) Files: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.2122 Problem: Vim9: crash when sourcing vim9script early. Solution: Use set_option_value() instead of setting p_cpo directly. (closes #7441) Files: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2123 Problem: After using a complete popup the buffer is listed. (Boris Staletic) Solution: Make the buffer unlisted. Files: src/popupmenu.c, src/testdir/test_popupwin.vim Patch 8.2.2124 Problem: Vim9: a range cannot be computed at runtime. Solution: Add the ISN_RANGE instruction. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2125 (after 8.2.2122) Problem: Vim9: leaking memory. Solution: Free the saved 'cpo' value. Files: src/scriptfile.c Patch 8.2.2126 Problem: Ruby: missing function prototype. Solution: Add the prototype. Files: src/if_ruby.c Patch 8.2.2127 Problem: Vim9: executing user command defined in Vim9 script not tested. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.2128 Problem: There is no way to do something on CTRL-Z. Solution: Add VimSuspend and VimResume autocommand events. (closes #7450) Files: runtime/doc/autocmd.txt, src/autocmd.c, src/ex_docmd.c, src/normal.c, src/testdir/test_suspend.vim, src/vim.h Patch 8.2.2129 Problem: MS-Windows: Checking if a file name is absolute is slow. Solution: Do not use mch_FullName(). (closes #7033) Files: src/os_mswin.c Patch 8.2.2130 Problem: Insert mode completion messages end up in message history. Solution: Set msg_hist_off. (closes #7452) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.2131 Problem: Vim9: crash when lambda uses same var as assignment. Solution: Do not let lookup_local change lv_from_outer, make a copy. (closes #7461) Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_func.vim Patch 8.2.2132 Problem: Padding not drawn properly for popup window with title. Solution: Draw the padding below the title. (closes #7460) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_longtitle_3.dump, src/testdir/dumps/Test_popupwin_longtitle_4.dump Patch 8.2.2133 Problem: Vim9: checking for a non-empty string is too strict. Solution: Check for any string. (closes #7447) Files: src/typval.c, src/proto/typval.pro, src/errors.h, src/filepath.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2134 Problem: Vim9: get E1099 when autocmd triggered in builtin function. Solution: Check that did_emsg increased instead of checking that it changed. (closes #7448) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2135 Problem: Vim9: #{ still seen as start of dict in some places. Solution: Remove check for { after #. (closes #7456) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2136 Problem: Vim9: Using uninitialized variable. Solution: Initialize "len" to zero. Clean up fnamemodify(). Files: src/filepath.c Patch 8.2.2137 Problem: Vim9: :echo and :execute give error for empty argument. Solution: Ignore an empty argument. (closes #7468) Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2138 Problem: Vim9: "exit_cb" causes Vim to exit. Solution: Require white space after a command in Vim9 script. (closes #7467) Also fix that Vim9 style heredoc was not always recognized. Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim, src/testdir/test_let.vim Patch 8.2.2139 Problem: Vim9: unreachable code in assignment. Solution: Don't check "new_local" when "has_index" is set. Add test for wrong type of list index. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2140 Problem: Build failure with tiny features. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.2141 Problem: A user command with try/catch may not catch an expression error. Solution: When an expression fails check for following "|". (closes #7469) Files: src/eval.c, src/testdir/test_trycatch.vim, src/testdir/test_vimscript.vim Patch 8.2.2142 Problem: Memory leak when heredoc is not terminated. Solution: Free heredoc_trimmed. Files: src/userfunc.c Patch 8.2.2143 Problem: Vim9: dead code in compiling :unlet. Solution: Don't check for "!" a second time. Files: src/vim9compile.c Patch 8.2.2144 Problem: Vim9: some corner cases not tested. Solution: Add a few tests. Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2145 Problem: Vim9: concatenating lists does not adjust type of result. Solution: When list member types differ use "any" member type. (closes #7473) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2146 Problem: Vim9: automatic conversion of number to string for dict key. Solution: Do not convert number to string. (closes #7474) Files: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.2147 Problem: Quickfix window title not updated in all tab pages. Solution: Update the quickfix window title in all tab pages. (Yegappan Lakshmanan, closes #7481, closes #7466) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.2148 Problem: Vim9: crash when user command doesn't match. Solution: Adjust command index. (closes #7479) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2149 Problem: Popupwin test for latin1 sometimes fails. Solution: Wait for the script to finish. Files: src/testdir/test_popupwin.vim Patch 8.2.2150 Problem: Github actions CI isn't used for all available platforms. Solution: Update the github workflows. (Ozaki Kiichi, closes #7433) Files: .coveralls.yml, .github/workflows/ci-windows.yaml, .github/workflows/ci.yml, .travis.yml, README.md, ci/build-snd-dummy.sh, ci/setup-xvfb.sh Patch 8.2.2151 Problem: $dir not expanded when configure checks for moonjit. Solution: Use double quotes instead of single quotes. (closes #7478) Files: src/configure.ac, src/auto/configure Patch 8.2.2152 Problem: screenpos() does not include the WinBar offset. Solution: Use W_WINROW() instead of directly using w_window. (closes #7487) Files: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.2153 Problem: Popupwin test for latin1 still fails sometimes. Solution: Wait for the "cat" command to finish. Files: src/testdir/test_popupwin.vim Patch 8.2.2154 Problem: Popupwin test for terminal buffer fails sometimes. Solution: Wait for the prompt to appear. Files: src/testdir/test_popupwin.vim Patch 8.2.2155 Problem: Warning from Github actions for code analysis. Solution: Remove the "git checkout HEAD^2" block. Files: .github/workflows/codeql-analysis.yml Patch 8.2.2156 Problem: Github actions run on pushing a tag. Solution: Don't run CI on tag push. Omit coveralls on pull-request. (Ozaki Kiichi, closes #7489) Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml Patch 8.2.2157 Problem: Vim9: can delete a Vim9 script variable from a function. Solution: Check the variable is defined in Vim9 script. (closes #7483) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2158 Problem: CI on cirrus times out, coveralls doesn't always run. Solution: Set timeout to 20 minutes. Adjust condition. (closes #7493) Files: .cirrus.yml, .github/workflows/ci.yml Patch 8.2.2159 Problem: Vim9: when declaring a list it is not allocated yet, causing a following extend() to fail. Solution: When fetching a variable value for a list or dict that is null allocate the list or dict, so it can be used. (closes #7491) Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2160 Problem: Various typos. Solution: Fix spelling mistakes. (closes #7494) Files: src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c, src/ex_cmds.c, src/feature.h, src/getchar.c, src/gui_haiku.cc, src/gui_xmdlg.c, src/help.c, src/if_ole.cpp, src/insexpand.c, src/list.c, src/map.c, src/memline.c, src/normal.c, src/os_win32.c, src/search.c, src/term.c, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim, src/testdir/test_increment.vim, src/testdir/test_menu.vim, src/testdir/test_netbeans.vim, src/testdir/test_popupwin.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_sort.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/test_vartabs.vim, src/testdir/test_vimscript.vim, src/textprop.c, src/userfunc.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.2161 Problem: Arguments -T and -x not tested yet. Solution: Add a test. (Dominique Pellé, closes #7490) Files: src/testdir/test_startup.vim Patch 8.2.2162 Problem: Vim9: Cannot load or store autoload variables. Solution: Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485) Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2163 Problem: Crash when discarded exception is the current exception. Solution: Compare the exception with current_exception. (closes #7499) Files: src/ex_eval.c Patch 8.2.2164 Problem: Vim9: autoload function doesn't work in script that starts with an upper case letter. Solution: Check for the autoload character. (closes #7502) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2165 Problem: Vim9: assignment to dict member does not work. Solution: Fix recognizing dict member. (closes #7484) Files: src/ex_docmd.c, src/eval.c, src/evalvars.c, src/vim.h Patch 8.2.2166 Problem: Auto format doesn't work when deleting text. Solution: Make "x" trigger auto format. (closes #7504) Files: src/ops.c, src/testdir/test_textformat.vim Patch 8.2.2167 Problem: Vim9: assign test fails. (Elimar Riesebieter) Solution: Adjust the test for dict assignment. Files: src/testdir/test_vim9_assign.vim Patch 8.2.2168 Problem: Vim9: error for assigning to dict of dict. Solution: Remember the destination type. (closes #7506) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2169 Problem: Vim9: test leaves file behind. Solution: Rename script files. (Dominique Pellé, closes #7511) Use try/finally. Files: src/testdir/test_vim9_script.vim, src/testdir/vim9.vim Patch 8.2.2170 Problem: Vim9: a global function defined in a :def function fails if it uses the context. Solution: Create a partial to store the closure context. (see #7410) Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2171 Problem: Valgrind warning for using uninitialized value. Solution: Do not use "startp" or "endp" unless there is a match. Files: src/regexp_nfa.c Patch 8.2.2172 Problem: Vim9: number of arguments is not always checked. (Yegappan Lakshmanan) Solution: Check number of arguments when calling function by name. Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2173 Problem: Vim9: get internal error when assigning to undefined variable. Solution: Add error message. (closes #7475) Files: src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2174 Problem: Mac version doesn't specify the CPU architecture. Solution: Add "arm64" or "x86_64". (Yee Cheng Chin, closes #7519) Files: src/version.c Patch 8.2.2175 Problem: Github actions: clang-11 handling suboptimal. Solution: Separate step of installing clang-11. Get ubuntu release name dynamically. (Ozaki Kiichi, closes #7514) Files: .github/workflows/ci.yml Patch 8.2.2176 Problem: Crash with a sequence of fold commands. Solution: Bail out when there are no folds at all. Add a test (Dominique Pellé) (closes #7515) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.2177 Problem: Pattern "^" does not match if the first character in the line is combining. (Rene Kita) Solution: Do accept a match at the start of the line. (closes #6963) Files: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2178 Problem: Python 3: non-utf8 character cannot be handled. Solution: Change the string decode. (Björn Linse, closes #1053) Files: src/if_py_both.h, src/if_python.c, src/if_python3.c, src/testdir/test_python3.vim, src/testdir/test_python2.vim Patch 8.2.2179 Problem: Vim9: crash when indexing a dict with a number. Solution: Add ISN_STOREINDEX. (closes #7513) Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/errors.h, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2180 Problem: Vim9: test for error after error is flaky. Solution: Wait for job to finish instead of a fixed delay. Files: src/testdir/test_vim9_script.vim Patch 8.2.2181 Problem: Valgrind warnings for using uninitialized value. Solution: Do not use "start" or "end" unless there is a match. Files: src/regexp_nfa.c, src/regexp_bt.c Patch 8.2.2182 Problem: Vim9: value of 'magic' is still relevant. Solution: Always behave like 'magic' is on in Vim9 script (closes #7509) Files: src/option.c, src/proto/option.pro, src/arglist.c, src/buffer.c, src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/normal.c, src/search.c, src/tag.c, src/structs.h, src/globals.h, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2183 Problem: Vim9: value of 'edcompatible' and 'gdefault' are used. Solution: Ignore these deprecated options in Vim9 script. (closes #7508) Files: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2184 Problem: Vim9: no error when using "2" for a line number. Solution: Give an error message if the line number is invalid. (closes #7492) Files: src/typval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_cursor_func.vim Patch 8.2.2185 Problem: BufUnload is not triggered for the quickfix dummy buffer. Solution: Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517) Fix white space around "=". Files: src/quickfix.c, src/testdir/test_autocmd.vim Patch 8.2.2186 Problem: Vim9: error when using 'opfunc'. Solution: Do not expect a return value from 'opfunc'. (closes #7510) Files: src/eval.c, src/proto/eval.pro, src/ops.c, src/testdir/test_vim9_func.vim Patch 8.2.2187 Problem: Python 3 test fails sometimes. (Christian Brabandt) Solution: Accept two SystemError messages. Files: src/testdir/test_python3.vim Patch 8.2.2188 Problem: Vim9: crash when calling global function from :def function. Solution: Set the outer context. Define the partial for the context on the original function. Use a refcount to keep track of which ufunc is using a dfunc. (closes #7525) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/proto/vim9execute.pro, src/userfunc.c, src/proto/userfunc.pro, src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.2189 Problem: Cannot repeat a command that uses the small delete register. Solution: Store the register name instead of the contents. (Christian Brabandt, closes #7527) Files: src/ops.c, src/register.c, src/testdir/test_registers.vim Patch 8.2.2190 Problem: Vim9: crash when compiled with EXITFREE. Solution: Check that df_ufunc is not NULL. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2191 Problem: Vim9: using wrong name with lambda in nested function. Solution: Copy the lambda name earlier. (closes #7525) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2192 Problem: Codecov on github actions fails. Solution: Revert to codecov script. (Ozaki Kiichi, closes #7529) Files: Filelist, .github/workflows/ci.yml Patch 8.2.2193 Problem: Vim9: can change constant in :def function. Solution: Check if a variable is locked. (issue #7526) Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2194 Problem: Vim9: cannot use :const or :final at the script level. Solution: Support using :const and :final. (closes #7526) Files: src/vim.h, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2195 Problem: Failing tests for :const. Solution: Add missing check for ASSIGN_FINAL. Files: src/eval.c, src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.2196 Problem: :version output has extra spaces in compile and link command. Solution: Adjust QUOTESED. (closes #7505) Files: src/configure.ac, src/auto/configure Patch 8.2.2197 Problem: Assert arguments order reversed. Solution: Swap the arguments. (Christian Brabandt, closes #7531) Files: src/testdir/test_registers.vim Patch 8.2.2198 Problem: ml_get error when resizing window and using text property. Solution: Validate botline of the right window. (closes #7528) Files: src/move.c, src/proto/move.pro, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.2199 Problem: First write after setting 'eol' does not have NL added. (Tomáš Janoušek) Solution: Only use b_no_eol_lnum when doing a binary write. (closes #7535) Files: src/bufwrite.c, src/testdir/test_writefile.vim Patch 8.2.2200 Problem: Vim9: lambda without white space around -> is confusing. Solution: Require white space in a :def function. (issue #7503) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2201 Problem: Write file test fails on MS-Windows. Solution: Force edit after setting 'fileformat'. Files: src/testdir/test_writefile.vim Patch 8.2.2202 Problem: Write file test still fails on MS-Windows. Solution: Set fileformat with the :edit command Files: src/testdir/test_writefile.vim Patch 8.2.2203 Problem: Moodle gift files are not recognized. Solution: Add a filetype pattern. (Delim Temizer) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2204 Problem: Vim9: using -> both for method and lambda is confusing. Solution: Use => for lambda in :def function. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2205 Problem: Vim9: memory leak when parsing lambda fails. Solution: Clear growarrays. Files: src/userfunc.c Patch 8.2.2206 Problem: :exe command line completion only works for first argument. Solution: Skip over text if more is following. (closes #7546) Files: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.2207 Problem: Illegal memory access if popup menu items are changed while the menu is visible. (Tomáš Janoušek) Solution: Make a copy of the text. (closes #7537) Files: src/popupmenu.c, src/testdir/test_popup.vim, src/testdir/dumps/Test_popup_command_04.dump, src/testdir/dumps/Test_popup_command_05.dump Patch 8.2.2208 Problem: Vim9: after reloading a script variable index may be invalid. Solution: When the sequence number doesn't match give an error for using a script-local variable from a compiled function. (closes #7547) Files: src/vim9.h, src/structs.h, src/errors.h, src/vim9compile.c, src/vim9execute.c, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2209 Problem: Vim9: return type of => lambda not parsed. Solution: Parse and use the return type. Files: src/vim9compile.c, src/userfunc.c, src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2210 Problem: Vim9: allocating a type to set TTFLAG_BOOL_OK. Solution: Add t_number_bool. Files: src/globals.h, src/vim9type.c, src/vim9compile.c Patch 8.2.2211 Problem: MS-Windows: can't load Python dll if not in the path. Solution: Use the InstallPath registry entry. (Kelvin Lee, closes #7540) Files: src/if_python3.c Patch 8.2.2212 Problem: Vim9: lambda with => does not work at the script level. Solution: Make it work. Files: src/eval.c, src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2213 Problem: Checking white space around -> is not backwards compatible. Solution: Only check white space around =>. Files: src/userfunc.c Patch 8.2.2214 Problem: ":e#" does not give a warning for missing white space. Solution: Adjust the check for white space. (closes #7545) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2215 Problem: Vim9: `=expr` not recognized in global command. Solution: Skip over pattern. (issue #7541) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2216 Problem: Vim9: range with missing colon can be hard to spot. Solution: Include the start of the range in the error. (closes #7543) Files: src/errors.h, src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2217 Problem: Vim9: command modifiers not restored in catch block. Solution: Restore command modifiers. (closes #7542) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2218 Problem: Vim9: failure if passing more arguments to a lambda than expected. Solution: Only put expected arguments on the stack. (closes #7548) Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2219 Problem: Vim9: method call with expression not supported. Solution: Implement expr->(expr)(). Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2220 Problem: Vim9: memory leak when parsing nested parenthesis. Solution: Clear newargs. Files: src/userfunc.c Patch 8.2.2221 Problem: If <Down> is mapped on the command line 'wildchar' is inserted. Solution: Set KeyTyped when using 'wildchar'. (closes #7552) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.2222 Problem: Vim9: cannot keep script variables when reloading. Solution: Add the "noclear" argument to :vim9script. Files: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, src/vim9script.c, src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2223 Problem: Vim9: Reloading marks a :def function as deleted. Solution: Clear the function contents but keep the index. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2224 Problem: Vim9: crash if script reloaded with different variable type. Solution: Check the type when accessing the variable. Files: src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim Patch 8.2.2225 Problem: Vim9: error when using :import in legacy script twice. Solution: Make it possible to redefine an import when reloading. Files: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, src/evalvars.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2226 Problem: Vim9: script test fails. Solution: Add missing change. Files: src/scriptfile.c Patch 8.2.2227 Problem: Vim9: recognizing lambda is too complicated. Solution: Call compile_lambda() and check for NOTDONE. Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2228 Problem: Vim9: cannot use ":e #" because # starts a comment. Solution: Support using %% instead of #. Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2229 Problem: build failure without the +eval feature. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.2230 Problem: Vim9: insert completion runs into error. Solution: Insert colon before range. (closes #7556) Files: src/insexpand.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2231 Problem: When "--remote file" is used "file" is not reloaded. Solution: When a :drop command is used for a file that is already displayed in a window and it has not been changed, check if it needs to be reloaded. (closes #7560) Files: src/ex_cmds.c, src/testdir/test_clientserver.vim Patch 8.2.2232 Problem: Compiler error for falling through into next case. Solution: Move FALLTHROUGH below the #endif Files: src/ex_docmd.c Patch 8.2.2233 Problem: Cannot convert a byte index into a character index. Solution: Add charidx(). (Yegappan Lakshmanan, closes #7561) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.2234 Problem: Command line wildmenu test often fails with Unix GUI. Solution: Skip the test where it is expected to fail. Files: src/testdir/test_cmdline.vim Patch 8.2.2235 Problem: Build failure with some Ruby versions. Solution: Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes #7564) Files: ci/config.mk.clang.sed, src/if_ruby.c Patch 8.2.2236 Problem: 'scroll' option can change when setting the statusline or tabline but the option context is not updated. Solution: Update the script context when the scroll option is changed as a side effect. (Christian Brabandt, closes #7533) Files: runtime/doc/options.txt, src/scriptfile.c, src/testdir/test_options.vim, src/vim.h, src/window.c Patch 8.2.2237 Problem: CI on Mac fails in sed command. Solution: Set LC_ALL to "C". (Ozaki Kiichi, closes #7565) Files: .github/workflows/ci.yml Patch 8.2.2238 Problem: Vim9: cannot load a Vim9 script without the +eval feature. Solution: Support Vim9 script syntax without the +eval feature. Files: src/ex_docmd.c, src/vim9script.c, src/globals.h, src/main.c, src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c, src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h Patch 8.2.2239 Problem: Vim9: concatenating lines with backslash is inconvenient. Solution: Support concatenating lines starting with '|', useful for :autocmd, :command, etc. (closes #6702) Files: runtime/doc/vim9.txt, src/scriptfile.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/structs.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2240 Problem: Clientserver test fails if full path is used. Solution: Ignore the path preceding the file name. Files: src/testdir/test_clientserver.vim Patch 8.2.2241 Problem: Build with Ruby and clang may fail. Solution: Adjust configure and sed script. (Ozaki Kiichi, closes #7566) Files: ci/config.mk.clang.sed, src/auto/configure, src/configure.ac Patch 8.2.2242 Problem: Vim9: line continuation with bar does not work at script level. Solution: Check for Vim9 script. Files: src/structs.h, src/ex_docmd.c, src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2243 Problem: Crash when popup mask contains zeroes. Solution: Check boundaries properly. (closes #7569) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2244 Problem: Crash when making the window width of the not-current window negative. Solution: Make sure the window width is not negative. (closes #7568) Files: src/window.c, src/testdir/test_window_cmd.vim Patch 8.2.2245 Problem: Vim9: return value of winrestcmd() cannot be executed. Solution: Put colons before each range. (closes #7571) Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2246 Problem: Cursor keys not recognized at the hit-Enter prompt after executing an external command. Solution: Change the codes for the extra cursor keys. (closes #7562) Tune the delays to avoid test flakiness. Files: runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim Patch 8.2.2247 Problem: VMS: various smaller problems. Solution: Fix VMS building and other problems. (Zoltan Arpadffy) Files: src/term.c, src/gui_gtk_vms.h, src/os_vms_conf.h, src/gui_x11.c, src/Make_vms.mms, src/macros.h, src/gui.h, src/os_unix.h Patch 8.2.2248 Problem: ASAN error on exit with GUI. Solution: Check the window still has lines. (Christian Brabandt, closes #7573) Files: src/term.c Patch 8.2.2249 Problem: Termcodes test is flaky when used over ssh with X forwarding. Solution: Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576, closes #7563) Files: src/testdir/test_termcodes.vim Patch 8.2.2250 Problem: Vim9: sublist is ambiguous. Solution: Require white space around the colon. (closes #7409) Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2251 Problem: Test failures in legacy script. Solution: Check for Vim9 script. Files: src/eval.c Patch 8.2.2252 Problem: Vim9: crash when using lambda without return type in dict. Solution: Without a return type use t_unknown. (closes #7587) Files: src/vim9type.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2253 Problem: Vim9: expr test fails. Solution: Add missing assignment. Files: src/userfunc.c Patch 8.2.2254 Problem: Vim9: bool option type is number. Solution: Have get_option_value() return a different value for bool and number options. (closes #7583) Files: src/option.h, src/option.c, src/proto/option.pro, src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/spell.c, src/typval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2255 (after 8.2.2254) Problem: Tcl test fails. Solution: Change option handling. Files: src/if_tcl.c Patch 8.2.2256 Problem: Vim9: cannot use function( after line break in :def function. Solution: Check for "(" after "function". (closes #7581) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2257 Problem: Vim9: using -> for lambda is ambiguous. Solution: Stop supporting ->, must use =>. Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2258 Problem: Not all OCaml related files are detected. Solution: Update OCaml file type detection. (Markus Mottl, closes #7590) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2259 Problem: Test_Executable() fails when using chroot. Solution: Ignore the difference between "sbin" and "bin". Files: src/testdir/test_functions.vim Patch 8.2.2260 Problem: Window resize test fails in very wide terminal. Solution: Resize using the 'columns' option. (Vladimir Lomov, closes #7592) Files: src/testdir/test_window_cmd.vim Patch 8.2.2261 Problem: Vim9: boolean option gets string type. Solution: Check for VAR_BOOL. (closes #7588) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2262 Problem: Vim9: converting bool to string prefixes v:. Solution: Do not use the v: prefix. Files: src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2263 Problem: Vim9: compilation error with try-catch in skipped block. Solution: Do not bail out when generate_instr() returns NULL. (closes #7584) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2264 Problem: Vim9: no error for mismatched :endfunc or :enddef. Solution: Check for the mismatch. (issue #7582) Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2265 Problem: Error message for missing endfunc/enddef is last line. Solution: Report the line where the function starts. (closes #7582) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2266 Problem: Vim9: it can be hard to see where white space is missing. Solution: Mention the text where the error was seen. (closes #7580) Files: src/errors.h, src/eval.c, src/evalvars.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2267 Problem: Vim9: cannot use unlet for a dict member. Solution: Pass GLV_NO_DECL to get_lval(). (closes #7585) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2268 Problem: Vim9: list unpack seen as declaration. Solution: Check for "var". (closes #7594) Files: src/vim9compile.c, src/evalvars.c, src/eval.c, src/vim.h, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2269 Problem: Not all :hardcopy code covered by tests. Solution: Test more combinations. (Dominique Pellé, closes #7595) Files: src/testdir/test_hardcopy.vim Patch 8.2.2270 Problem: Warning for size_t to int conversion. (Randall W. Morris) Solution: Add a type cast. Files: src/vim9execute.c Patch 8.2.2271 Problem: ml_get error when changing hidden buffer in Python. Solution: Block updating folds. (closes #7598) Files: src/evalbuffer.c, src/testdir/test_python3.vim Patch 8.2.2272 Problem: Vim9: extend() can violate the type of a variable. Solution: Add the type to the dictionary or list and check items against it. (closes #7593) Files: src/structs.h, src/evalvars.c, src/dict.c, src/list.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2273 Problem: Build failure. Solution: Add missing changes to header file. Files: src/vim9.h Patch 8.2.2274 Problem: badge for Travis is outdated. Solution: Update badge for move from travis-ci.org to travis-ci.com. Files: README.md Patch 8.2.2275 Problem: CTRL-C not recognized in Mintty. Solution: Recognize the modifyOtherKeys code ending in "u". (Christian Brabandt, closes #7575) Files: src/ui.c Patch 8.2.2276 Problem: List of distributed files is outdated. Solution: Update the file list. Minor comment updates. Files: Filelist, src/clipboard.c, src/fileio.c, src/option.c, src/screen.c, src/testdir/test_signals.vim, src/testdir/Make_vms.mms Patch 8.2.2277 Problem: Missing backslash. Solution: Add backslash. Files: Filelist Patch 8.2.2278 Problem: Falling back to old regexp engine can some patterns. Solution: Do not fall back once [[:lower:]] or [[:upper:]] is used. (Christian Brabandt, closes #7572) Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2279 Problem: Vim9: memory leak with catch in skipped block. Solution: Free the pattern if not used. Files: src/vim9compile.c Patch 8.2.2280 Problem: Fuzzy matching doesn't give access to the scores. Solution: Return the scores with a third list. (Yegappan Lakshmanan, closes #7596) Files: runtime/doc/eval.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.2281 Problem: Vim9: compiled "wincmd" cannot be followed by bar. Solution: Check for bar after "wincmd". (closes #7599) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2282 Problem: Length check mismatch with argument of strncmp(). (Christian Brabandt) Solution: Adjust length check. Files: src/ui.c Patch 8.2.2283 Problem: Vim9: crash when lambda has fewer arguments than expected. Solution: Don't check arguments when already failed. (closes #7606) Files: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.2284 Problem: Vim9: cannot set an option to a boolean value. Solution: Check for VAR_BOOL. (closes #7603) Files: src/evalvars.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2285 Problem: Vim9: cannot set an option to a false. Solution: For VAR_BOOL use string "0". (closes #7603) Files: src/evalvars.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2286 Problem: Sort test fails when locale is Canadian English. (Neil H Watson) Solution: Expect a different sort order. (closes #7609) Files: src/testdir/test_sort.vim Patch 8.2.2287 Problem: Sort test fails when locale is French Canadian. Solution: Expect a different sort order. (Dominique Pellé, closes #7609) Files: src/testdir/test_sort.vim Patch 8.2.2288 Problem: Vim9: line break and comment not always skipped. Solution: Skip over white space and then line break more consistently. (closes #7610) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2289 Problem: Vim9: 'cpo' can become empty. Solution: Use empty_option instead of an empty string. Update quickfix buffer after restoring 'cpo'. (closes #7608) Files: src/evalfunc.c, src/syntax.c, src/eval.c, src/quickfix.c, src/evalbuffer.c, src/ex_eval.c, src/gui_motif.c, src/map.c, src/testdir/test_quickfix.vim Patch 8.2.2290 Problem: Vim9: unlet of global variable cannot be compiled. Solution: Skip over variables that might be defined later. Give an error if a subscript is found. (closes #7585) Files: src/eval.c, src/vim9compile.c, src/vim.h, src/testdir/test_vim9_assign.vim Patch 8.2.2291 Problem: Vim9: cannot use "null" for v:null. Solution: Support "null" like "true" and "false". (closes #7495) Files: runtime/doc/vim9.txt, src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim Patch 8.2.2292 Problem: Vim: expr test fails. Solution: Add missing part of "null" support. Files: src/eval.c Patch 8.2.2293 Problem: Build failure with Motif. (Tony Mechelynck) Solution: Use empty_option instead of empty_options. Files: src/gui_motif.c Patch 8.2.2294 Problem: VMS: a few remaining problems. Solution: Add VMS specific changes. Add Lua support. (Zoltan Arpadffy) Files: src/fileio.c, src/os_vms_conf.h, src/Make_vms.mms, src/macros.h, src/os_vms.c, src/vim9execute.c, src/gui_xmebw.c, src/os_unix.h Patch 8.2.2295 Problem: Incsearch does not detect empty pattern properly. Solution: Return magic state when skipping over a pattern. (Christian Brabandt, closes #7612, closes #6420) Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/option.c, src/tag.c, src/proto/regexp.pro, src/regexp.c, src/search.c, src/structs.h, src/vim9compile.c, src/testdir/dumps/Test_incsearch_sub_01.dump, src/testdir/dumps/Test_incsearch_sub_02.dump, src/testdir/test_search.vim Patch 8.2.2296 Problem: Cannot use CTRL-N and CTRL-P in a popup menu. Solution: Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614) Files: runtime/doc/popup.txt, src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2297 Problem: Vim9: cannot set 'number' to a boolean value. Solution: Use tv_get_bool(). (closes #7615) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2298 Problem: Vim9: comment right after "(" of function not recognized. Solution: Do not skip over white space before calling get_function_args(). (closes #7613) Files: src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.2299 Problem: Vim9: invalid memory access making error message flaky. Solution: Do not check cmd_argt for CMD_USER. (issue #7467) Files: src/ex_docmd.c, src/vim9execute.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2300 Problem: Vim9: wrong order on type stack when using dict. Solution: Generate constants before a dict. (closes #7619) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2301 Problem: Vim9: cannot unlet a dict or list item. Solution: Add ISN_UNLETINDEX. Refactor assignment code to use for unlet. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2302 Problem: Vim9: using an option value may use uninitialized memory. Solution: Clear v_lock. (closes #7620) Files: src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2303 Problem: Vim9: backtick expansion doesn't work for :foldopen. Solution: Do recognize backtick expansion. (closes #7621) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2304 Problem: Vim9: no test for unletting an imported variable. Solution: Add a test. Fix line number in error. Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2305 Problem: Vim9: "++var" and "--var" are silently accepted. Solution: Give an error message. Files: src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2306 Problem: Vim9: when using function reference type is not checked. Solution: When using a function reference lookup the type and check the argument types. (issue #7629) Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/vim9execute.c, src/evalvars.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2307 Problem: A shell command in the vimrc causes terminal output. Solution: Do not call starttermcap() after a shell command if the termcap wasn't active before. Files: src/ex_cmds.c Patch 8.2.2308 Problem: Vim9: no error when assigning lambda to funcref without return value. Solution: Default return value to "any". (closes #7629) Files: src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2309 Problem: 0o777 not recognized as octal. Solution: Use vim_isodigit(). (Ken Takata, closes #7633, closes #7631) Files: src/charset.c, src/testdir/test_eval_stuff.vim Patch 8.2.2310 Problem: Vim9: winsaveview() return type is too generic. Solution: use dict<number> instead of dict<any>. (closes #7626) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2311 Problem: Vim9: cannot assign to a variable that shadows a command modifier. Solution: Check for assignment after possible command modifier. (closes #7632) Files: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2312 Problem: Build failure with Ruby 3.0 and 32 bits. Solution: Add #ifdef. (closes #7638) Files: src/if_ruby.c Patch 8.2.2313 Problem: Vim9: using uninitialized field when parsing range. ":silent!" not respected when parsing range fails. Solution: Initialize ea.skip. On pattern failure handle it like an error. (closes #7636) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2314 Problem: Vim9: returning zero takes two instructions. Solution: Add ISN_RETURN_ZERO. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2315 Problem: Vim9: "enddef" as dict key misinterpreted as function end. Solution: Check for following colon. (closes #7640) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2316 Problem: Vim9: cannot list a lambda function. Solution: Support the <lambda>9 notation, like :disassemble. (closes #7634) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2317 Problem: Vim9: command modifier before list unpack doesn't work. Solution: Only recognize "[" directly after the name. (closes #7641) Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2318 Problem: Vim9: string and list index work differently. Solution: Make string index work like list index. (closes #7643) Files: src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/list.c, src/proto/vim9execute.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2319 Problem: "exptype_T" can be read as "expected type". Solution: Rename to "exprtype_T", expression type. Files: src/eval.c, src/typval.c, src/proto/typval.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/structs.h, src/vim9.h Patch 8.2.2320 Problem: Vim9: no error for comparing bool with string. Solution: Check for wrong types when comparing. (closes #7639) Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.2321 Problem: Vim9: cannot nest closures. Solution: Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER. (closes #7150, closes #7635) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2322 Problem: Vim9: closure nested limiting to one level. Solution: Add outer_T. Also make STOREOUTER work. Files: src/vim9execute.c, src/vim9.h, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2323 Problem: Vim9: error when inferring type from empty dict/list. Solution: When the member is t_unknown use t_any. (closes #7009) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2324 Problem: Not easy to get mark en cursor position by character count. Solution: Add functions that use character index. (Yegappan Lakshmanan, closes #7648) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c, src/evalfunc.c, src/proto/eval.pro, src/tag.c, src/testdir/test_cursor_func.vim, src/typval.c Patch 8.2.2325 Problem: Vim9: crash if map() changes the item type. Solution: Check that the item type is still OK. (closes #7652) Fix problem with mapnew() on range list. Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2326 Problem: Build error with +eval feature but without +spell. Solution: Adjust #ifdef. (John Marriott) Files: src/mbyte.c Patch 8.2.2327 Problem: Debugging code included. Solution: Remove the debugging code. Files: src/vim9execute.c Patch 8.2.2328 Problem: Some test files may not be deleted. Solution: Add a delete() call, correct name. (Dominique Pellé, closes #7654) Files: src/testdir/test_clientserver.vim, src/testdir/test_vim9_script.vim Patch 8.2.2329 Problem: Not all ways Vim can be started are tested. Solution: Add a test for different program names. (Dominique Pellé, closes #7651) Files: src/testdir/test_startup.vim Patch 8.2.2330 Problem: Vim9: crash when using :trow in a not executed block. Solution: Don't generate the instruction when skipping. (closes #7659) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2331 Problem: Vim9: wrong error when modifying dict declared with :final. Solution: Do not check for writable variable when an index follows. (closes #7657) Files: src/vim9compile.c, src/structs.h, src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2332 Problem: Vim9: missing :endif not reported when using :windo. Solution: Pass a getline function to do_cmdline(). (closes #7650) Files: src/vim9execute.c, src/structs.h, src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2333 Problem: Vim9: warning for uninitialized variable. (Tony Mechelynck) Solution: Initialize "res". Files: src/vim9execute.c Patch 8.2.2334 Problem: Pascal-like filetypes not always detected. Solution: Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns, closes #7662) Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.2335 Problem: Vim9: "silent return" does not restore command modifiers. Solution: Restore command modifiers before returning. (closes #7649) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2336 Problem: Vim9: it is not possible to extend a dictionary with different item types. Solution: Add extendnew(). (closes #7666) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2337 Problem: Configure test for GTK only says "no". (Harm te Hennepe) Solution: Hint that a -def package is needed. (closes #5229) Files: src/configure.ac, src/auto/configure Patch 8.2.2338 Problem: Vim9: no error if using job_info() result wrongly. Solution: Adjust return type on number of arguments. (closes #7667) Files: src/evalfunc.c, src/globals.h, src/testdir/test_vim9_builtin.vim Patch 8.2.2339 Problem: Cannot get the type of a value as a string. Solution: Add typename(). Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vimscript.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2340 Problem: win_execute() unexpectedly returns number zero when failing. Solution: Return an empty string. (closes #7665) Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_execute_func.vim Patch 8.2.2341 Problem: Expression command line completion shows variables but not functions after "g:". (Gary Johnson) Solution: Prefix "g:" when needed to a global function. Files: src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_cmdline.vim Patch 8.2.2342 Problem: "char" functions return the wrong column in Insert mode when the cursor is beyond the end of the line. Solution: Compute the column correctly. (Yegappan Lakshmanan, closes #7669) Files: src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim Patch 8.2.2343 Problem: Vim9: return type of readfile() is any. Solution: Add readblob() so that readfile() can be expected to always return a list of strings. (closes #7671) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2344 Problem: Using inclusive index for slice is not always desired. Solution: Add the slice() method, which has an exclusive index. (closes #7408) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/proto/vim9execute.pro, src/list.c, src/proto/list.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2345 Problem: No focus events in a terminal. Solution: Add the t_fd and t_fe termcap entries and implement detecting focus events. (Hayaki Saito, Magnus Groß, closes #7673, closes #609, closes #5526) Files: runtime/doc/term.txt, src/optiondefs.h, src/term.c, src/term.h Patch 8.2.2346 Problem: Codecov reports every little coverage drop. Solution: Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki Kiichi, closes #7678) Files: .appveyor.yml, appveyor.yml, .codecov.yml Patch 8.2.2347 Problem: Build failure without GUI. Solution: Add #ifdef. Files: src/term.c Patch 8.2.2348 (after 8.2.2345) Problem: No check for modified files after focus gained. (Mathias Stearn) Solution: Call ui_focus_change(). Files: src/term.c, src/ui.c Patch 8.2.2349 Problem: Vim9: cannot handle line break after parenthesis at line end. Solution: Skip over line break. (closes #7677) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2350 Problem: Using "void" for no reason. Solution: Use "char *". Files: src/ex_docmd.c Patch 8.2.2351 Problem: Vim9: error message for "throw" in function that was called with "silent!". Solution: Do not throw the exception when not caught or displayed. (closes #7672) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2352 Problem: If the focus lost/gained escape sequence is received twice it is not ignored. (Christ van Willegen) Solution: Adjust the logic to ignore the escape code. Files: src/term.c Patch 8.2.2353 Problem: Sparql files are not detected. Solution: Add the sparql filetype. (closes #7679) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2354 Problem: Crash with a weird combination of autocommands. Solution: Increment b_nwindows when needed. (closes #7674) Files: src/ex_cmds.c, src/buffer.c, src/proto/buffer.pro, src/testdir/test_autocmd.vim Patch 8.2.2355 Problem: Stray test failure on Appveyor. Solution: Finish insert command. Files: src/testdir/test_autocmd.vim Patch 8.2.2356 Problem: Vim9: ":put =expr" does not handle a list properly. Solution: Use the same logic as eval_to_string_eap(). (closes #7684) Files: src/vim9execute.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2357 Problem: Vim9: crash when parsing function return type fails. Solution: Bail out and set return type to "unknown". (closes #7685) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2358 Problem: Wrong #ifdef for use_xterm_like_mouse(). Solution: Use FEAT_MOUSE_XTERM. Files: src/term.c Patch 8.2.2359 Problem: Strange test failure with MS-Windows. Solution: Skip the system() call for now. Files: src/testdir/test_autocmd.vim Patch 8.2.2360 Problem: Test leaves file behind. Solution: Delete the right file. (Dominique Pellé, closes #7689) Files: src/testdir/test_filetype.vim Patch 8.2.2361 Problem: Vim9: no highlight for "s///gc" when using 'opfunc'. Solution: Reset 'lazyredraw' temporarily. (closes #7687) Files: src/ex_cmds.c Patch 8.2.2362 Problem: Vim9: check of builtin function argument type is incomplete. Solution: Use need_type() instead of check_arg_type(). Files: src/vim9compile.c, src/proto/vim9compile.pro, src/evalfunc.c, src/proto/evalfunc.pro, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2363 Problem: curpos() does not accept a string argument as before. solution: Make a string argument work again. (Yegappan Lakshmanan, closes #7690) Files: src/evalfunc.c, src/testdir/test_cursor_func.vim Patch 8.2.2364 Problem: Vim9: line break in lambda accesses freed memory. Solution: Make a copy of the return type. (closes #7664) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2365 Problem: Vim9: no check for map() changing item type at script level. Solution: Check the new value type. Files: src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2366 Problem: When using ":sleep" the cursor is always displayed. Solution: Do not display the cursor when using ":sleep!". (Jeremy Lerner, closes #7688) Files: runtime/doc/index.txt, runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c, src/normal.c, src/proto/ex_docmd.pro, src/term.c, src/testdir/Make_all.mak, src/testdir/test_sleep.vim Patch 8.2.2367 Problem: Test failures on some less often used systems. Solution: Adjust printf formats and types. (James McCoy, closes #7691) Files: src/errors.h, src/evalfunc.c, src/list.c, src/vim9execute.c Patch 8.2.2368 Problem: Insufficient tests for setting options. Solution: Add a few tests. (Dominique Pellé, closes #7695) Files: src/testdir/test_options.vim Patch 8.2.2369 Problem: Vim9: functions return true/false but can't be used as bool. Solution: Add ret_number_bool(). (closes #7693) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2370 Problem: Vim9: command fails in catch block. Solution: Reset force_abort and need_rethrow. (closes #7692) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2371 Problem: Vim9: crash when using types in :for with unpack. Solution: Check for skip_var_list() failing. Pass include_type to skip_var_one(). Skip type when compiling. (closes #7694) Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2372 (after 8.2.2371) Problem: Confusing error message for wrong :let command. Solution: Only check for type in Vim9 script. Files: src/evalvars.c Patch 8.2.2373 Problem: Vim9: list assignment only accepts a number index. Solution: Accept "any" and do a runtime type check. (closes #7694) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2374 Problem: Accessing uninitialized memory in test_undo. Solution: Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé, closes #7697) Files: src/edit.c Patch 8.2.2375 Problem: Test for RGB color skipped in the terminal. Solution: Run the GUI if possible. Files: src/testdir/test_highlight.vim Patch 8.2.2376 Problem: Vim9: crash when dividing by zero in compiled code using constants. Solution: Call num_divide() and num_modulus(). (closes #7704) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2377 Problem: Vim9: crash when using a range after another expression. Solution: Set the variable type to number. Fix using :put with a range and the "=" register. (closes #7706) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2378 Problem: Vim9: no error message for dividing by zero. Solution: Give an error message. (issue #7704) Files: src/errors.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2379 Problem: Finding spell suggestions twice if 'spellsuggest' contains number. Solution: Only do internal suggestions once. (closes #7713) Files: src/spellsuggest.c Patch 8.2.2380 Problem: Vim9: occasional crash when using try/catch and a timer. Solution: Save and restore "need_rethrow" when invoking a timer callback. (closes #7708) Files: src/time.c Patch 8.2.2381 Problem: Vim9: divide by zero does not abort expression execution. Solution: Use a "failed" flag. (issue #7704) Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/vim9compile.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2382 (after 8.2.2381) Problem: Build failure. Solution: Add missing changes. Files: src/vim9execute.c Patch 8.2.2383 Problem: Focus escape sequences are not named in ":set termcap" output. Solution: Add the names to the list. (closes #7718) Files: src/misc2.c Patch 8.2.2384 Problem: Turtle filetype not recognized. Solution: Add a rule to detect turtle files. (closes #7722) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2385 Problem: "gj" and "gk" do not work correctly when inside a fold. Solution: Move check for folding. (closes #7724, closes #4095) Files: src/normal.c, src/testdir/test_fold.vim Patch 8.2.2386 Problem: Vim9: crash when using ":silent! put". Solution: When ignoring an error for ":silent!" rewind the stack and skip ahead to restoring the cmdmod. (closes #7717) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2387 Problem: Runtime type check does not mention argument index. Solution: Add ct_arg_idx. (closes #7720) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2388 Problem: No easy way to get the maximum or minimum number value. Solution: Add v:numbermax and v:numbermin. Files: src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim, runtime/doc/eval.txt Patch 8.2.2389 Problem: Test failure on a few systems. Solution: Avoid that "char" value is negative. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h Patch 8.2.2390 Problem: Vim9: using positive offset is unexpected. Solution: Use int8_T instead of char. (James McCoy) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.2391 Problem: Memory leak when creating a global function with closure. Solution: Create a separate partial for every instantiated function. Files: src/userfunc.c, src/vim9execute.c Patch 8.2.2392 Problem: Fennel filetype not recognized. Solution: Detect with pattern and hashbang. (Chinmay Dalal, closes #7729) Files: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.2393 Problem: Vim9: error message when script line starts with "[{". Solution: Do not give an error for checking for end of list. Files: src/dict.c, src/testdir/test_vim9_script.vim Patch 8.2.2394 Problem: Vim9: min() and max() return type is "any". Solution: Use return type "number". (closes #7728) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2395 Problem: Vim9: error for wrong type may report wrong line number. Solution: Save and restore the line number when evaluating the expression. (closes #7727) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2396 Problem: Vim9: no white space allowed before "->". Solution: Allow for white space. (closes #7725) Files: src/ex_docmd.c, src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2397 Problem: Vim9: "%%" not seen as alternate file name for commands with a buffer name argument. Solution: Recognize "%%" like "#". (closes #7732) Files: src/buffer.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2398 (after 8.2.2396) Problem: Method test fails. Solution: Adjust test for allowed white space. Files: src/testdir/test_method.vim Patch 8.2.2399 (after 8.2.2385) Problem: Fold test fails in wide terminal. Solution: Adjust the test. (Dominique Pelle, closes #7731, closes #7739) Files: src/testdir/test_fold.vim Patch 8.2.2400 Problem: Vim9: compiled functions are not profiled. Solution: Add initial changes to profile compiled functions. Fix that a script-local function was hard to debug. Files: runtime/doc/repeat.txt, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/proto/vim9compile.pro, src/structs.h, src/vim9type.c, src/debugger.c, src/ex_cmds.h, src/ex_docmd.c, src/profiler.c, src/proto/profiler.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_profile.vim Patch 8.2.2401 Problem: Build fails without +profiling feature. Solution: Add #ifdefs. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/structs.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.2402 Problem: Some filetypes not detected. Solution: Detect Ruby Signature and Puppet related files. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2403 Problem: Vim9: profiling if/elseif/endif not correct. Solution: Add profile instructions. Fix that "elseif" was wrong. Files: src/vim9compile.c, src/testdir/test_profile.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2404 Problem: Vim9: profiling try/catch not correct. Solution: Add profile instructions. Fix that "entry" did not rethrow an exception. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim Patch 8.2.2405 Problem: Vim9: no need to allow white space before "(" for :def. Solution: Give an error for stray white space. (issue #7734) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2406 Problem: Vim9: profiled :def function leaks memory. Solution: Delete the profiled instructions. Files: src/vim9compile.c Patch 8.2.2407 Problem: Old jumplist code is never used. Solution: Delete the dead code. (Yegappan Lakshmanan, closes #7740) Files: src/mark.c Patch 8.2.2408 Problem: MinGW: "--preprocessor" flag no longer supported. Solution: Remove the flag, use the defaults. (Christopher Wellons, closes #7741) Files: src/GvimExt/Make_ming.mak, src/Make_cyg_ming.mak Patch 8.2.2409 Problem: Vim9: profiling only works for one function. Solution: Select the right instructions when calling and returning. (closes #7743) Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_profile.vim Patch 8.2.2410 Problem: Build failure without the +profiling feature. Solution: Add dummy argument to macro. Files: src/vim9.h Patch 8.2.2411 Problem: Profile test fails on MS-Windows. Solution: Do the profiling in a separate Vim command. Files: src/testdir/test_profile.vim Patch 8.2.2412 Problem: Not all fields in "cstack" are initialized which might cause a crash. Solution: Use CLEAR_FIELD(). Files: src/ex_docmd.c Patch 8.2.2413 Problem: Crash when using :all while using a cmdline window. (Zdenek Dohnal) Solution: Disallow :all from the cmdline window. Files: src/arglist.c, src/ex_getln.c, src/testdir/test_arglist.vim Patch 8.2.2414 Problem: Using freed memory when closing the cmdline window. Solution: Check the window is still valid. Files: src/ex_getln.c Patch 8.2.2415 Problem: No way to check for the cmdwin feature, cmdline_hist is now always enabled. Solution: Add has('cmdwin') support. Skip arglist test on Windows temporarily. Files: runtime/doc/cmdline.txt, src/evalfunc.c, src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tabpage.vim, src/testdir/test_termcodes.vim, src/testdir/test_window_cmd.vim Patch 8.2.2416 Problem: May get stuck in command line window state. Solution: Reset "cmdwin_type" when editing buffer fails. Make arglist test pass on MS-Windows. Files: src/ex_getln.c, src/testdir/test_arglist.vim Patch 8.2.2417 Problem: Condition stack values may be used when not set. Solution: Clear cs_script_var_len and cs_block_id just in case they get used later. (issue #7733) Files: src/ex_eval.c Patch 8.2.2418 Problem: Color not changed if ModeMsg highlight is set in InsertEnter autocmd event. (Paul Swanson) Solution: Call highlight_changed() after triggering InsertEnter. (closes #7751) Files: src/edit.c Patch 8.2.2419 Problem: Autocmd test was failing on MS-Windows with GUI. Solution: Remove stray feedkeys(). Files: src/testdir/test_autocmd.vim Patch 8.2.2420 Problem: Too many problems with using all autocommand events. Solution: Disallow defining an autocommand for all events. Files: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim, src/testdir/test_quickfix.vim, src/testdir/test_window_cmd.vim Patch 8.2.2421 Problem: Double free when using autocommand with "argdel". (Houyunsong) Solution: Add the arglist_locked flag. Files: src/arglist.c, src/testdir/test_autocmd.vim Patch 8.2.2422 Problem: Crash when deleting with line number out of range. (Houyunsong) Solution: Avoid using a negative line number. Files: src/normal.c, src/testdir/test_ex_mode.vim Patch 8.2.2423 (after 8.2.2422) Problem: Missing error message. Solution: Add the error message. Files: src/errors.h Patch 8.2.2424 Problem: Some tests are known to cause an error with ASAN. Solution: Add CheckNotAsan. Files: src/testdir/check.vim, src/testdir/test_ins_complete.vim, src/testdir/test_memory_usage.vim, src/testdir/test_ex_mode.vim Patch 8.2.2425 Problem: Cursor on invalid line with range and :substitute. Solution: Do not move the cursor when skipping commands. (closes #3434) Files: src/ex_cmds.c, src/testdir/test_eval_stuff.vim Patch 8.2.2426 Problem: Allowing 'completefunc' to switch windows causes trouble. Solution: use "textwinlock" instead of "textlock". Files: src/insexpand.c, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.2427 Problem: Can still switch windows for 'completefunc'. Solution: Also disallow switching windows for other completions. Files: src/insexpand.c, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.2428 Problem: FocusGained does not work when 'ttymouse' is empty. Solution: Don't use the short mouse code if there is a longer matching code. (closes #7755) Add a test. Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.2429 Problem: :goto does not work correctly with text properties. (Sam McCall) Solution: Add a test. (Andrew Radev) Also use the text property size when computing the remaining offset. (closes #5930) Files: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.2430 Problem: :vimgrep expands wildcards twice. Solution: Do not expand wildcards a second time. Files: src/quickfix.c, src/arglist.c, src/testdir/test_quickfix.vim Patch 8.2.2431 Problem: Warning for -fno-strength-reduce with Clang 11. Solution: Adjust check for clang version number. Files: src/configure.ac, src/auto/configure Patch 8.2.2432 Problem: Libvterm tests are executed even when libtool doesn't work. Solution: Only run libvterm tests if /usr/bin/gcc exists. Files: src/Makefile Patch 8.2.2433 Problem: Opening cmdline window gives error in BufLeave autocommand. Solution: Reset cmdwin_type when triggering the autocommand. Files: src/ex_cmds.c, src/testdir/test_cmdline.vim Patch 8.2.2434 Problem: Vim9: no error when compiling str2nr() with a number. Solution: Add argument type checks. (closes #7759) Files: src/evalfunc.c, src/typval.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2435 Problem: setline() gives an error for some types. Solution: Allow any type, convert each item to a string. Files: runtime/doc/eval.txt, src/evalbuffer.c, src/typval.c, src/proto/typval.pro, src/debugger.c, src/vim9execute.c, src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2436 Problem: Vim9 script test is a bit flaky. Solution: Wait longer for exit callback. Files: src/testdir/test_vim9_script.vim Patch 8.2.2437 Problem: Deprecation warnings with default configuration. Solution: Add -Wno-deprecated-declarations. Files: src/configure.ac, src/auto/configure Patch 8.2.2438 Problem: Out of bounds compiler warning. Solution: Increase the size of uf_name. Files: src/structs.h Patch 8.2.2439 Problem: Not easy to figure out what packages to get when installing Vim on a new Ubuntu system. Solution: Mention explicit commands that are easy to follow. Files: src/INSTALL Patch 8.2.2440 Problem: Documentation based on patches is outdated. Solution: Add changes to documentation in a patch. Files: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, runtime/doc/change.txt, runtime/doc/channel.txt, runtime/doc/cmdline.txt, runtime/doc/debugger.txt, runtime/doc/develop.txt, runtime/doc/digraph.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/filetype.txt, runtime/doc/ft_sql.txt, runtime/doc/gui.txt, runtime/doc/gui_w32.txt, runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt, runtime/doc/helphelp.txt, runtime/doc/help.txt, runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, runtime/doc/if_tcl.txt, runtime/doc/indent.txt, runtime/doc/index.txt, runtime/doc/insert.txt, runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt, runtime/doc/message.txt, runtime/doc/mlang.txt, runtime/doc/motion.txt, runtime/doc/netbeans.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_haiku.txt, runtime/doc/os_unix.txt, runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt, runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt, runtime/doc/pi_tar.txt, runtime/doc/pi_vimball.txt, runtime/doc/pi_zip.txt, runtime/doc/popup.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/quickref.txt, runtime/doc/recover.txt, runtime/doc/remote.txt, runtime/doc/repeat.txt, runtime/doc/rileft.txt, runtime/doc/sign.txt, runtime/doc/spell.txt, runtime/doc/starting.txt, runtime/doc/syntax.txt, runtime/doc/tabpage.txt, runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, runtime/doc/term.txt, runtime/doc/testing.txt, runtime/doc/textprop.txt, runtime/doc/tips.txt, runtime/doc/todo.txt, runtime/doc/uganda.txt, runtime/doc/undo.txt, runtime/doc/usr_02.txt, runtime/doc/usr_03.txt, runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, runtime/doc/usr_07.txt, runtime/doc/usr_08.txt, runtime/doc/usr_10.txt, runtime/doc/usr_11.txt, runtime/doc/usr_20.txt, runtime/doc/usr_22.txt, runtime/doc/usr_23.txt, runtime/doc/usr_24.txt, runtime/doc/usr_27.txt, runtime/doc/usr_30.txt, runtime/doc/usr_31.txt, runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, runtime/doc/usr_42.txt, runtime/doc/usr_44.txt, runtime/doc/usr_45.txt, runtime/doc/usr_46.txt, runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt, runtime/doc/various.txt, runtime/doc/version5.txt, runtime/doc/version6.txt, runtime/doc/version7.txt, runtime/doc/version8.txt, runtime/doc/vi_diff.txt, runtime/doc/vim9.txt, runtime/doc/visual.txt, runtime/doc/windows.txt Patch 8.2.2441 Problem: Vim9: extend() does not give an error for a type mismatch. Solution: Check the type of the second argument. (closes #7760) Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2442 Problem: Automatic GUI selection does not check for GTK 3. Solution: Make SKIP_GTK3 empty for automatic GUI support. Set SKIP_GTK3 to YES when checking for GTK2. Files: src/configure.ac, src/auto/configure Patch 8.2.2443 Problem: Vim9: no compile time error for wrong str2float argument. Solution: Check argument type. (closes #7759) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2444 Problem: Vim9: compile error with combination of operator and list. Solution: Generate constants before parsing a list or dict. (closes #7757) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2445 Problem: Vim9: no proper error for lambda missing return type. Solution: Check for this error. (closes #7758) Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2446 Problem: Setting 'term' empty has different error if compiled with GUI. Solution: Insert "else". (closes #7766) Files: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.2447 Problem: 'foldlevel' not applied to folds restored from session. Solution: Set 'foldlevel' after creating the folds. (closes #7767) Files: src/fold.c, src/testdir/test_mksession.vim Patch 8.2.2448 Problem: Compilation error with Ruby 3.0. Solution: Adjust #ifdefs and declaration. (Ken Takata, closes #7761) Files: src/if_ruby.c Patch 8.2.2449 Problem: Vim9: flatten() always changes the list type. Solution: Disallow using flatten() and add flattennew(). Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/errors.h, src/vim9compile.c, src/testdir/test_flatten.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2450 Problem: MS-Windows: ADS was not preserved if 'backupcopy' is "yes". Solution: Copy ADS before truncating the file. (Ken Takata, closes #7762) Files: src/bufwrite.c Patch 8.2.2451 Problem: MS-Windows: Extended Attributes not preserved. Solution: Preserve Extended Attributes when writing a file. (Ken Takata, closes #7765) Files: src/os_win32.c Patch 8.2.2452 Problem: No completion for the 'filetype' option. Solution: Add filetype completion. (Martin Tournoij, closes #7747) Files: src/option.c, src/optiondefs.h, src/testdir/test_options.vim Patch 8.2.2453 Problem: Vim9: a variable name with "->" in the next line doesn't work. Solution: Recognize a variable name by itself. (closes #7770) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2454 Problem: Leading space can not be made visible. Solution: Add "lead:" to 'listchars'. (closes #7772) Files: runtime/doc/options.txt, src/drawline.c, src/globals.h, src/message.c, src/screen.c, src/testdir/test_listchars.vim Patch 8.2.2455 Problem: Vim9: key type that can be used for literal dict and indexing is inconsistent. Solution: Allow using number and bool as key for a literal dict. (#7771) Files: runtime/doc/vim9.txt, src/dict.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.2456 Problem: Coverity warning for strcpy() into fixed size array. Solution: Add a type cast to hopefully silence the bogus warning. Files: src/userfunc.c Patch 8.2.2457 Problem: Coverity warns for memory leak. Solution: Free memory when out of memory. Files: src/if_cscope.c Patch 8.2.2458 Problem: Coverity warns for :retab using freed memory. Solution: Use the updated line pointer when moving text properties. Files: src/indent.c Patch 8.2.2459 Problem: Coverity reports dead code. Solution: Remove the dead code. Files: src/eval.c Patch 8.2.2460 Problem: Coverity warns for unused value. Solution: Do not reset the return value to OK. Files: src/vim9compile.c Patch 8.2.2461 Problem: Coverity warns for unchecked return value. Solution: Add "(void)" to avoid the warning. Files: src/vim9execute.c Patch 8.2.2462 Problem: Coverity warns for not checking for fseek() error. Solution: Give an error message if fseek() fails. Files: src/spellfile.c Patch 8.2.2463 Problem: Using :arglocal in an autocommand may use freed memory. (houyunsong) Solution: Check if the arglist is locked. Files: src/arglist.c, src/testdir/test_autocmd.vim Patch 8.2.2464 Problem: Using freed memory if window closed in autocommand. (houyunsong) Solution: Check the window still exists. Files: src/ex_cmds.c, src/testdir/test_autocmd.vim Patch 8.2.2465 Problem: Using freed memory in :psearch. (houyunsong) Solution: Check the current window is still valid. Fix flaky test. Files: src/search.c, src/testdir/test_autocmd.vim Patch 8.2.2466 Problem: Max() and min() can give many error messages. Solution: Bail out at the first error. (closes #1039, closes #7778) Files: src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.2467 Problem: Script generated by :mkview changes alternate file. Solution: Only write :balt in the session file. (Harish Rajagopal, closes #7779) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2468 Problem: Not easy to get the full command name from a shortened one. Solution: Add fullcommand(). (Martin Tournoij, closes #7777) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/ex_docmd.c, src/proto/evalfunc.pro, src/testdir/test_cmdline.vim Patch 8.2.2469 Problem: Confusing error if :winsize has a wrong argument. Solution: Quote the argument in the error. (closes #2523) Files: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.2470 Problem: Popup_getoptions() does not get textprop from other tab. Solution: use win_valid_any_tab(). (closes #7786) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2471 Problem: Popup_setoptions() does not set textprop in other tab. Solution: use win_valid_any_tab(). (closes #7788) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2472 Problem: Crash when using command line window in an autocommand. (houyunsong) Solution: Save and restore au_new_curbuf. Files: src/ex_cmds.c, src/testdir/test_autocmd.vim Patch 8.2.2473 Problem: Crash when leaving command line window triggers autocommand. (houyunsong) Solution: Make sure not to close the current window or buffer. Files: src/ex_getln.c, src/testdir/test_autocmd.vim Patch 8.2.2474 Problem: Using freed memory when window is closed by autocommand. (houyunsong) Solution: Check the window pointer is still valid. Files: src/quickfix.c, src/testdir/test_autocmd.vim Patch 8.2.2475 Problem: Autocommand tests hangs on MS-Windows. Solution: Skip one test. Files: src/testdir/test_autocmd.vim Patch 8.2.2476 Problem: Using freed memory when using an autocommand to split a window while a buffer is being closed. Solution: Disallow splitting when the buffer has b_locked_split set. Files: src/buffer.c, src/window.c, src/errors.h, src/structs.h, src/popupwin.c, src/testdir/test_autocmd.vim Patch 8.2.2477 Problem: Autocommand tests hang on MS-Windows. Solution: Skip a couple of tests. Fix file name. Files: src/testdir/test_autocmd.vim Patch 8.2.2478 Problem: MS-Windows: backup files for plugins are loaded. Solution: Do not use the alternate file name for files ending in "~". Files: src/filepath.c Patch 8.2.2479 Problem: set/getbufline test fails without the job feature. Solution: Check whether the job feature is supported. (Dominique Pellé, closes #7790) Files: src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2480 Problem: Vim9: some errors for white space do not show context. Solution: Include the text at the error. Files: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c Patch 8.2.2481 Problem: Vim9: confusing error when variable arguments have a default value. Solution: Give a specific error message. (closes #7793) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2482 Problem: Build error. Solution: Add new error message. Files: src/errors.h Patch 8.2.2483 Problem: Vim9: type error for malformed expression. Solution: Check for end of command before checking type. (closes #7795) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2484 Problem: Vim9: Cannot use a comment starting with #{ after an expression. Solution: Remove the check for "{" since #{ dictionaries are not supported. Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2485 Problem: When sourcing a script again the script version isn't reset. Solution: Set sn_version to one when sourcing a script again. Clear sn_save_cpo properly. (closes #7608) Files: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2486 Problem: Vim9: some errors for white space do not show context. Solution: Include the text at the error. Files: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9type.c Patch 8.2.2487 Problem: Terminal shows garbage after double-wide character with a combining character. (Kyoichiro Yamada) Solution: Libvterm: do not add the width of the combining character to the glyph width. (closes #7801) Files: src/libvterm/src/state.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_combining.dump Patch 8.2.2488 Problem: json_encode() gives generic argument error. Solution: Mention the type that can't be encoded. (issue #7802) Files: src/json.c, src/errors.h, src/testdir/test_json.vim Patch 8.2.2489 Problem: current buffer is wrong after deletebufline() fails to delete a line in another buffer. Solution: Restore the current buffer. Files: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.2490 Problem: 'wrap' option is always reset when starting diff mode. Solution: Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797) Files: runtime/doc/diff.txt, runtime/doc/options.txt, src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.2491 Problem: Popup window for text property may show in first screen line. Solution: If the text position is invisible do not show the popup window. (closes #7807) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popup_prop_not_visible_01.dump, src/testdir/dumps/Test_popup_prop_not_visible_02.dump, src/testdir/dumps/Test_popup_prop_not_visible_03.dump Patch 8.2.2492 Problem: Command line buffer name cannot be translated. Solution: Add _(). (Gabriel Dupras, closes #7812) Files: src/ex_getln.c Patch 8.2.2493 Problem: Text property for text left of window shows up. Solution: Check if the text property ends before the current column. (closes #7806) Files: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_textprop_nowrap_01.dump, src/testdir/dumps/Test_textprop_nowrap_02.dump Patch 8.2.2494 Problem: ":rviminfo!" clears most of oldfiles. Solution: Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781) Files: src/viminfo.c, src/vim.h Patch 8.2.2495 Problem: Text jumps up and down when moving the cursor in a small window with wrapping text and 'scrolloff' set. Solution: Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre, closes #7813) Files: src/move.c, src/testdir/test_breakindent.vim Patch 8.2.2496 (after 8.2.2495) Problem: Insufficient testing for text jumping fix. Solution: Add another test case. Files: src/testdir/test_breakindent.vim Patch 8.2.2497 Problem: No error when using more than one character for a register name. Solution: In Vim9 script check for a single character string. (closes #7814) Fix that VAR_BOOL and VAR_SPECIAL are not considered equal. Files: src/errors.h, src/evalfunc.c, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2498 Problem: No test for what 8.2.2494 fixes. Solution: Add a simple change to test the fix. (closes #7818) Files: src/testdir/test_viminfo.vim Patch 8.2.2499 Problem: "vim -g --version" does not redirect output. Solution: Reset gui.starting when showing version info. (closes #7815) Files: src/main.c, src/testdir/test_version.vim Patch 8.2.2500 (after 8.2.2499) Problem: Build fails without the GUI feature. Solution: Add #ifdef. Files: src/main.c Patch 8.2.2501 Problem: Not always clear where an error is reported. Solution: Add the where_T structure and pass it around. (closes #7796) Files: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/vim9script.c, src/proto/vim9script.pro, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2502 Problem: A few github actions are failing. Solution: Install setuptools-rust. (closes #7823) Files: .github/workflows/ci.yml Patch 8.2.2503 Problem: Vim9: a caught error may leave something on the stack. Solution: Drop items from the stack if needed. (closes #7826) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2504 Problem: Vim9: crash when using an argument from a closure. Solution: Check if gen_load_outer is NULL. (closes #7821) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2505 Problem: Vim9: crash after defining function with invalid return type. Solution: Clear function growarrays. Fix memory leak. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2506 Problem: Vim9: :continue does not work correctly in a :try block Solution: Add the TRYCLEANUP instruction. (closes #7827) Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2507 Problem: Github build may fail if Ubuntu 20.04 is used. Installing rust is not needed. Solution: Specify ubuntu-18.04 instead of latest. Update "pip" instead of installing rust. (Ozaki Kiichi, closes #7820) Files: .github/workflows/ci.yml Patch 8.2.2508 Problem: Cannot change the character displayed in non existing lines. Solution: Add the "eob" item to 'fillchars'. (closes #7832, closes #3820) Files: runtime/doc/options.txt, runtime/doc/todo.txt, runtime/doc/windows.txt, src/drawscreen.c, src/globals.h, src/optiondefs.h, src/screen.c, src/testdir/test_display.vim Patch 8.2.2509 Problem: Tests fail on s390 build. Solution: Initialize trycmd_T. Files: src/vim9execute.c Patch 8.2.2510 Problem: Internal error when popup with mask is zero height or width. Solution: Bail out if width or height is zero. (closes #7831) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2511 Problem: Vim9: cannot use Vim9 script syntax in some places. Solution: Add the :vim9cmd command modifier. Incompatible: Makes ":vim9" mean ":vim9cmd" instead of ":vim9script". Files: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/ex_docmd.c, src/ex_cmds.h, src/structs.h, src/ex_cmdidxs.h, src/errors.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_1.dump, src/testdir/dumps/Test_wildmenu_2.dump, src/testdir/dumps/Test_wildmenu_3.dump, src/testdir/dumps/Test_wildmenu_4.dump, src/testdir/test_quickfix.vim Patch 8.2.2512 Problem: Vim9: compiling error test sometimes fails. Solution: use WaitForAssert() instead of sleeping for a bit. (Dominique Pellé, closes #7837) Files: src/testdir/term_util.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2513 (after 8.2.2511) Problem: Vim9: missing part of :vim9cmd change. Solution: Use command modifier in in_vim9script(). Files: src/vim9script.c Patch 8.2.2514 (after 8.2.2511) Problem: Vim9: build error in tiny version. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.2515 Problem: Memory access error when truncating an empty message. Solution: Check for an empty string. (Dominique Pellé, closes #7841) Files: src/message.c, src/message_test.c Patch 8.2.2516 Problem: Test failure on s390. (analyses by James McCoy) Solution: Only set the try_finally label when not skipping. Files: src/vim9compile.c Patch 8.2.2517 Problem: Vim9: fix for s390 not tested on other systems. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.2518 Problem: 'listchars' should be window-local. Solution: Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz, closes #5206, closes #7850) Files: runtime/doc/options.txt, src/buffer.c, src/charset.c, src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/globals.h, src/indent.c, src/message.c, src/misc1.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/proto/screen.pro, src/screen.c, src/structs.h, src/testdir/test_listchars.vim, src/testdir/test_listlbr.vim Patch 8.2.2519 Problem: Vim9: no reason to keep strange Vi behavior. Solution: ":3" and ":3|" both go to line 3. ":|" does not print the line. (closes #7840) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2520 Problem: Missing tests for 'listchars'. Solution: Add a few more checks. (Yegappan Lakshmanan, closes #7854) Files: src/testdir/test_listchars.vim Patch 8.2.2521 Problem: Some compilers can't handle pointer initialization. (John Marriott) Solution: Use a local struct and assign it afterwards. Files: src/screen.c Patch 8.2.2522 Problem: Beancount filetype not recognized. Solution: Add a detection rule. (Brian Ryall, closes #7859) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2523 Problem: Svelte filetype not recognized. Solution: Add a detection rule. (Brian Ryall, closes #7858) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2524 Problem: Cannot change the characters displayed in the foldcolumn. Solution: Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron, closes #7860) Files: runtime/doc/options.txt, src/globals.h, src/mouse.c, src/screen.c, src/testdir/test_display.vim Patch 8.2.2525 Problem: Vim9: only local variables checked for a name. Solution: Also check arguments and script variables. (closes #7838) Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2526 (after 8.2.2525) Problem: Build failure. Solution: Change lookup_scriptvar() arguments. Files: src/evalvars.c, src/proto/evalvars.pro Patch 8.2.2527 Problem: Vim9: lambda return type is not determined at script level. Solution: Compile the lambda to get the return type. (closes #7843) Files: src/eval.c, src/vim.h, src/vim9.h, src/testdir/test_vim9_assign.vim Patch 8.2.2528 Problem: Vim9: crash when compiling lambda fails. Solution: Bail out after compilation fails. (closes #7862) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2529 Problem: Vim9: Not possible to use legacy and Vim9 script in one file. Solution: Vim9: allow for "if false" before :vim9script. (closes #7851) Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2530 Problem: Vim9: not enough testing for profiling. Solution: Add a test with nested functions and a lambda. Fix profiling for calling a compiled function. Files: src/profiler.c, src/proto/profiler.pro, src/userfunc.c, src/vim9execute.c, src/testdir/test_profile.vim Patch 8.2.2531 Problem: Vim9: the :k command is obscure. Solution: Disallow using :k, can use :mark instead. (closes #7874) Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/vim9script.c, src/vim9compile.c, src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.2532 Problem: Vim9: confusing error if :k is used with a range. Solution: Give an error about the range. (issue #7874) Files: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2533 Problem: Vim9: cannot use a range with :unlet. Solution: Implement ISN_UNLETRANGE. Files: src/errors.h, src/eval.c, src/evalvars.c, src/list.c, src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2534 Problem: Missing test coverage. Solution: Improve test coverage for completion with different encodings, mapset(), and term function failures. (Dominique Pellé, closes #7877) Files: src/testdir/test_edit.vim, src/testdir/test_maparg.vim, src/testdir/test_terminal3.vim Patch 8.2.2535 Problem: MS-Windows: cannot run all vim9 tests. Solution: Make test_vim9 target work. Files: src/Make_mvc.mak Patch 8.2.2536 Problem: Coverity complains about unchecked return value. Solution: Add (void). Files: src/userfunc.c Patch 8.2.2537 Problem: Vim9: crash when map() fails. Solution: Clear typval before using it. (closes #7884) Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2538 Problem: Crash when using Python list iterator. Solution: Increment the list reference count. (closes #7886) Files: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.2539 Problem: Vim9: return from finally block causes a hang. Solution: Store both the finally and endtry indexes. (closes #7885) Files: src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/testdir/test_vim9_script.vim, Patch 8.2.2540 Problem: Vim9: no error for using script var name for argument. Solution: Check for this error. (closes #7868) Files: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_func.vim Patch 8.2.2541 Problem: Popup_create() does not allow boolean for "cursorline". Solution: Use dict_get_bool(). (issue #7869) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2542 Problem: Highlight of char beyond line end is not correct. (Chuan Wei Foo) Solution: Fix counting NUL as one cell. Draw one more character if the EOL is part of the match. (closes #7883) Files: src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_1.dump, src/testdir/dumps/Test_hlsearch_2.dump Patch 8.2.2543 Problem: Vim9: a return inside try/catch does not restore exception state properly. Solution: When there is no ":finally" jump to ":endtry". (closes #7882) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2544 Problem: Vim9: error for argument when checking for lambda. Solution: Respect the skip flag. (closes #7887) Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2545 Problem: Errors and crash when terminal window is zero height. (Leonid V. Fedorenchik) Solution: Do not resize when width or height is zero. (closes #7890) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.2546 Problem: Typo in mouse key name. Solution: Fix the typo. (issue #4725) Files: src/misc2.c Patch 8.2.2547 Problem: "%" command not accurate for big files. Solution: Make it more accurate for files up to 21M lines. (Dominique Pellé, closes #7889) Files: src/normal.c Patch 8.2.2548 Problem: May get stuck in the cmdline window using :normal. Solution: Have nv_esc() return K_IGNORE. Files: src/normal.c Patch 8.2.2549 Problem: Crash after using "g:" in a for loop. Solution: Increment the reference count. (closes #7892) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2550 Problem: Signal stack size is wrong with latest glibc 2.34. Solution: Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes #7895) Files: src/config.h.in, src/configure.ac, src/os_unix.c, src/auto/configure Patch 8.2.2551 Problem: MS-Windows: colors test file is not installed. Solution: Also copy runtime/colors/tools. (Ken Takata, closes #7902) Files: nsis/gvim.nsi Patch 8.2.2552 Problem: Vim9: no reason to consider "{{{{{{{{" a command. Solution: Just use "{". (issue #7904) Files: src/ex_cmds.h Patch 8.2.2553 Problem: Vim9: Cannot put "|" after "{". Solution: Add the EX_TRLBAR flag. (issue #7904) Files: src/ex_cmds.h, src/ex_eval.c Patch 8.2.2554 Problem: Vim9: exporting a final is not tested. Solution: Add a test. Files: src/testdir/test_vim9_script.vim Patch 8.2.2555 Problem: Vim9: missing test for 8.2.2553. Solution: Add a simple test. Files: src/testdir/test_vim9_script.vim Patch 8.2.2556 Problem: Vim9: :import with "as" not fully supported. Solution: Implement "as" for more cases. Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2557 Problem: Compiler warning for shadowed variable. Solution: Declare "p" only once. Files: src/vim9script.c Patch 8.2.2558 Problem: No error if a lambda argument shadows a variable. Solution: Check that the argument name shadows a local, argument or script variable. (closes #7898) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9script.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.2559 Problem: MS-Windows: guifont test fails on Windows XP. Solution: Check windowsversion(). Files: src/testdir/test_gui.vim Patch 8.2.2560 Problem: Setting 'winminheigt' does not take tabline into account. Solution: Subtract the tabline from the available height. (closes #7899) Files: src/window.c, src/testdir/test_options.vim Patch 8.2.2561 Problem: Not all textprop code is covered by tests. Solution: Add a few more test cases. (Dominique Pellé, closes #7908) Files: src/testdir/test_textprop.vim Patch 8.2.2562 Problem: GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo Karkat) Solution: Do not change the star register when 'clipboard' contains "unnamedplus" and not "unnamed". (closes #1516) Files: src/register.c Patch 8.2.2563 Problem: Cannot use multibyte characters for folding in 'fillchars'. Solution: Port pull request 11568 to Vim. (Yegappan Lakshmanan, closes #7924) Files: src/drawline.c, src/drawscreen.c, src/macros.h, src/proto/screen.pro, src/screen.c, src/testdir/test_fold.vim, src/testdir/test_profile.vim Patch 8.2.2564 Problem: Focus events end Insert mode if 'esckeys' is not set. Solution: Do not enable focus events when 'esckeys' is off. (closes #7926) Files: src/term.c Patch 8.2.2565 Problem: Vim9: "..=" not always recognized. Solution: Do not consider "..=" to be string concatenation. (closes #7905) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2566 Problem: Vim9: Function name is not recognized. Solution: Change lookup_scriptvar() to also find function names. (closes #7770) Files: src/vim9script.c, src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2567 Problem: Vim9: no error if variable is defined for existing function. Solution: Check if name isn't already in use. (closes #7897) Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2568 Problem: Second time a preview popup is opened highlight is not set. (Gabriel Dupras) Solution: Apply 'previewpopup' after getting the file. (closes #7928) Files: src/tag.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_previewpopup_2.dump, src/testdir/dumps/Test_popupwin_previewpopup_3.dump, src/testdir/dumps/Test_popupwin_previewpopup_4.dump, src/testdir/dumps/Test_popupwin_previewpopup_5.dump Patch 8.2.2569 Problem: 'fillchars' "stl" and "stlnc" items must be single byte. Solution: Accept multi-byte characters. (Christian Wellenbrock, Yegappan Lakshmanan, closes #7927) Files: runtime/doc/options.txt, src/buffer.c, src/macros.h, src/screen.c, src/testdir/test_fold.vim, src/testdir/test_statusline.vim Patch 8.2.2570 Problem: Tests fail when run as root. Solution: Add a comment mentioning the expected failure. (issue #7919) Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_writefile.vim Patch 8.2.2571 Problem: Test may leave file behind. Solution: Delete the temporary file. Don't profile in the running Vim instance. Files: src/testdir/test_quickfix.vim, src/testdir/test_profile.vim Patch 8.2.2572 Problem: Vim9: crash when getting the types for a legacy function. Solution: Initialize the type list growarray. (closes #7929) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2573 Problem: Vim9: using invalid pointer for error message. Solution: Use the right pointer. (closes #7921) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2574 Problem: Vim9: crash when calling partial with wrong function. Solution: Check argument types of called function. (closes #7912) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2575 Problem: Vim9: a function name with "->" in the next line doesn't work. Solution: Recognize a function name by itself. (closes #7770) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2576 Problem: Vim9: defining a :func function checks for white space after a comma in the arguments. Solution: Only check for white space in a :def function. (closes #7930) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2577 Problem: Compiler warning for type conversion. Solution: Add a typecast. (Mike Williams) Files: src/drawline.c Patch 8.2.2578 Problem: Lua cannot handle a passed in lambda. Solution: Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936) Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.2579 Problem: Vim9: crash in garbagecollect after for loop. Solution: Do not set a reference in script item when the name was cleared. (closes #7935) Files: src/evalvars.c Patch 8.2.2580 Problem: Vim9: checking vararg type is wrong when function is auto-loaded. Solution: Use the member type. (closes #7933) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2581 Problem: Vim9: sourcing Vim9 script triggers a redraw. Solution: Do not let setting/restoring 'cpoptions' cause a redraw. (closes #7920) Files: src/vim.h, src/option.c, src/optionstr.c, src/scriptfile.c, src/vim9script.c, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_vim9_no_redraw.dump Patch 8.2.2582 (after 8.2.2581) Problem: Vim9: screendump test fails on MS-Windows. Solution: Use :function instead of :def. Files: src/testdir/test_vim9_script.vim Patch 8.2.2583 Problem: Vim9: cannot compare result of getenv() with null. Solution: Make the return type of getenv() "any". (closes #7943) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2584 Problem: Vim9: type error for assigning the result of list concatenation to a list. Solution: Do not consider concatenation result in a constant. (closes #7942) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2585 Problem: Vim9: illegal memory access. Solution: Check byte right after "null", not one more. Files: src/vim9compile.c Patch 8.2.2586 Problem: Process id may be invalid. Solution: Use sysinfo.uptime to check for recent reboot. (suggested by Hugo van der Sanden, closes #7947) Files: src/configure.ac, src/auto/configure, src/config.h.in, src/memline.c, src/testing.c, src/globals.h, src/testdir/test_recover.vim Patch 8.2.2587 (after 8.2.2586) Problem: Recover test fails on FreeBSD. Solution: Check for Linux. Files: src/testdir/check.vim, src/testdir/test_recover.vim Patch 8.2.2588 (after 8.2.2586) Problem: Build failure with tiny features. Solution: Add #ifdef. Run recover test separately. Files: src/memline.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim Patch 8.2.2589 (after 8.2.2586) Problem: Recover test hangs in the GUI. Solution: Add g:skipped_reason to skip a _nocatch_ test. Files: src/testdir/runtest.vim, src/testdir/test_recover.vim Patch 8.2.2590 Problem: Vim9: default argument value may cause internal error. Solution: Hide later function arguments when compiling the expression. (closes #7948) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2591 Problem: Poke files are not recognized. Solution: Add a filetype entry. (Matt Ihlenfield) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2592 Problem: Code coverage could be improved. Solution: Add a few more tests. (Dominique Pellé, closes #7957) Files: src/testdir/test_fileformat.vim, src/testdir/test_normal.vim, src/testdir/test_sleep.vim, src/testdir/test_textformat.vim, src/testdir/test_viminfo.vim Patch 8.2.2593 Problem: List of distributed files is incomplete. Solution: Add a file and rename another. Files: Filelist Patch 8.2.2594 Problem: Alternate buffer added to session file even when it's hidden. Solution: Check the 'buflisted' option. (closes #7951) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2595 Problem: Setting 'winminheight' may cause 'lines' to change. Solution: Also take minimal height of other tabpages into account. (#7899) Files: src/window.c, src/testdir/test_options.vim Patch 8.2.2596 Problem: :doautocmd may confuse scripts listening to WinEnter. Solution: Do the current buffer last. (closes #7958) Files: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.2597 Problem: Vim9: "import * as" does not work at script level. Solution: Implement using an imported namespace. Files: src/vim.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c, src/errors.h, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim Patch 8.2.2598 Problem: Vim9: :open does not need to be supported. Solution: Do not support :open in Vim9 script. Files: src/ex_docmd.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2599 (after 8.2.2597) Problem: Build failure. Solution: Add missing change. Files: src/vim9compile.c Patch 8.2.2600 Problem: Vim9: crash when putting an unknown type in a dictionary. (Yegappan Lakshmanan) Solution: Handle a NULL type pointer. Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2601 Problem: Memory usage test often fails on FreeBSD. Solution: Increase multiplier for upper limit. Files: src/testdir/test_memory_usage.vim Patch 8.2.2602 Problem: Vim9: continue doesn't work if :while is very first command. (Yegappan Lakshmanan) Solution: Add one to the continue instruction index. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2603 Problem: Vim9: no effect if user command is also a function. Solution: Check for paren following. (closes #7960) Files: src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2604 Problem: GUI-specific command line arguments not tested. Solution: Add tests for several arguments. (Dominique Pellé, closes #7962) Files: src/testdir/test_startup.vim Patch 8.2.2605 Problem: Vim9: string index and slice does not include composing chars. Solution: Include composing characters. (issue #6563) Files: runtime/doc/vim9.txt, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2606 Problem: strchars() defaults to counting composing characters. Solution: Add strcharlen() which ignores composing characters. Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testdir/test_utf8.vim Patch 8.2.2607 Problem: strcharpart() cannot include composing characters. Solution: Add the {skipcc} argument. Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_expr_utf8.vim Patch 8.2.2608 Problem: Character input not fully tested. Solution: Add more tests. (Yegappan Lakshmanan, closes #7963) Files: src/testdir/test_functions.vim, src/testdir/test_messages.vim, src/testdir/test_paste.vim, src/testdir/test_registers.vim, src/testdir/test_undo.vim Patch 8.2.2609 Problem: Test disabled on MS-Windows even though it should work. Solution: Restore the condition for skipping the test. (Ken Takata, closes #7970) Files: src/testdir/test_startup.vim Patch 8.2.2610 Problem: Mouse click test fails when using remote connection. Solution: Use a larger 'mousetime'. (Dominique Pellé, closes #7968) Files: src/testdir/test_selectmode.vim Patch 8.2.2611 Problem: Conditions for startup tests are not exactly right. Solution: Check for type of GUI instead of MS-Windows. (Ozaki Kiichi, closes #7976) Files: src/main.c, src/testdir/check.vim, src/testdir/test_startup.vim Patch 8.2.2612 Problem: col('.') may get outdated column value. Solution: Add a note to the help how to make this work and add a test for it. (closes #7971) Files: runtime/doc/map.txt, src/testdir/test_mapping.vim Patch 8.2.2613 (after 8.2.2612) Problem: New test throws exception. Solution: Adjust the function cleanup. Files: src/testdir/test_mapping.vim Patch 8.2.2614 Problem: Vim9: function is deleted while executing. Solution: increment the call count, when more than zero do not delete the function but mark it as dead. (closes #7977) Files: src/vim9execute.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2615 (after 8.2.2614) Problem: Test is sourcing the wrong file. Solution: Correct the file name. Files: src/testdir/test_vim9_script.vim Patch 8.2.2616 Problem: Vim9: if 'cpo' is changed in Vim9 script it may be restored. Solution: Apply the changes to 'cpo' to the restored value. Files: runtime/doc/vim9.txt, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2617 Problem: Vim9: script variable in a block scope not found by a nested function. Solution: Copy the block scope IDs before compiling the function. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2618 Problem: Vim9: cannot use a normal list name to store function refs. Solution: Allow a lower case name if it is indexed. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2619 Problem: Vim9: no test for return type of lambda. Solution: Add a test. Files: src/testdir/test_vim9_func.vim Patch 8.2.2620 Problem: Vim9: Using #{ for a dictionary gives strange errors. Solution: Give an error when using #{ for a comment after a command. Files: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.2621 Problem: typval2type() cannot handle recursive structures. Solution: Use copyID. (closes #7979) Files: src/list.c, src/vim9script.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vimscript.vim Patch 8.2.2622 Problem: GTK: error when starting up and -geometry is given. (Dominique Pellé) Solution: Use another function to get the monitor if the window has not been created yet. (closes #7978) Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c, src/gui_xim.c Patch 8.2.2623 Problem: Some tests fail when run as root. Solution: Use CheckNotRoot. Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_writefile.vim Patch 8.2.2624 Problem: Atom files not recognized. Solution: Recognize .atom as XML. (Kivin Locke, closes #7986) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2625 Problem: Rss files not recognized. Solution: Recognize .rss as XML. (Kivin Locke, closes #7987) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2626 Problem: GTK3: error when starting up and -geometry is given. (Dominique Pellé) Solution: Use another function to get the monitor if the window has not been created yet. (closes #7978) Files: src/gui_gtk_x11.c Patch 8.2.2627 Problem: No need to check for BSD after checking for not root. Solution: Remove CheckNotBSD. (Ozaki Kiichi, closes #7989) Files: src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/check.vim Patch 8.2.2628 Problem: Vim9: #{ can still be used at the script level. Solution: Give an error for #{ like in a :def function. Files: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.2629 Problem: Vim9: error for #{{ is not desired. Solution: Adjust the checks. (closes #7990) Files: src/errors.h, src/vim9script.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.2630 Problem: Hard to see where a test gets stuck. Solution: Print the executed test function. (Dominique Pellé, closes #7975) Files: src/testdir/Makefile Patch 8.2.2631 Problem: Commands from winrestcmd() do not always work properly. (Leonid V. Fedorenchik) Solution: Repeat the size commands twice. (closes #7988) Files: src/evalwindow.c, src/testdir/test_window_cmd.vim Patch 8.2.2632 Problem: Not all command line arguments are tested. Solution: Add tests for -D and -serverlist. (Dominique Pellé, closes #7992) Files: src/testdir/test_clientserver.vim, src/testdir/test_startup.vim Patch 8.2.2633 Problem: Multi-byte 'fillchars' for folding do not show properly. Solution: Handle multi-byte characters correctly. (Yegappan Lakshmanan, closes #7983, closes #7955) Files: src/screen.c, src/testdir/test_fold.vim Patch 8.2.2634 Problem: 'tagfunc' does not indicate using a pattern. Solution: Add the "r" flag. (Andy Massimino, closes #7982) Files: runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_tagfunc.vim Patch 8.2.2635 Problem: Vim9: cannot define an inline function. Solution: Make an inline function mostly work. Files: src/userfunc.c, src/errors.h, src/vim9compile.c, src/misc2.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2636 (after 8.2.2635) Problem: Memory leak when compiling inline function. Solution: Free the prefetched line. Files: src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h, src/eval.c Patch 8.2.2637 Problem: prop_remove() causes a redraw even when nothing changed. Solution: Only redraw if a property was removed. (Dominique Pellé) Files: src/textprop.c Patch 8.2.2638 Problem: Cannot write a message to the terminal from the GUI. Solution: Add :echoconsole and use it in the test runner. (issue #7975) Files: runtime/doc/eval.txt, runtime/doc/index.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/eval.c, src/ui.c, src/proto/ui.pro, src/term.c, src/testdir/runtest.vim Patch 8.2.2639 (after 8.2.2638) Problem: Build failure when fsync() is not available. Solution: Add #ifdef. Files: src/ui.c Patch 8.2.2640 Problem: screenstring() returns non-existing composing characters. Solution: Only use composing characters if there is a base character. Files: src/evalfunc.c, src/testdir/test_listchars.vim Patch 8.2.2641 Problem: Display test fails because of lacking redraw. Solution: Add a redraw command. Files: src/testdir/test_display.vim Patch 8.2.2642 Problem: Vim9: no clear error for wrong inline function. Solution: Check for something following the "{". Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2643 Problem: Various code not covered by tests. Solution: Add a few more test. (Yegappan Lakshmanan, closes #7995) Files: src/testdir/test_edit.vim, src/testdir/test_functions.vim, src/testdir/test_mapping.vim, src/testdir/test_termcodes.vim, src/testdir/test_undo.vim Patch 8.2.2644 Problem: prop_clear() causes a screen update even when nothing changed. Solution: Only redraw when a property was cleared. (Dominique Pellé) Files: src/textprop.c Patch 8.2.2645 Problem: Using inline function is not properly tested. Solution: Add test cases, esp. for errors. Minor code improvements. Files: src/userfunc.c, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2646 Problem: Vim9: error for not using string doesn't mention argument. Solution: Add argument number. Files: src/filepath.c, src/typval.c, src/proto/typval.pro, src/errors.h, src/mbyte.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2647 Problem: Terminal test sometimes hangs. Solution: Wait for the shell to display a prompt. Files: src/testdir/test_terminal.vim Patch 8.2.2648 Problem: Terminal resize test sometimes hangs. Solution: Wait for the shell to display a prompt and other output. Files: src/testdir/test_terminal2.vim Patch 8.2.2649 Problem: Vim9: some wincmd arguments cause a white space error. Solution: Insert a space before the count. (closes #8001) Files: src/window.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2650 Problem: Vim9: command modifiers not handled in nested function. Solution: Keep function-local info in a structure and save it on the stack. Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.2651 Problem: Vim9: restoring command modifiers happens after jump. Solution: Move the restore instruction to before the jump. (closes #8006) Also handle for and while. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2652 Problem: Vim9: can use command modifier without an effect. Solution: Give an error for a misplaced command modifier. Fix error message number. Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_eval.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2653 Problem: Build failure. Solution: Add missing changes. Files: src/errors.h Patch 8.2.2654 Problem: Vim9: getting a character from a string can be slow. Solution: Avoid a function call to get the character byte size. (#8000) Files: src/vim9execute.vim Patch 8.2.2655 Problem: The -w command line argument doesn't work. Solution: Don't set 'window' when set with the -w argument. (closes #8011) Files: src/term.c, src/testdir/test_startup.vim Patch 8.2.2656 Problem: Some command line arguments and regexp errors not tested. Solution: Add a few test cases. (Dominique Pellé, closes #8013) Files: src/testdir/test_regexp_latin.vim, src/testdir/test_startup.vim Patch 8.2.2657 Problem: Vim9: error message for declaring variable in for loop. Solution: Clear variables when entering block again. (closes #8012) Files: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.2658 Problem: :for cannot loop over a string. Solution: Accept a string argument and iterate over its characters. Files: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vimscript.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2659 (after 8.2.2658) Problem: Eval test fails because for loop on string works. Solution: Check looping over function reference fails. Files: src/testdir/test_eval_stuff.vim Patch 8.2.2660 Problem: Vim9: no error for declaration with trailing text. Solution: Give an error. (closes #8014) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2661 Problem: Leaking memory when looping over a string. Solution: Free the memory. Files: src/eval.c Patch 8.2.2662 Problem: There is no way to avoid some escape sequences. Solution: Suppress escape sequences when the --not-a-term argument is used. (Gary Johnson) Files: src/main.c, src/os_unix.c, src/testdir/test_startup.vim Patch 8.2.2663 Problem: Vim9: leaking memory when inline function has an error. Solution: Free the partially allocated function. Files: src/userfunc.c Patch 8.2.2664 Problem: Vim9: not enough function arguments checked for string. Solution: Check in balloon functions. Refactor function arguments. Files: src/typval.c, src/proto/typval.pro, src/filepath.c, src/evalfunc.c, src/mbyte.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2665 (after 8.2.2664) Problem: Test failures. Solution: Check more specific feature. Add missing change. Files: src/testdir/test_vim9_builtin.vim, src/evalbuffer.c Patch 8.2.2666 Problem: Vim9: not enough function arguments checked for string. Solution: Check in ch_logfile(), char2nr() and others. Files: src/channel.c, src/evalfunc.c, src/filepath.c, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2667 Problem: prop_find() cannot find item matching both id and type. Solution: Add the "both" argument. (Naohiro Ono, closes #8019) Files: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, src/textprop.c Patch 8.2.2668 Problem: Vim9: omitting "call" for "confirm()" does not give an error. Solution: Do not recognize a modifier followed by "(". Files: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2669 Problem: Command line completion does not work after "vim9". Solution: Include the "9". (Naohiro Ono, closes #8025) Files: src/cmdexpand.c, src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.2670 Problem: Vim9: error for append(0, text). Solution: Check for negative number. (closes #8022) Files: src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2671 (after 8.2.2670) Problem: Error for line number in legacy script. Solution: Check for number type. Files: src/typval.c Patch 8.2.2672 Problem: Vim9: cannot use :lockvar and :unlockvar in compiled script. Solution: Implement locking support. Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2673 Problem: Vim9: script-local funcref can have lower case name. Solution: Require an upper case name. Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2674 Problem: Motif: cancelling the font dialog resets the font. Solution: When no font is selected to not change the font. (closes #7825, closes #8035) Fix compiler warnings. Files: src/gui_x11.c, src/gui_motif.c Patch 8.2.2675 Problem: Directory change in a terminal window shell is not followed. Solution: Add the 'autoshelldir' option. (closes #6290) Files: runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/charset.c, src/feature.h, src/option.h, src/optiondefs.h, src/terminal.c, src/testdir/check.vim, src/testdir/test_terminal3.vim Patch 8.2.2676 Problem: Missing error message. Solution: Add new error message. Files: src/errors.h Patch 8.2.2677 Problem: Vim9: cannot use only some of the default arguments. Solution: Use v:none to use default argument value. Remove uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504) Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2678 Problem: Test for 'autoshelldir' does not reset the option. Solution: Reset the option after testing. Files: src/testdir/test_terminal3.vim Patch 8.2.2679 Problem: Winbar drawn over status line for non-current window with winbar if frame is zero height. (Leonid V. Fedorenchik) Solution: Do not draw the window if the frame height is zero. (closes #8037) Files: src/drawscreen.c, src/testdir/test_winbar.vim, src/testdir/dumps/Test_winbar_not_visible.dump Patch 8.2.2680 Problem: Vim9: problem defining a script variable from legacy function. Solution: Check if the script is Vim9, not the current syntax. (closes #8032) Files: src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2681 Problem: Vim9: test fails for redeclaring script variable. Solution: It's OK to assign to an existing script variable in legacy. Files: src/evalvars.c Patch 8.2.2682 Problem: Vim9: cannot find Name.Func from "import * as Name". (Alexander Goussas) Solution: When no variable found try finding a function. (closes #8045) Check that the function was exported. Files: src/vim9compile.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2683 Problem: Build failure without the +eval feature. Solution: Add #ifdef. Files: src/vim9script.c Patch 8.2.2684 Problem: Not enough folding code is tested. Solution: Add more test cases. (Yegappan Lakshmanan, closes #8046) Files: src/testdir/test_fold.vim, src/testdir/test_mksession.vim, src/testdir/test_source.vim Patch 8.2.2685 (after 8.2.2152) Problem: Custom statusline not drawn correctly with WinBar. Solution: Also adjust the column for the custom status line. (Yee Cheng Chin, closes #8047) Files: src/drawscreen.c, src/proto/drawscreen.pro, src/screen.c, src/testdir/dumps/Test_winbar_not_visible_custom_statusline.dump, src/testdir/test_winbar.vim Patch 8.2.2686 Problem: Status line is not updated when going to cmdline mode. Solution: Redraw status lines if 'statusline' is set and going to status line mode. (based on patch from Justin M. Keyes et al., closes #8044) Files: src/ex_getln.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_mode_1.dump, src/testdir/dumps/Test_statusline_mode_2.dump Patch 8.2.2687 Problem: Vim9: cannot use "const" for global variable in :def function. Solution: Do allow using :const for a global variable. (closes #8030) Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2688 Problem: Vim9: crash when using s: for script variable. Solution: Pass the end pointer. (closes #8045) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2689 Problem: Tiny build fails. Solution: Add #ifdef around use of p_stl. Files: src/ex_getln.c Patch 8.2.2690 Problem: PowerShell files are not recognized. Solution: Recognize several PowerShell extension. (Heath Stewart, closes #8051) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2691 Problem: Autoconf may mess up compiler flags. Solution: Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov, closes #8049) Files: src/configure.ac, src/auto/configure Patch 8.2.2692 Problem: Vim9: locked script variable can be changed. Solution: Check for locked value. (closes #8031) Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2693 Problem: Vim9: locked script variable can be changed. Solution: Check legacy script variable for being locked. (issue #8031) Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2694 Problem: When 'matchpairs' is empty every character beeps. (Marco Hinz) Solution: Bail out when no character in 'matchpairs' was found. (closes #8053) Add assert_nobeep(). Files: runtime/doc/testing.txt, runtime/doc/eval.txt, src/search.c, src/testing.c, src/proto/testing.pro, src/evalfunc.c, src/testdir/test_textformat.vim Patch 8.2.2695 Problem: Cursor position reset with nested autocommands. Solution: Only check and reset line numbers for not nested autocommands. (closes #5820) Files: src/autocmd.c, src/testdir/test_terminal.vim Patch 8.2.2696 Problem: Lua test fails with Lua 5.4.3 and later. Solution: Check for different error messages. (Yegappan Lakshmanan, closes #8050) Files: src/testdir/test_lua.vim Patch 8.2.2697 Problem: Function list test fails. Solution: Add missing function. (Yegappan Lakshmanan) Files: runtime/doc/usr_41.txt Patch 8.2.2698 (after 8.2.2696) Problem: Lua test fails on MS-Windows. Solution: Fall back to old method if "lua -v" doesn't work. Files: src/testdir/test_lua.vim Patch 8.2.2699 Problem: Lua test fails. Solution: Fix condition. (Yegappan Lakshmanan, closes #8060) Files: src/testdir/test_lua.vim Patch 8.2.2700 Problem: Nested autocmd test fails sometimes. Solution: Wait for the job to finish. Files: src/testdir/test_terminal.vim Patch 8.2.2701 Problem: Order of removing FORTIFY_SOURCE is wrong. Solution: Use the more specific pattern first. Files: src/configure.ac, src/auto/configure Patch 8.2.2702 Problem: Compiler completion test fails when more scripts are added. Solution: Add a more generic pattern. Files: src/testdir/test_compiler.vim Patch 8.2.2703 Problem: Vim9: memory leak when failing on locked variable. Solution: Free the memory. Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2704 Problem: Adding a lot of completions can be a bit slow. Solution: Use fast_breakcheck() instead of ui_breakcheck() when adding a list of completions. (Ben Jackson, closes #8061) Files: src/insexpand.c Patch 8.2.2705 Problem: Vim9: misleading reported line number for wrong type. Solution: Remember and use the line number at the start. (closes #8059) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2706 Problem: Vim9: wrong line number reported for boolean operator. Solution: Use the line number before skipping over line break. (closes #8058) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2707 (after 8.2.2704) Problem: Adding a lot of completions can still be a bit slow. Solution: Add the check for CP_FAST. (Ben Jackson) Files: src/insexpand.c Patch 8.2.2708 Problem: Test sometimes fails waiting for shell in terminal. Solution: Use WaitForAssert() so we can see the actual job status. Use Run_shell_in_terminal(). Files: src/testdir/term_util.vim, src/testdir/test_mksession.vim Patch 8.2.2709 Problem: The GTK GUI has a gap next to the scrollbar. Solution: Calculate the scrollbar padding for GTK. (closes #8027) Files: src/gui_gtk.c Patch 8.2.2710 Problem: Vim9: not all tests cover script and :def function. Solution: Run tests in both if possible. Fix differences. Files: src/eval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2711 Problem: "gj" in a closed fold does not move out of the fold. (Marco Hinz) Solution: Add a check for being in a closed fold. (closes #8062) Files: src/normal.c, src/testdir/test_fold.vim Patch 8.2.2712 Problem: Memory leak when adding to a blob fails. Solution: Clear the second typval before returning. Files: src/eval.c Patch 8.2.2713 Problem: Folding code not sufficiently tested. Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #8064) Files: src/testdir/test_fold.vim Patch 8.2.2714 Problem: Filetype pattern ending in star is too far up. Solution: Move down to where patterns ending in star belong. (closes #8065) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2715 Problem: Vim9: tests fail without the channel feature. (Dominique Pellé) Solution: Check for the channel feature. (closes #8063) Files: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2716 Problem: The equivalent class regexp is missing some characters. Solution: Update the list of equivalent characters. (Dominique Pellé, closes #8029) Files: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2717 Problem: GTK menu items don't show a tooltip. Solution: Add a callback to show the tooltip. (Leonid V. Fedorenchik, closes #8067, closes #7810) Files: src/gui_gtk.c Patch 8.2.2718 Problem: Vim9: no explicit test for using a global function without the g: prefix. Solution: Add a test case. Files: src/testdir/test_vim9_func.vim Patch 8.2.2719 Problem: Vim9: appending to dict item doesn't work in a :def function. Solution: Implement assignment with operator on indexed item. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2720 Problem: GTK menu tooltip moves the cursor. Solution: Position the cursor after displaying the tooltip. Do not show the tooltip when editing the command line. Files: src/gui_gtk.c Patch 8.2.2721 Problem: Vim9: cannot have a linebreak inside a lambda. Solution: Compile the expression before the arguments. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2722 Problem: Vim9: crash when using LHS with double index. Solution: Handle lhs_dest which is "dest_expr". (closes #8068) Fix confusing error message for missing dict item. Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2723 (after 8.2.2722) Problem: Assignment test fails. Solution: Adjust error number. Files: src/testdir/test_let.vim Patch 8.2.2724 (after 8.2.2722) Problem: Vim9: concatenating to list in dict not tested. Solution: Add a test. (issue #8068) Files: src/testdir/test_vim9_assign.vim Patch 8.2.2725 Problem: Vim9: message about compiling is wrong when using try/catch. Solution: Store the compiling flag with the message. (closes #8071) Files: src/ex_docmd.c, src/ex_eval.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2726 Problem: Confusing error message with white space before comma in the arguments of a function declaration. Solution: Give a specific error message. (closes #2235) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2727 (after 8.2.2726) Problem: Function test fails. Solution: Adjust expected error number. Files: src/testdir/test_user_func.vim Patch 8.2.2728 Problem: Special key names don't work if 'isident' is cleared. Solution: Add vim_isNormalIDc() and use it for special key names. (closes #2389) Files: src/charset.c, src/proto/charset.pro, src/misc2.c, src/testdir/test_mapping.vim Patch 8.2.2729 Problem: Vim9: wrong error message for referring to legacy script variable. Solution: Do allow referring to a variable in legacy script without "s:" if it exists at compile time. (closes #8076) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2730 Problem: Coverity complains about not restoring character. Solution: Also restore the character in case of an error. Files: src/vim9compile.c Patch 8.2.2731 Problem: Mac: SF symbols are not displayed properly. Solution: Add custom range to list of double-width characters. (Yee Cheng Chin, closes #8077) Files: src/mbyte.c Patch 8.2.2732 Problem: Prompt for s///c in Ex mode can be wrong. Solution: Position the cursor before showing the prompt. (closes #8073) Files: src/ex_cmds.c, src/testdir/test_ex_mode.vim Patch 8.2.2733 Problem: Detecting Lua version is not reliable. Solution: Add "vim.lua_version". (Ozaki Kiichi, closes #8080) Files: runtime/doc/if_lua.txt, ci/if_ver-1.vim, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.2734 Problem: Vim9: cannot use legacy script-local var from :def function. Solution: Do not insist on using "s:" prefix. (closes #8076) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2735 Problem: Vim9: function reference found with prefix, not without. Solution: Also find function reference without prefix. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2736 Problem: Vim9: for loop over string is a bit slow. Solution: Avoid using strlen(). Files: src/vim9execute.c Patch 8.2.2737 Problem: Status line not updated when local 'statusline' option set. Solution: Check the 'statusline' option of each window. Files: src/ex_getln.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_mode_1.dump, src/testdir/dumps/Test_statusline_mode_2.dump Patch 8.2.2738 Problem: Extending a list with itself can give wrong result. Solution: Remember the item before where the insertion happens and skip to after the already inserted items. (closes #1112) Files: src/list.c, src/testdir/test_listdict.vim Patch 8.2.2739 Problem: Vim9: a lambda accepts too many arguments at the script level. Solution: Do not set uf_varargs in Vim9 script. Files: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2740 Problem: Vim9: lambda with varargs doesn't work. Solution: Make "...name" work. Require type to be a list. Files: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2741 Problem: Vim9: Partial call does not check right arguments. Solution: Adjust the offset for whether the partial is before or after the arguments. (closes #8091) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2742 Problem: Vim9: when compiling a function fails it is cleared. Solution: Keep the function lines, prevent execution with a different status. (closes #8093) Files: src/vim9compile.c, src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2743 Problem: Vim9: function state stuck when compiling with ":silent!". Solution: Check for uf_def_status to be UF_COMPILING. Files: src/vim9compile.c, src/message.c, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.2744 Problem: Vim9: no way to explicitly ignore an argument. Solution: Use the underscore as the name for an ignored argument. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/eval.c, src/evalvars.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.2745 (after 8.2.2744) Problem: Vim9: missing part of the argument change. Solution: Add missing changes. Files: src/userfunc.c Patch 8.2.2746 (after 8.2.2745) Problem: Check for duplicate arguments does not work. Solution: Correct condition. Files: src/userfunc.c Patch 8.2.2747 Problem: Vim9: not always an error for too many function arguments. Solution: Check for getting too many arguments. Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2748 Problem: Vim9: memory leak when calling :def function fails. Solution: Jump to failed_early instead of returning. Files: src/vim9execute.c Patch 8.2.2749 Problem: Vim9: test for error can be a bit flaky. Solution: Increase the wait time a bit. Files: src/testdir/test_vim9_script.vim Patch 8.2.2750 Problem: Vim9: error for using underscore in nested function. Solution: Do not consider "_" already defined. (closes #8096) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2751 Problem: Coverity warns for using NULL pointer. Solution: Check for NULL in calling function. Files: src/userfunc.c Patch 8.2.2752 problem: coverity reports unreachable code. Solution: Remove check for positive index. Files: src/typval.c Patch 8.2.2753 Problem: Vim9: cannot ignore an item in assignment unpack. Solution: Allow using an underscore. Files: runtime/doc/vim9.txt, src/vim.h, src/evalvars.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2754 Problem: :sleep! does not always hide the cursor. Solution: Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097, closes #7998) Files: src/drawscreen.c, src/ex_docmd.c, src/gui.c, src/proto/term.pro, src/term.c Patch 8.2.2755 Problem: Vim9: no error for using a number in a condition. Solution: Also use ISN_COND2BOOL if the type is t_number_bool. (closes #7644) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2756 Problem: Vim9: blob index and slice not implemented yet. Solution: Implement blob index and slice. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/blob.c, src/proto/blob.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2757 Problem: Vim9: blob tests for legacy and Vim9 script are separate. Solution: Add CheckLegacyAndVim9Success(). Make blob index assign work. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/blob.c, src/proto/blob.pro, src/eval.c, src/ex_docmd.c, src/testdir/vim9.vim, src/testdir/test_blob.vim Patch 8.2.2758 Problem: Vim9: wrong line number for autoload function with wrong name. Solution: Set and restore SOURCING_LNUM. (closes #8100) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2759 Problem: Vim9: for loop infers type of loop variable. Solution: Do not get the member type. (closes #8102) Files: src/vim9type.c, src/proto/vim9type.pro, src/list.c, src/vim9script.c, src/proto/vim9script.pro, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.2760 Problem: Vim9: no error for changing a for loop variable. Solution: Make the loop variable read-only. (issue #8102) Files: src/eval.c, src/evalvars.c, src/vim9compile.c, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.2761 Problem: Using "syn include" does not work properly. Solution: Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung, closes #8104) Files: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2762 Problem: Vim9: function line truncated when compiling. Solution: Copy the line before processing it. (closes #8101) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2763 Problem: Vim9: cannot use type in for loop unpack at script level. Solution: Advance over the type name. Files: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2764 Problem: Memory leak when default function argument is allocated. Solution: Free the expression result. Files: src/userfunc.c, src/testdir/test_functions.vim Patch 8.2.2765 Problem: Vim9: not all blob operations work. Solution: Run more tests also with Vim9 script and :def functions. Fix what doesn't work. Files: src/eval.c, src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/errors.h, src/testdir/vim9.vim, src/testdir/test_blob.vim Patch 8.2.2766 (after 8.2.2765) Problem: Test failure. Solution: Add change to Vim9 compilation error message. Files: src/vim9compile.c Patch 8.2.2767 (after 8.2.2765) Problem: Compiler warning for unused argument. Solution: Remove the argument. Files: src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/eval.c Patch 8.2.2768 Problem: Vim9: memory leak with blob range error. Solution: Jump to end instead of returning. Files: src/vim9compile.c Patch 8.2.2769 Problem: Modula-3 config files are not recognized. Solution: Add filetype patterns. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2770 Problem: Vim9: type of loop variable is not used. Solution: Parse and check the variable type. (closes #8107) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2771 Problem: Vim9: assignment not recognized if declaration was skipped. Solution: Also recognized an assignment if the variable does not exist. (closes #8108) Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2772 Problem: Problems when restoring 'runtimepath' from a session file. Solution: Add the "skiprtp" item in 'sessionoptions'. Files: runtime/doc/options.txt, src/session.c, src/optionstr.c, src/option.h, src/vim.h, src/option.c, src/testdir/test_mksession.vim Patch 8.2.2773 Problem: PSL filetype not recognized. Solution: Add a filetype pattern. (Daniel Kho, closes #8117) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2774 Problem: Vim9: cannot import an existing name even when using "as". Solution: Do not check for an existing name when using "as". (closes #8113) Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2775 Problem: Vim9: wrong line number used for some commands. Solution: For :exe, :echo and the like use the line number of the start of the command. When calling a function set the line number in the script context. Files: src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.2776 Problem: :mksession uses current value of 'splitbelow' and 'splitright' even though "options" is not in 'sessionoptions'. (Maxim Kim) Solution: Save and restore the values, instead of setting to the current value. (closes #8119) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2777 Problem: Vim9: blob operations not tested in all ways. Solution: Run tests with CheckLegacyAndVim9Success(). Make blob assign with index work. Files: src/vim9compile.c, src/vim9execute.c, src/errors.h, src/blob.c, src/proto/blob.pro, src/testdir/test_blob.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2778 Problem: Problem restoring 'packpath' in session. Solution: Let "skiprtp" also apply to 'packpath'. Files: runtime/doc/options.txt, src/option.c, src/testdir/test_mksession.vim Patch 8.2.2779 Problem: Memory access error in remove() for blob. Solution: Adjust length for memmove(). Files: src/blob.c Patch 8.2.2780 Problem: Vim9: for loop over blob doesn't work. Solution: Make it work. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_blob.vim Patch 8.2.2781 Problem: Add() silently skips when adding to null list or blob. Solution: Give an error in Vim9 script. Allocate blob when it is NULL like with list and dict. Files: src/list.c, src/evalvars.c, src/vim9execute.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2782 Problem: Vim9: blob operations not fully tested. Solution: Make more blob tests run in Vim9 script. Fix filter(). Make insert() give an error for a null blob, like add(). Files: src/list.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2783 Problem: Duplicate code for setting byte in blob, blob test may fail. Solution: Call blob_set_append(). Test sort failure with "N". Files: src/eval.c, src/testdir/test_blob.vim Patch 8.2.2784 Problem: Vim9: cannot use \=expr in :substitute. Solution: Compile the expression into instructions and execute them when invoked. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/regexp.c, src/ex_cmds.c, src/proto/ex_cmds.pro, src/globals.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2785 Problem: Vim9: cannot redirect to local variable. Solution: Compile :redir when redirecting to a variable. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2786 Problem: Vim9: memory leak when using :s with expression. Solution: Clean up the instruction list. Files: src/vim9compile.c Patch 8.2.2787 Problem: MS-Windows: crash when using :echoconsole. Solution: Do not write a NUL when it's already there. Files: src/os_win32.c Patch 8.2.2788 Problem: Raku is now the only name what once was called perl6. Solution: Adjust the filetype detection. (closes #8120) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2789 Problem: Vim9: using \=expr in :substitute does not handle jumps. Solution: Start with instruction count zero. (closes #8128) Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2790 (after 8.2.2788) Problem: filetype test fails Solution: Also update the scripts detection Files: runtime/scripts.vim Patch 8.2.2791 Problem: Vim9: memory leak when using \=expr in :substitute. Solution: Do not allocate a new instruction list. Files: src/vim9compile.c Patch 8.2.2792 Problem: Vim9: :disas shows instructions for default args but no text. Solution: Show the expression test above the default argument instructions. (closes #8129) Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2793 Problem: MS-Windows: string literals are writable with MSVC. Solution: Add the /GF compiler flag. Make mch_write() safer. (Ken Takata, closes #8133) Files: src/Make_mvc.mak, src/os_win32.c Patch 8.2.2794 Problem: Linux users don't know how to get ncurses. Solution: Add the name of the package. (closes #8132) Files: src/configure.ac, src/auto/configure Patch 8.2.2795 Problem: Coverity warns for not using return value. Solution: Check the return value of compiling the substitute expression. Files: src/vim9compile.c Patch 8.2.2796 Problem: Vim9: redir to variable does not accept an index. Solution: Make the index work. Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2797 Problem: Search highlight disappears in the Visual area. Solution: Combine the search attributes. (closes #8134) Files: src/drawline.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_visual_1.dump Patch 8.2.2798 Problem: Vim9: redir to variable with append does not accept an index. Solution: Make the appending work. Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2799 Problem: Vim9: type casts don't fully work at the script level. Solution: Implement the missing piece. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2800 Problem: After a timer displays text a hit-enter prompt is given. Solution: Reset msg_didany and need_wait_return. (closes #8136) Files: src/drawscreen.c, src/testdir/test_timers.vim Patch 8.2.2801 Problem: Free Pascal makefile not recognized. Solution: Add the fpcmake filetype. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2802 Problem: Vim9: illegal memory access. Solution: Check for comment before checking for white space. (closes #8142) Files: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.2803 Problem: Flicker when the popup menu has an info popup. Solution: Avoid drawing over the popup when it's going to be redrawn in the same position. (closes #8131) Also avoid redrawing the scrollbar. Files: src/popupmenu.c, src/proto/popupmenu.pro, src/drawscreen.c, src/globals.h Patch 8.2.2804 Problem: Setting buffer local mapping with mapset() changes global mapping. Solution: Only set the local mapping. (closes #8143) Files: src/map.c, src/testdir/test_maparg.vim Patch 8.2.2805 Problem: Vim9: cannot use legacy syntax in Vim9 script. Solution: Add the :legacy command. Files: src/ex_cmds.h, runtime/doc/vim9.txt, runtime/doc/index.txt src/ex_cmdidxs.h, src/ex_docmd.c, src/structs.h, src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2806 Problem: Vim9: using "++nr" as a command might not work. Solution: Do not recognize "++" and "--" in a following line as addition or subtraction. Files: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2807 Problem: Build fails with tiny features. Solution: Use a dummy function for ex_incdec(). Files: src/ex_docmd.c Patch 8.2.2808 Problem: Vim9: increment and decrement not sufficiently tested. Solution: Add assertions. Files: src/testdir/test_vim9_assign.vim Patch 8.2.2809 Problem: Vim9: :def function compilation fails when using :legacy. Solution: Reset CMOD_LEGACY when compiling a function. (closes #8137) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2810 Problem: Vim9: crash when calling a function in a substitute expression. Solution: Set the instructions back to the substitute expression instructions. (closes #8148) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2811 Problem: Vim9: error for missing white space doesn't say where it is missing Solution: Mention the command. (closes #8149) Files: src/ex_docmd.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2812 Problem: Vim9: still crash when using substitute expression. Solution: Put the instruction list in the stack frame. (closes #8154) Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2813 Problem: Cannot grep using fuzzy matching. Solution: Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes #8152) Files: runtime/doc/quickfix.txt, src/ex_cmds.c, src/proto/search.pro, src/quickfix.c, src/search.c, src/vim.h, src/testdir/test_quickfix.vim Patch 8.2.2814 (after 8.2.2812) Problem: Vim9: unused variable. (John Marriott) Solution: Adjust #ifdef. Files: src/vim9execute.c Patch 8.2.2815 Problem: Status line flickers when redrawing popup menu info. Solution: Do not redraw the status line when the focus is in the popup window. (issue #8144) Files: src/popupmenu.c Patch 8.2.2816 Problem: Vim9: comment below expression in lambda causes problems. Solution: Use a single space for empty and comment lines. (closes #8156) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2817 Problem: Vim9: script sourcing continues after an error. Solution: Make an error in any command in "vim9script" abort sourcing. Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2818 Problem: No jump added to jumplist when opening terminal in current window. Solution: Call setpcmark(). (closes #8158) Files: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.2819 Problem: Finishing an abbreviation with a multi-byte char may not work. Solution: Escape K_SPECIAL in the typed character. (closes #8160) Files: src/map.c, src/testdir/test_mapping.vim Patch 8.2.2820 Problem: Session file may divide by zero. Solution: Avoid writing divide by zero. (closes #8162) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2821 Problem: MS-Windows: unnecessarily loading libraries when registering OLE. Solution: Skip loading libraries when invoked with "-register". Files: src/main.c, src/globals.h, src/os_win32.c Patch 8.2.2822 (after 8.2.2821) Problem: MS-Windows: unnecessarily loading libraries when unregistering OLE. Solution: Also skip loading libraries when invoked with "-unregister". Run Vim for README.txt with user privileges. Files: src/main.c, nsis/gvim.nsi, nsis/README.txt Patch 8.2.2823 Problem: MS-Windows: launching Vim from installer doesn't open README. Solution: Adjust the quotes. Files: nsis/gvim.nsi Patch 8.2.2824 Problem: MS-Windows: build failure with MSVC. Solution: Adjust the list of distributed files. Add hint about python. Adjust path for reading runtime files. Files: Filelist, src/testdir/shared.vim, src/testdir/test_function_lists.vim Patch 8.2.2825 Problem: Code in checkreadonly() not fully tested. Solution: Add more tests. (Dominique Pellé, closes #8169) Files: src/testdir/test_excmd.vim Patch 8.2.2826 Problem: Compiler warnings for int to size_t conversion. (Randall W. Morris) Solution: Add type casts. Files: src/map.c, src/quickfix.c Patch 8.2.2827 Problem: Test file was not deleted. Solution: Uncomment the delete() call. (Dominique Pellé, closes #8172) Files: src/testdir/test_mksession.vim Patch 8.2.2828 Problem: Coverity complains about not checking the rename() return value. Solution: Add "(void)", can't do anything in case of a failure. Files: src/fileio.c Patch 8.2.2829 Problem: Some comments are not correct or clear. Solution: Adjust the comments. Add test for cursor position. Files: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_exec_while_if.vim, src/testdir/test_substitute.vim Patch 8.2.2830 Problem: Terminal colors are not updated when 'background' is set. Solution: Call term_update_colors() for all terminals. (Marcin Szamotulski, closes #8171, closes #8150) Files: src/terminal.c, src/proto/terminal.pro, src/optionstr.c Patch 8.2.2831 Problem: Vim9: expandcmd() not tested. Solution: Add a test. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.2832 Problem: Operator cancelled by moving mouse when using popup. (Sergey Vlasov) Solution: Do not trigger an operator for a mouse move events. (closes #8176) Files: src/normal.c Patch 8.2.2833 Problem: Two key command cancelled by moving mouse when using popup. (Sergey Vlasov) Solution: Ignore K_MOUSEMOVE in plain_vgetc(). Files: src/getchar.c Patch 8.2.2834 Problem: Vim9: :cexpr does not work with local variables. Solution: Compile :cexpr. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/quickfix.c, src/proto/quickfix.pro, src/testdir/test_quickfix.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2835 (after 8.2.2834) Problem: Vim9: leaking memory in :cexpr. Solution: Also free the command line copy. Files: src/vim9compile.c Patch 8.2.2836 (after 8.2.2834) Problem: Build failure without the +quickfix feature. (John Marriott) Solution: Add #ifdef. Files: src/vim9compile.c, src/vim9execute.c, src/tag.c Patch 8.2.2837 Problem: Various code lines not covered by tests. Solution: Add test cases. (Dominique Pellé, closes #8178) Files: src/testdir/test_excmd.vim, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_startup.vim, src/testdir/test_syntax.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2838 Problem: File extension .wrap not recognized. Solution: Use dosini filetype for .wrap files. (Liam Beguin, closes #8177) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2839 Problem: Default redirection missing "ash" and "dash". Solution: Recognize "ash" and "dash". (Natanael Copa, closes #8180) Files: runtime/doc/options.txt, src/option.c Patch 8.2.2840 Problem: Vim9: member operation not fully tested. Solution: Add a few tests. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2841 Problem: MS-Windows: cursor in wrong position when 'lazyredraw' and 'statusline' are set. Solution: Call compute_cmdrow(). (closes #8170, closes #8184) Files: src/os_win32.c Patch 8.2.2842 Problem: Vim9: skip argument to searchpair() is not compiled. Solution: Add VAR_INSTR. Files: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/vim.h, src/evalvars.c, src/typval.c, src/vim9type.c, src/testing.c, src/viminfo.c, src/if_py_both.h, src/json.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2843 (after 8.2.2842) Problem: Vim9: skip argument to searchpairpos() is not compiled. Solution: Handle like searchpair(). Also for search() and searchpos(). Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2844 Problem: Vim9: memory leak when using searchpair(). Solution: Free the v_instr field. Files: src/typval.c Patch 8.2.2845 Problem: MS-Windows: warning for signed/unsigned comparison. Solution: Add type cast. Files: src/terminal.c Patch 8.2.2846 Problem: Vim9: "echo Func()" does not give an error for a function without a return value. Solution: Give an error. Be more specific about why a value is invalid. Files: src/globals.h, src/errors.h, src/eval.c, src/evalfunc.c, src/typval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2847 Problem: Perl not tested sufficiently. Solution: Add test. Also test W17. (Dominique Pellé, closes #8193) Files: src/testdir/test_arabic.vim, src/testdir/test_perl.vim Patch 8.2.2848 Problem: Crash when calling partial. Solution: Check for NULL pointer. (Dominique Pellé, closes #8202) Files: src/eval.c, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_listdict.vim Patch 8.2.2849 Problem: Bufwrite not sufficiently tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8192) Files: src/testdir/test_startup.vim, src/testdir/test_writefile.vim Patch 8.2.2850 Problem: Recalling commands from history is not tested. Solution: Add tests. (closes #8194) Files: src/testdir/test_cmdline.vim Patch 8.2.2851 Problem: Using <Cmd> mapping on the command line triggers CmdlineChanged. (Naohiro Ono) Solution: Jump to cmdline_not_changed if the command line didn't change. (closes #8208) Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.2852 Problem: Configure can add --as-needed a second time. Solution: Only add --as-needed if not already there. (Natanael Copa, closes #8189, closes #8181) Files: src/configure.ac, src/auto/configure Patch 8.2.2853 (after 8.2.2851) Problem: Window is not updated after using <Cmd> mapping. Solution: So jump to cmdline_changed but skip autocommand. Files: src/ex_getln.c Patch 8.2.2854 Problem: Custom statusline cannot contain % items. Solution: Add "%{% expr %}". (closes #8190) Files: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, src/testdir/test_statusline.vim Patch 8.2.2855 Problem: White space after "->" does not give E274. Solution: Do not skip white space in legacy script. (closes #8212) Files: src/eval.c, src/testdir/test_method.vim Patch 8.2.2856 Problem: Get readonly error for device that can't be written to. Solution: Check for being able to write first. (closes #8205) Files: src/ex_cmds.c, src/testdir/test_writefile.vim Patch 8.2.2857 Problem: Vim9: exception in ISN_INSTR caught at wrong level. Solution: Set the starting trylevel in exec_instructions(). (closes #8214) Files: src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_builtin.vim Patch 8.2.2858 (after 8.2.2857) Problem: Test fails because of changed error message. Solution: Adjust the expected error message. Files: src/testdir/test_ex_mode.vim Patch 8.2.2859 (after 8.2.2857) Problem: Tcl test fails because of changed error message. Solution: Adjust the expected error message. Files: src/testdir/test_tcl.vim Patch 8.2.2860 Problem: Adding a text property causes the whole window to be redrawn. Solution: Use changed_lines_buf() to only redraw the affected lines. Files: src/change.c, src/proto/change.pro, src/textprop.c Patch 8.2.2861 Problem: Vim9: "legacy return" is not recognized as a return statement. Solution: Specifically check for a return command. (closes #8213) Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_expr.vim Patch 8.2.2862 Problem: Removing a text property causes the whole window to be redrawn. Solution: Use changed_lines_buf() to only redraw the affected lines. Files: src/textprop.c Patch 8.2.2863 (after 8.2.2862) Problem: Removing a text property does not redraw optimally. Solution: Only redraw the lines that mithg actually have been changed. Files: src/textprop.c Patch 8.2.2864 Problem: Vim9: crash when using inline function. Solution: Check for NULL pointer. Make using inline function work inside lambda. (closes #8217) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2865 (after 8.2.2864) Problem: Skipping over function body fails. Solution: Do not define the function when skipping. Files: src/userfunc.c Patch 8.2.2866 Problem: Vim9: memory leak when using inline function. Solution: Remember what strings to free. Files: src/userfunc.c, src/structs.h, src/eval.c Patch 8.2.2867 (after 8.2.2866) Problem: Build failure. Solution: Add missing part of the change. Files: src/globals.h Patch 8.2.2868 Problem: Vim9: When executing a compiled expression the trylevel at start is changed but not restored. (closes #8214) Solution: Restore the trylevel at start. Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2869 Problem: Using unified diff is not tested. Solution: Test all cases also with unified diff. (issue #8197) Files: src/testdir/test_diffmode.vim Patch 8.2.2870 Problem: CmdlineChange event triggered twice for CTRL-R. Solution: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg(). (closes #8219) Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.2871 Problem: Unnecessary VIM_ISDIGIT() calls, badly indented code. Solution: Call skipdigits() on the next character. Improve indenting. (Dominique Pellé, closes #8227) Files: src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c, src/ops.c, src/tag.c, src/vim9compile.c Patch 8.2.2872 Problem: Python tests fail without the channel feature. Solution: Add a feature check. (Dominique Pellé, closes #8226) Files: src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.2873 Problem: Not enough tests for writing buffers. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8229) Files: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/testdir/test_writefile.vim Patch 8.2.2874 Problem: MS-Windows: screen redraws too often. Solution: Do not redraw when peeking for a character. (closes #8230, closes #8211) Files: src/os_win32.c Patch 8.2.2875 Problem: Cancelling inputlist() after a digit does not return zero. Solution: Always return zero when cancelling. (closes #8231) Files: src/misc1.c, src/testdir/test_functions.vim Patch 8.2.2876 Problem: Configure cannot detect Python 3.10. Solution: Use sys.version_info. (closes #8233) Files: src/configure.ac, src/auto/configure Patch 8.2.2877 Problem: Insufficient tests for popup menu rightleft. Solution: Add tests. (Yegappan Lakshmanan, closes #8235) Files: src/testdir/test_popup.vim, src/testdir/dumps/Test_pum_rightleft_01.dump, src/testdir/dumps/Test_pum_rightleft_02.dump, src/testdir/dumps/Test_pum_scrollbar_01.dump, src/testdir/dumps/Test_pum_scrollbar_02.dump Patch 8.2.2878 Problem: Vim9: for loop list unpack only allows for one "_". Solution: Drop the value when the variable is "_". (closes #8232) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2879 Problem: File extension .hsig not recognized. Solution: Use Haskell filetype for .hsig files. (Marcin Szamotulski, closes #8236) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2880 Problem: Unified diff fails if actually used. Solution: Invoke :diffupdate in the test. Fix the check for working external diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197) Files: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.2881 Problem: Various pieces of code not covered by tests. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8245) Files: src/testdir/test_const.vim, src/testdir/test_functions.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2882 Problem: Vim9: memory leak when lambda has an error. Solution: Free the list of argument types on failure. Files: src/userfunc.c Patch 8.2.2883 Problem: MS-Windows manifest file name is misleading. Solution: Rename the file. (closes #8241) Files: .gitignore, .hgignore, Filelist, Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/gvim.exe.mnf, src/vim.manifest, src/vim.rc Patch 8.2.2884 Problem: Not enough cscope code is covered by tests. Solution: Add a few test cases. (Dominique Pellé, closes #8246) Files: src/testdir/test_cscope.vim Patch 8.2.2885 Problem: searching for \%'> does not match linewise end of line. (Tim Chase) Solution: Match end of line if column is MAXCOL. (closes #8238) Files: src/regexp_nfa.c, src/regexp_bt.c, src/testdir/test_search.vim Patch 8.2.2886 Problem: Various pieces of code not covered by tests. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8255) Files: src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_registers.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2887 Problem: Crash when passing null string to fullcommand(). Solution: Check for NULL pointer. (closes #8256) Files: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.2888 Problem: Vim9: "k" command recognized in Vim9 script. Solution: Do not recognize "k" or "s" and "d" with flags. Files: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.2889 Problem: Typo and verbose comment in Makefiles. Solution: Fix typo. Use @#. (Ken Takata, closes #8252) Files: Makefile, src/testdir/Makefile Patch 8.2.2890 Problem: Text property duplicated when data block splits. Solution: Do not continue text prop from previous line. (closes #8261) Files: src/memline.c, src/structs.h, src/testdir/test_textprop.vim Patch 8.2.2891 Problem: Cannot build with Perl 5.34. Solution: Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266, closes #8250) Files: src/if_perl.xs Patch 8.2.2892 Problem: Error message contains random characters. Solution: Pass the right pointer to error_white_both(). (closes #8272, closes #8263) Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2893 Problem: Multi-byte text in popup title shows up wrong. Solution: Use the character width instead of the byte length. (Ralf Schandl, closes #8267, closes #8264) Files: src/popupwin.c, src/message_test.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_multibytetitle.dump Patch 8.2.2894 Problem: MS-Windows: using enc_locale() for strftime() might not work. Solution: Use wcsftime(). (Ken Takata, closes #8271) Files: src/time.c Patch 8.2.2895 Problem: Vim9: random characters appear in some error messages. Solution: Pass the correct pointer. (closes #8277) Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2896 Problem: Spellfile functionality not fully tested. Solution: Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé, closes #8270) Files: src/testdir/test_spellfile.vim Patch 8.2.2897 Problem: Vim9: can use reserved words at the script level. Solution: Check variable names for reserved words. (closes #8253) Files: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2898 Problem: QuitPre and ExitPre not triggered when GUI window is closed. Solution: Call before_quit_autocmds(). (closes #8242) Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/gui.c Patch 8.2.2899 Problem: Appveyor script does not detect nmake failure. Solution: Explicitly check for executable. (Ken Takata, closes #8281) Files: ci/appveyor.bat Patch 8.2.2900 Problem: QuitPre is triggered before :wq writes the file, which is different from other commands. Solution: Trigger QuitPre after writing the file. (closes #8279) Files: src/ex_docmd.c, src/testdir/test_writefile.vim Patch 8.2.2901 Problem: Some operators not fully tested. Solution: Add a few test cases. (Yegappan Lakshmanan, closes #8282) Files: src/testdir/test_cpoptions.vim, src/testdir/test_increment.vim, src/testdir/test_normal.vim, src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim Patch 8.2.2902 Problem: Spellfile functionality not fully tested. Solution: Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé, closes #8283) Files: src/testdir/test_spellfile.vim Patch 8.2.2903 Problem: Cursor position wrong on wrapped line with 'signcolumn'. Solution: Don't add space for showbreak twice. (Christian Brabandt, closes #8262) Files: src/drawline.c, src/testdir/test_display.vim Patch 8.2.2904 Problem: "g$" causes scroll if half a double width char is visible. Solution: Advance to the last fully visible character. (closes #8254) Files: src/normal.c, src/testdir/test_normal.vim Patch 8.2.2905 Problem: No error when defaults.vim cannot be loaded. Solution: Add an error message. (Christian Brabandt, closes #8248) Files: runtime/doc/starting.txt, src/errors.h, src/main.c, src/testdir/test_startup.vim Patch 8.2.2906 (after 8.2.2905) Problem: ASAN reports errors for test_startup for unknown reasons. Solution: Temporarily disable the new test. Files: src/testdir/test_startup.vim Patch 8.2.2907 Problem: Memory leak when running out of memory. Solution: Free the allocated memory. (Dominique Pellé, closes #8284) Files: src/term.c Patch 8.2.2908 Problem: Crash when using a terminal popup window from the cmdline window. Solution: Instead of checking cmdwin_type call cmdwin_is_active(). (closes #8286) Files: src/terminal.c, src/errors.h, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_cmdwin_no_terminal.dump Patch 8.2.2909 Problem: Build error with non-Unix system. Solution: Always include limits.h. Files: src/vim.h Patch 8.2.2910 Problem: Test for cmdline window and terminal fails on MS-Windows. Solution: Skip the test on MS-Windows. Files: src/testdir/test_cmdline.vim Patch 8.2.2911 Problem: Pattern "\%V" does not match all of block selection. (Rick Howe) Solution: Use the value of vi_curswant. (closes #8285) Files: src/regexp.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_block_visual_match.dump Patch 8.2.2912 Problem: MS-Windows: most users expect using Unicode. Solution: Default 'encoding' to utf-8 on MS-Windows. (Ken Takata, closes #3907) Files: runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h, src/testdir/test_writefile.vim Patch 8.2.2913 Problem: MS-Windows conpty supports using mouse events. Solution: When enabling the mouse enable mouse input and disable quick edit mode. (Wez Furlong, closes #8280) Files: src/os_win32.c Patch 8.2.2914 Problem: Cannot paste a block without adding padding. Solution: Add "zp" and "zP" which paste without adding padding. (Christian Brabandt, closes #8289) Files: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, src/register.c, src/vim.h, src/testdir/test_normal.vim, src/testdir/test_visual.vim Patch 8.2.2915 Problem: MS-Windows: when using "default" for encoding utf-8 is used. Solution: Use the system encoding. (Ken Takata, closes #8300) Files: src/mbyte.c, runtime/doc/options.txt Patch 8.2.2916 Problem: Operators are not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8290) Files: src/ops.c, src/testdir/test_netbeans.vim, src/testdir/test_normal.vim, src/testdir/test_visual.vim Patch 8.2.2917 Problem: Spellfile functionality not fully tested. Solution: Add tests for SFX with removal of characters, spelling suggestions with NOBREAK and others. (Dominique Pellé, closes #8293) Files: src/testdir/test_spellfile.vim Patch 8.2.2918 Problem: Builtin function can be shadowed by global variable. Solution: Check for builtin function before variable. (Yasuhiro Matsumoto, closes #8302) Files: src/eval.c, src/testdir/test_functions.vim Patch 8.2.2919 Problem: Using ":!command" does not work if the command uses posix_spawn(). Solution: Do not call ioctl() with TIOCSCTTY. (Felipe Contreras) Files: src/os_unix.c Patch 8.2.2920 Problem: Still a way to shadow a builtin function. (Yasuhiro Matsumoto) Solution: Check the key when using extend(). (issue #8302) Files: src/eval.c, src/dict.c, src/proto/dict.pro, src/testdir/test_functions.vim Patch 8.2.2921 Problem: E704 for script local variable is not backwards compatible. (Yasuhiro Matsumoto) Solution: Only give the error in Vim9 script. Also check for function-local variable. Files: src/dict.c, src/testdir/test_functions.vim Patch 8.2.2922 Problem: Computing array length is done in various ways. Solution: Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305) Files: src/arabic.c, src/blowfish.c, src/cindent.c, src/cmdexpand.c, src/cmdhist.c, src/dosinst.c, src/eval.c, src/evalfunc.c, src/ex_docmd.c, src/fileio.c, src/gui_athena.c, src/gui_gtk_x11.c, src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_mzsch.c, src/macros.h, src/main.c, src/map.c, src/mbyte.c, src/memline.c, src/menu.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/optiondefs.h, src/os_win32.c, src/popupwin.c, src/quickfix.c, src/regexp.c, src/screen.c, src/search.c, src/syntax.c, src/term.c, src/terminal.c, src/time.c, src/usercmd.c, src/version.c Patch 8.2.2923 Problem: EBCDIC build is broken. Solution: Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306) Files: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro Patch 8.2.2924 Problem: Superfluous extern declaration. Solution: Delete the declaration. (Ken Takata, closes #8307) Files: src/main.c Patch 8.2.2925 Problem: Vim9: line continuation comment uses legacy syntax. Solution: Check for #\ instead of "\. (closes #8295) Files: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2926 Problem: Vim9: no good error for using :legacy in a :def function. Solution: Give an explicit error where :legacy is not working. (closes #8309) Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.2927 Problem: Test commented out because it fails with ASAN. Solution: Only skip the test when running with ASAN. Files: src/testdir/test_startup.vim Patch 8.2.2928 Problem: The evalfunc.c file is too big. Solution: Move float related functionality to a separate file. (Yegappan Lakshmanan, closes #8287) Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/float.c, src/proto.h, src/proto/eval.pro, src/proto/float.pro Patch 8.2.2929 Problem: Accidentally enable tcl by default. Solution: Revert change to Makefile Files: src/Makefile Patch 8.2.2930 Problem: When a popup is visible a mouse move my restart Visual mode. Solution: Reset held_button when ending Visual mode. (closes #8318) Files: src/mouse.c, src/proto/mouse.pro, src/normal.c Patch 8.2.2931 Problem: Vim9: line continuation comment still uses legacy syntax in one place. Solution: Check for #\ instead of "\ earlier. (closes #8316) Files: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2932 (after 8.2.2930) Problem: Select mode test fails. Solution: Do not always reset the held mouse button. Files: src/mouse.c, src/normal.c, src/proto/normal.pro Patch 8.2.2933 Problem: When 'clipboard' is "unnamed" zp and zP do not work correctly. Solution: Pass -1 to str_to_reg() and fix computing the character width instead of using the byte length. (Christian Brabandt, closes #8301, closes #8317) Files: src/clipboard.c, src/mbyte.c, src/register.c Patch 8.2.2934 (after 8.2.2933) Problem: ASAN error when using text from the clipboard. Solution: Get width of each character. Files: src/register.c Patch 8.2.2935 (after 8.2.2934) Problem: Calculating register width is not always needed. (Christian Brabandt) Solution: Only calculate the width when the type is MBLOCK. Files: src/register.c Patch 8.2.2936 Problem: Vim9: converting number to bool uses wrong stack offset. (Salman Halim) Solution: Include the offset in the 2BOOL command. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2937 Problem: Popup test fails if rightleft feature not enabled. Solution: Check that the rightleft feature is available. (Dominique Pellé, closes #8321) Files: src/testdir/test_popup.vim Patch 8.2.2938 Problem: After using motion force from feedkeys() it may not be reset. Solution: Clear motion_force in clearop(). (closes #8323) Files: src/normal.c, src/testdir/test_visual.vim Patch 8.2.2939 Problem: GTK: righthand scrollbar does not show with split window. Solution: Adjust padding when two scrollbars are used. (Matt Wozniski, closes #8324) Files: src/gui_gtk.c Patch 8.2.2940 Problem: MS-Windows: cannot see the size of the text area when resizing the gvim window. Solution: Show a tooltip with the text size. (Ken Takata, closes #8326) Files: src/gui_w32.c Patch 8.2.2941 Problem: Vim9: using `=expr` does not handle a list of strings. Solution: Convert a list to a string and escape each item. (closes #8310) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2942 Problem: Vim9: internal error when calling function with too few arguments Solution: Check for argument count to be too few. (closes #8325) Files: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2943 Problem: Vim9: check for argument count ignores default values. Solution: Take default argument values into account. Files: src/vim9execute.c Patch 8.2.2944 Problem: Vim9: no error when using job or channel as a string. Solution: Be more strict about conversion to string. (closes #8312) Files: src/typval.c, src/job.c, src/proto/job.pro, src/channel.c, src/proto/channel.pro, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2945 Problem: Some buffer related code is not tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8320) Files: src/termlib.c, src/testdir/test_excmd.vim, src/testdir/test_recover.vim, src/testdir/test_swap.vim, src/testdir/test_visual.vim Patch 8.2.2946 Problem: Vim9: substitute expression cannot be a List in a :def function. Solution: Use typval2string(). (closes #8330) Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2947 Problem: Build failure without the channel feature. Solution: Add back #ifdef. (John Marriott) Files: src/eval.c Patch 8.2.2948 Problem: Substitute() accepts a number but not a float expression. Solution: Also accept a float. (closes #8331) Files: src/typval.c, src/testdir/test_substitute.vim Patch 8.2.2949 (after 8.2.2948) Problem: Tests failing because there is no error for float to string conversion. Solution: Change the check for failure to check for correct result. Make some conversions strict in Vim9 script. Files: src/evalfunc.c, src/float.c, src/findfile.c, src/json.c, src/filepath.c, src/testdir/test_eval_stuff.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_glob2regpat.vim Patch 8.2.2950 Problem: Sound code not fully tested. Solution: Add more sound tests. (Dominique Pellé, closes #8332) Files: src/testdir/test_sound.vim Patch 8.2.2951 Problem: Vim9: cannot use heredoc in :def function for :python, :lua, etc. Solution: Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT instruction. Files: src/userfunc.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2952 Problem: Recover test fails on big endian systems. Solution: Disable the failing test on big endian systems. (Yegappan Lakshmanan, closes #8335) Files: src/testdir/test_recover.vim, src/testdir/test_swap.vim Patch 8.2.2953 (after 8.2.2951) Problem: Vim9: leaking memory when using heredoc script. Solution: Free the first line. Files: src/vim9execute.c Patch 8.2.2954 Problem: Short file name extension for Scala not recognized. Solution: Recognize *.sc. (closes #8337) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2955 Problem: Vim9: using filter in compiled command does not work. Solution: Generate EXEC including the command modifier. Files: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.c, src/proto/ex_cmds.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2956 Problem: Vim9: need to plan for future additions. Solution: Reserve commands for future use: :type, :class, :enum. Files: src/ex_cmds.h, src/ex_cmdidxs.h Patch 8.2.2957 Problem: Using getchar() in Vim9 script is problematic. Solution: Add getcharstr(). (closes #8343) Files: runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c, src/proto/getchar.pro, src/testdir/test_functions.vim Patch 8.2.2958 (after 8.2.2957) Problem: Function list test fails. Solution: Add newly added function to the list. Fix typo. Files: runtime/doc/usr_41.txt, src/testdir/test_function_lists.vim Patch 8.2.2959 Problem: sound_playfile() is not tested on MS-Windows. Solution: Make it work and enable the test. (Dominique Pellé, closes #8338) Files: src/sound.c, src/testdir/test_sound.vim Patch 8.2.2960 Problem: Swap file recovery not sufficiently tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8339) Files: src/testdir/test_recover.vim Patch 8.2.2961 Problem: Keys typed during a :normal command are discarded. Solution: Concatenate saved typeahead and typed keys. (closes #8340) Files: src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c, src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro Patch 8.2.2962 Problem: MS-Windows command line arguments have wrong encoding. Solution: Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347) Files: src/os_win32.c Patch 8.2.2963 Problem: GUI: mouse move may start Visual mode with a popup visible. Solution: Add special code for mouse move. (closes #8318) Files: src/vim.h, src/gui.c, src/keymap.h, src/term.c Patch 8.2.2964 Problem: Vim9: hang when using space after ->. (Naohiro Ono) Solution: Skip over white space to find the function name. (closes #8341) Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2965 Problem: Vim9: crash when calling function that failed to compile. Solution: Fail when trying to call the function. (closes #8344) Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2966 Problem: ml_get errors after recovering a file. (Yegappan Lakshmanan) Solution: Fix the cursor position after deleting lines. Files: src/memline.c Patch 8.2.2967 Problem: Vim9: crash when using two levels of partials. Solution: Add outer_ref_T and use it in the execution context. Files: src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2968 (after 8.2.2967) Problem: Vim9: memory leak Solution: Unreference pt_outer of partial. Files: src/eval.c Patch 8.2.2969 Problem: Subtracting from number option fails when result is zero. (Ingo Karkat) Solution: Reset the string value when using the numeric value. (closes #8351) Files: src/evalvars.c, src/testdir/test_vimscript.vim Patch 8.2.2970 Problem: Python configure check uses deprecated command. Solution: Use sysconfig instead of distutils if possible. (Zdenek Dohnal, closes #8354) Files: src/configure.ac, src/auto/configure Patch 8.2.2971 Problem: Cannot yank a block without trailing spaces. Solution: Add the "zy" command. (Christian Brabandt, closes #8292) Files: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, src/ops.c, src/register.c, src/structs.h, src/testdir/test_visual.vim Patch 8.2.2972 Problem: "%bd" tries to delete popup window buffers, which fails. (Ralf Schandl) Solution: Do not try to delete a popup window buffer. (closes #8349) Files: src/buffer.c, src/vim.h, src/testdir/test_popupwin.vim Patch 8.2.2973 Problem: Fix for recovery and diff mode not tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8352) Files: src/testdir/test_diffmode.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_recover.vim Patch 8.2.2974 Problem: Greek spell checking uses wrong case folding. Solution: Fold capital sigma depending on whether it is at the end of a word or not. (closes #299) Files: src/spell.c, src/proto/spell.pro, src/spellfile.c, src/spellsuggest.c Patch 8.2.2975 Problem: Vim9: can only use an autoload function name as a string. Solution: Load the autoload script when encountered. (closes #8124) Files: src/vim9compile.c, src/evalvars.c, src/scriptfile.c, src/testdir/test_vim9_func.vim Patch 8.2.2976 (after 8.2.2975) Problem: Build failure without the +eval feature. Solution: Add #ifdefs. Files: src/scriptfile.c Patch 8.2.2977 Problem: Crash when using a null function reference. (Naohiro Ono) Solution: Check for an invalid function name. (closes #8367) Files: src/eval.c, src/errors.h, src/testdir/test_functions.vim Patch 8.2.2978 (after 8.2.2977) Problem: Warning for uninitialized variable. Solution: Set return value to FAIL. Files: src/eval.c Patch 8.2.2979 Problem: Not all options code is covered by tests. Solution: Add more tests for options. (Yegappan Lakshmanan, closes #8369) Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_mksession.vim, src/testdir/test_options.vim, src/testdir/test_vartabs.vim, src/testdir/test_window_cmd.vim Patch 8.2.2980 Problem: Popup window test is a bit flaky. Solution: Add a redraw command. Files: src/testdir/test_popupwin.vim Patch 8.2.2981 Problem: Recovery test is not run on big-endian systems. Solution: Make it work on big-endian systems. (James McCoy, closes #8368) Files: src/testdir/test_recover.vim Patch 8.2.2982 Problem: Vim9: future commands are not reserved yet. Solution: Add commands to be implemented later. Make "this" a reserved name. Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/vim9script.c, src/testdir/test_vim9_assign.vim Patch 8.2.2983 Problem: Vim9: an inline function requires specifying the return type. Solution: Make the return type optional. Files: src/eval.c, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2984 (after 8.2.2983) Problem: Vim9: Test fails because of missing return statement. Solution: When type is unknown set type to void. Files: src/vim9compile.c Patch 8.2.2985 Problem: Vim9: a compiled function cannot be debugged. Solution: Add initial debugging support. Files: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, src/vim.h, src/eval.c, src/vim9execute.c, src/userfunc.c, src/vim9type.c, src/testdir/test_debugger.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2986 Problem: Build failure without the profile feature. Solution: Add #ifdef. Files: src/vim9compile.c Patch 8.2.2987 Problem: Build failure with normal features. Solution: Remove #define. Files: src/vim9execute.c Patch 8.2.2988 Problem: Vim9: debugger test fails. Solution: Get the debugger instructions when needed. Files: src/vim.h, src/vim9.h Patch 8.2.2989 Problem: Vim9: memory leak when debugging a :def function. Solution: Free the debug instructions. Files: src/vim9compile.c Patch 8.2.2990 Problem: Jupyter Notebook files are not recognized. Solution: Recognize *.ipynb. (closes #8375) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2991 Problem: Vim9: no completion for :vim9 and :legacy. Solution: Expand argument as a command. (closes #8377) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.2992 Problem: Vim9: completion for :disassemble is incomplete. Solution: Recognize the "debug" and "profile" arguments. Files: src/cmdexpand.c, src/vim9execute.c, src/proto/vim9execute.pro, src/vim.h, src/testdir/test_cmdline.vim Patch 8.2.2993 Problem: 'fileencodings' default value should depend on 'encoding'. (Gary Johnson) Solution: When 'encoding' is "utf-8" use a different default value for 'fileencodings'. Files: src/mbyte.c, src/option.c, src/proto/option.pro, src/testdir/test_options.vim Patch 8.2.2994 Problem: Various code is not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8378) Files: src/testdir/test_excmd.vim, src/testdir/test_mapping.vim, src/testdir/test_modeline.vim, src/testdir/test_options.vim, src/testdir/test_paste.vim, src/vim9compile.c Patch 8.2.2995 Problem: Linker errors with dynamic Python 3.10. Solution: Add a couple of library entries. (Zdenek Dohnal, closes #8381, closes #8356) Files: src/if_python3.c Patch 8.2.2996 Problem: Vim9: when debugging cannot inspect local variables. Solution: Make local variables available when debugging. Files: src/vim9execute.c, src/proto/vim9execute.pro, src/vim9compile.c, src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.2997 (after 8.2 2996) Problem: Vim9: disassemble test fails. Solution: Adjust expected output. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.2998 (after 8.2 2996) Problem: Vim9: disassemble test fails. Solution: Add missing call to lookup_debug_var(). Files: src/evalvars.c Patch 8.2.2999 Problem: Balloon sometimes does not hide with GTK 3. Solution: Also listen to GDK_LEAVE_NOTIFY. (Johannes Stezenbach) Files: src/gui_beval.c Patch 8.2.3000 Problem: Vim9: warning for uninitialized variable. Solution: Add initialization. (John Marriott) Files: src/vim9compile.c Patch 8.2.3001 Problem: Vim9: memory leak when compilation fails. Solution: Free the list of variable names. Files: src/vim9compile.c Patch 8.2.3002 Problem: Vim doesn't abort on a fatal Tcl error. Solution: Change emsg() to iemsg(). (Dominique Pellé, closes #8383) Files: src/if_tcl.c Patch 8.2.3003 Problem: Vim9: closure compiled with wrong compile type. Solution: Use COMPILE_TYPE() when calling a function. (closes #8384) Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3004 Problem: Vim9: error for missing colon given while skipping. Solution: Do not give the error when skipping. (closes #8385) Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.3005 Problem: Vim9: using a void value does not give a proper error message. Solution: Give a clear error message. (closes #8387) Files: src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3006 Problem: Crash when echoing a value very early. (Naruhiko Nishino) Solution: Do not use a NUL to truncate the message, make a copy. (closes #8388) Files: src/message.c, src/testdir/test_startup.vim Patch 8.2.3007 (after 8.2.3005) Problem: Vim9: test for void value fails. Solution: Adjust expected error. Do not make a copy of void. Files: src/typval.c, src/testdir/test_functions.vim Patch 8.2.3008 (after 8.2.3006) Problem: Startup test may hang. Solution: Add quit command in the script. Files: src/testdir/test_startup.vim Patch 8.2.3009 (after 8.2.3006) Problem: Startup test may hang. Solution: Do not run the test in the GUI. Files: src/testdir/test_startup.vim Patch 8.2.3010 Problem: Not enough testing for viminfo code. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8390) Files: src/register.c, src/testdir/test_fileformat.vim, src/testdir/test_smartindent.vim, src/testdir/test_viminfo.vim Patch 8.2.3011 Problem: Vim9: cannot get argument values during debugging. Solution: Lookup names in the list of arguments. Put debug instruction halfway for command. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3012 Problem: When 'rightleft' is set the line number is sometimes drawn reversed. Solution: Adjust how space is handled. (Christian Brabandt, closes #8389, closes #8391) Files: src/drawline.c, src/testdir/test_number.vim Patch 8.2.3013 Problem: Vim: when debugging only the first line of a command using line continuation is displayed. Solution: Find the next command and concatenate lines until that one. (closes #8392) Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3014 Problem: Coverity warns for freeing static string. Solution: Do not assign static string to pointer. (Dominique Pellé, closes #8397) Files: src/vim9execute.c Patch 8.2.3015 Problem: Vim9: Assigning to @# requires a string. (Naohiro Ono) Solution: Accent a number or a string. (closes #8396) Files: src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_assign.vim Patch 8.2.3016 Problem: Confusing error when expression is followed by comma. Solution: Give a different error for trailing text. (closes #8395) Files: src/eval.c, src/testdir/test_let.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_vimscript.vim Patch 8.2.3017 Problem: Vim9: debugger shows too many lines. Solution: Truncate at a comment, "enddef", etc. (closes #8392) Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3018 Problem: Formatting using quickfixtextfunc is lost when updating location lists for different buffers. (Yorick Peterse) Solution: Use the right window for the location list. (Yegappan Lakshmanan, closes #8400, closes #8403) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3019 Problem: Location list only has the start position. Solution: Make it possible to add an end position. (thinca, closes #8393) Files: runtime/doc/eval.txt, src/quickfix.c, src/testdir/dumps/Test_quickfix_cwindow_1.dump, src/testdir/dumps/Test_quickfix_cwindow_2.dump, src/testdir/test_quickfix.vim, src/testdir/test_tagjump.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3020 Problem: Unreachable code. Solution: Remove the code. (closes #8406) Files: src/ex_docmd.c Patch 8.2.3021 Problem: Spaces allowed between option name and "!", "?", etc. Solution: Disallow spaces in Vim9 script, it was not documented. (closes #8408) Files: src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3022 Problem: Available encryption methods are not strong enough. Solution: Add initial support for xchacha20. (Christian Brabandt, closes #8394) Files: .github/workflows/ci.yml, runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/various.txt, src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/blowfish.c, src/bufwrite.c, src/config.h.in, src/configure.ac, src/crypt.c, src/crypt_zip.c, src/errors.h, src/evalfunc.c, src/feature.h, src/fileio.c, src/memline.c, src/option.c, src/optionstr.c, src/proto/blowfish.pro, src/proto/crypt.pro, src/proto/crypt_zip.pro, src/structs.h, src/testdir/samples/crypt_sodium_invalid.txt, src/testdir/test_crypt.vim, src/undo.c, src/version.c Patch 8.2.3023 Problem: Vim9: arguments for execute() not checked at compile time. Solution: Add a function to check the argument types. Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3024 (after 8.2.3023) Problem: execute() function test fails. Solution: Adjust test for different error. Files: src/testdir/test_execute_func.vim Patch 8.2.3025 Problem: Not enough tests for quickfix end_col and end_lnum. Solution: Add a few more test cases. (Shane-XB-Qian, closes #8409) Files: src/testdir/test_quickfix.vim Patch 8.2.3026 Problem: Vim9: cannot set breakpoint in compiled function. Solution: Check for breakpoint when calling a function. Files: src/vim9execute.c, src/structs.h, src/vim.h, src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3027 Problem: Vim9: breakpoint in compiled function not always checked. Solution: Check for breakpoint when calling compiled function from compiled function. Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3028 Problem: GUI mouse events not tested. Solution: Add test_gui_mouse_event(). Add mouse tests. Also add a few viminfo tests. (Yegappan Lakshmanan, closes #8407) Files: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_viminfo.vim, src/testing.c Patch 8.2.3029 Problem: Vim9: crash when using operator and list unpack assignment. (Naohiro Ono) Solution: Get variable value before operation. (closes #8416) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3030 Problem: Coverity reports a memory leak. Solution: Fix the leak and a few typos. (Dominique Pellé, closes #8418) Files: src/crypt.c, src/errors.h Patch 8.2.3031 Problem: No error if a function name starts with an underscore. (Naohiro Ono) Solution: In Vim9 script disallow a function name starting with an underscore, as is mentioned in the help. (closes #8414) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3032 Problem: Build problems with MSVC, other crypt issues with libsodium. Solution: Adjust MSVC makefile. Disable swap file only when 'key' is set. Adjust error message used when key is wrong. Fix Coverity issues. (Christian Brabandt, closes #8420, closes #8411) Files: src/Make_mvc.mak, src/crypt.c, src/errors.h, src/fileio.c, src/memline.c, src/proto/crypt.pro Patch 8.2.3033 Problem: No error when using alpha delimiter with :global. Solution: Check the delimiter like with :substitute. (closes #8415) Files: src/ex_cmds.c, src/testdir/test_global.vim Patch 8.2.3034 Problem: Installing packages on github CI sometimes fails. Solution: Update package information first. (Christian Brabandt, closes #8432) Files: .github/workflows/ci.yml Patch 8.2.3035 Problem: Vim9: crash when calling :def function with partial and return type is not set. Solution: When the return type is not set handle like the return type is unknown. (closes #8422) Files: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.3036 Problem: Vim9: builtin function arguments not checked at compile time. Solution: Add more argument type specs. Check arguments to test_setmouse() and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425) Files: src/evalfunc.c, src/testdir/test_assert.vim, src/testdir/test_gui.vim, src/testdir/test_popupwin.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.3037 Problem: Configure reports libcanberra when checking for libsodium. Solution: Adjust the message. (Ozaki Kiichi, closes #8435) Files: src/configure.ac, src/auto/configure Patch 8.2.3038 Problem: Amiga built-in version string doesn't include build date. Solution: Add the build date if available. (Ola Söder, closes #8437) Files: src/os_amiga.c Patch 8.2.3039 Problem: Vim9: breakpoint at a comment line does not work. Solution: Add the comment line number to the debug instruction. (closes #8429) Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_debugger.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3040 Problem: GUI: dropping files not tested. Solution: Add test_gui_drop_files() and tests. (Yegappan Lakshmanan, closes #8434) Files: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/gui.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testing.c Patch 8.2.3041 Problem: Detecting if the process of a swap file is running fails if the process is owned by another user. Solution: Check for the ESRCH error. (closes #8436) Files: src/os_unix.c Patch 8.2.3042 (after 8.2.3041) Problem: Swap file test fails. Solution: Check for a very high process ID instead of one, which should be running. Files: src/testdir/test_swap.vim Patch 8.2.3043 Problem: Amiga: cannot get the shell size on MorphOS and AROS. Solution: Use control sequences. (Ola Söder, closes #8438) Files: src/os_amiga.c Patch 8.2.3044 Problem: Amiga MorphOS and AROS: process ID is not valid. Solution: Use FindTask to return something which is unique to all processes. (Ola Söder, closes #8444) Files: src/os_amiga.c Patch 8.2.3045 Problem: Minor typos. Solution: Fix the typos. (Christian Brabandt, closes #8441) Files: src/VisVim/README_VisVim.txt, src/evalfunc.c, src/testdir/vim9.vim Patch 8.2.3046 Problem: Amiga MorphOS: Term mode is set using DOS packets. Solution: Use the same way of setting term mode on all next gen Amiga-like systems. (Ola Söder, closes #8445) Files: src/os_amiga.c Patch 8.2.3047 Problem: Increment and decrement don't allow for next command. Solution: Allow for comment and next command. (closes #8442) Files: src/ex_cmds.h, src/vim9script.c, src/testdir/test_vim9_assign.vim Patch 8.2.3048 Problem: Strange error for white space after ++ command. Solution: Check for white space explicitly. (closes #8440) Files: src/vim9script.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3049 Problem: JSON patch file not recognized. Solution: Recognize json-patch as json. (Kevin Locke, closes #8450) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3050 Problem: Cannot recognize elixir files. Solution: Recognize Elixir-specific files. Check if an .ex file is Euphoria or Elixir. (Austin Gatlin, closes #8401, closes #8446) Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3051 Problem: Vim9: for loop with one list variable does not work. Solution: Use a separate flag for unpacking a list. (closes #8452) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3052 Problem: Vim9: "legacy call" does not work. Solution: Do not skip "call" after "legacy". (closes #8454) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3053 Problem: Vim9: cannot assign to @@ in :def function Solution: Handle '@' like '"'. (closes #8456) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3054 Problem: Vim9: unpack assignment using "_" after semicolon fails. Solution: Drop the expression result. (closes #8453) Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.3055 Problem: Strange error for assigning to "x.key" on non-dictionary. Solution: Add a specific error message. (closes #8451) Files: src/eval.c, src/errors.h, src/testdir/test_vim9_assign.vim, src/testdir/test_listdict.vim, src/testdir/test_let.vim Patch 8.2.3056 Problem: Vim9: using default value in lambda gives confusing error. Solution: Pass "default_args" on the first pass to get the arguments. (closes #8455) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3057 Problem: Vim9: debugger test fails with normal features and +terminal. (Dominique Pellé) Solution: Adjust the INSTRUCTIONS macro. (closes #8460) Files: src/vim9.h Patch 8.2.3058 (after 8.2.3056) Problem: Vim9: cannot use ternary operator in parentheses. Solution: Do not use "==" for a default argument value. (closes #8462) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3059 (after 8.2.3056) Problem: Vim9: memory leak when using lambda. Solution: Do not store the default value strings when skipping. Files: src/userfunc.c Patch 8.2.3060 (after 8.2.3056) Problem: Vim9: cannot use ternary operator in parentheses. Solution: Do not use "=~" for a default argument value. (closes #8462) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3061 Problem: Testing the shell option is incomplete and spread out. Solution: Move shell tests to one file and increase coverage. (Yegappan Lakshmanan, closes #8464) Files: src/testdir/Make_all.mak, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_shell.vim, src/testdir/test_system.vim Patch 8.2.3062 Problem: Internal error when adding several text properties. Solution: Do not handle text properties when deleting a line for splitting a data block. (closes #8466) Files: src/structs.h, src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3063 Problem: Crash when switching 'cryptmethod' to xchacha20 with an existing undo file. (Martin Tournoij) Solution: Disable reading undo file when decoding can't be done inplace. (issue #8467) Files: src/fileio.c, src/bufwrite.c Patch 8.2.3064 Problem: Vim9: in script cannot set item in uninitialized list. Solution: When a list is NULL allocate an empty one. (closes #8461) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.3065 Problem: Vim9: error when sourcing script twice and reusing a function name. Solution: Check if the function is dead. (closes #8463) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3066 Problem: Vim9: debugging lambda does not work. Solution: Use the compile type of the function when compiling a lambda. (closes #8412) Files: src/vim9compile.c, src/testdir/test_debugger.vim Patch 8.2.3067 Problem: Building fails with Athena. (Elimar Riesebieter) Solution: Adjust #ifdefs and add the 'drop_file' feature. Files: src/evalfunc.c, src/testing.c, src/testdir/test_gui.vim Patch 8.2.3068 Problem: Unicode tables are slightly outdated. Solution: Update the tables for Unicode release 13. (Christian Brabandt closes #8430) Files: runtime/tools/unicode.vim, src/mbyte.c Patch 8.2.3069 Problem: Error messages are spread out. Solution: Move some error messages to errors.h. Use clearer names. Files: src/errors.h, src/globals.h, src/arglist.c, src/buffer.c, src/channel.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/filepath.c, src/fold.c, src/getchar.c, src/indent.c, src/list.c, src/map.c, src/mark.c, src/normal.c, src/ops.c, src/optionstr.c, src/popupwin.c, src/quickfix.c, src/spellfile.c, src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/window.c Patch 8.2.3070 Problem: Not enough testing for shell use. Solution: Add a bit more testing. (Yegappan Lakshmanan, closes #8469) Files: src/testdir/test_shell.vim, src/testdir/test_startup.vim Patch 8.2.3071 Problem: Shell options are not set properly for PowerShell. Solution: Use better option defaults. (Mike Williams, closes #8459) Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, src/fileio.c, src/misc2.c, src/option.c, src/os_win32.c, src/testdir/test_shell.vim Patch 8.2.3072 Problem: The "zy" command does not work well when 'virtualedit' is set to "block". (Johann Höchtl) Solution: Make endspaces zero. (Christian Brabandt, closes #8468, closes #8448) Files: src/register.c, src/testdir/test_visual.vim Patch 8.2.3073 Problem: When cursor is moved for block append wrong text is inserted. Solution: Calculate an offset. (Christian Brabandt, closes #8433, closes #8288) Files: src/ops.c, src/testdir/test_blockedit.vim, src/testdir/test_visual.vim Patch 8.2.3074 Problem: popup_atcursor() uses wrong position with concealing. Solution: Keep w_wcol in conceal_check_cursor_line(). (closes #8476) Files: src/screen.c, src/proto/screen.pro, src/normal.c, src/edit.c, src/ui.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_atcursor_pos.dump Patch 8.2.3075 Problem: Xxd always reports an old version string. (Åsmund Ervik) Solution: Update the version string with the last known change date. (Jürgen Weigert, closes #8475) Files: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3076 Problem: Vim9: using try in catch block causes a hang. Solution: Save and restore the ec_in_catch flag. (closes #8478) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3077 Problem: Vim9: an error in a catch block is not reported. Solution: Put the "in catch" flag in the try stack. (closes #8478) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3078 Problem: Vim9: profile test fails. Solution: Make throw in :catch jump to :finally. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3079 Problem: Powershell core not supported by default. Solution: Set option defaults for "pwsh". (Mike Williams, closes #8481) Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_win32.txt, src/fileio.c, src/misc2.c, src/option.c, src/os_win32.c, src/testdir/test_shell.vim Patch 8.2.3080 Problem: Recover test fails on 32bit systems. (Ondřej Súkup) Solution: Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485, closes #8479) Files: src/testdir/test_recover.vim Patch 8.2.3081 Problem: Cannot catch errors in a channel command. Solution: Instead of skipping the error make it silent. (closes #8477) Files: src/channel.c Patch 8.2.3082 Problem: A channel command "echoerr" does not show anything. Solution: Do not use silent errors when using an "echoerr" command. (closes #8494) Files: src/channel.c, src/testdir/test_channel.py, src/testdir/test_channel.vim Patch 8.2.3083 Problem: Crash when passing null string to charclass(). Solution: Bail out when string pointer is NULL. (Christian Brabandt, closes #8498, closes #8260) Files: src/mbyte.c, src/testdir/test_functions.vim Patch 8.2.3084 Problem: Vim9: builtin function argument types are not checked at compile time. Solution: Add argument types. (Yegappan Lakshmanan, closes #8503) Files: src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3085 Problem: JSONC files are not recognized. Solution: Recognize .jsonc files. (Izhak Jakov, closes #8500) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3086 Problem: Vim9: breakpoint on "for" does not work. Solution: Use the right line number in ISN_DEBUG. (closes #8486) Files: src/vim9compile.c, src/testdir/test_debugger.vim Patch 8.2.3087 Problem: Gemtext files are not recognized. Solution: Recognize .gmi and .gemini files. (closes #8427) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3088 Problem: With 'virtualedit' set to "block" Visual highlight is wrong after using "$". (Marco Trosi) Solution: Do not set w_old_cursor_lcol to MAXCOL. (closes #8495) Files: src/drawscreen.c, src/testdir/test_visual.vim, src/testdir/dumps/Test_visual_block_with_virtualedit.dump Patch 8.2.3089 Problem: Garbage collection has useless code. Solution: Bail out when aborting. (closes #8504) Files: src/userfunc.c Patch 8.2.3090 Problem: With concealing enabled and indirectly closing a fold the cursor may be somewhere in a folded line. Solution: Recompute the cursor position when the cursor line can be concealed. (closes #8480) Files: src/drawscreen.c Patch 8.2.3091 Problem: Vim9: default argument expression cannot use previous argument Solution: Correct argument index. (closes #8496) Files: src/vim9compile.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.3092 Problem: Vim9: builtin function test fails without the +channel feature. Solution: Check the +channel feature is supported. (Dominique Pellé, closes #8507) Files: runtime/doc/eval.txt, src/testdir/test_vim9_builtin.vim Patch 8.2.3093 Problem: tablabel_tooltip test fails with Athena. (Dominique Pellé) Solution: Skip the test when using Athena. (closes #8508) Files: src/testdir/test_gui.vim, src/testdir/check.vim Patch 8.2.3094 Problem: Test_popup_atcursor_pos() fails without the conceal feature. Solution: Add a check for the conceal feature. (Dominique Pellé, closes #8505) Files: src/testdir/test_popupwin.vim Patch 8.2.3095 (after 8.2.3088) Problem: With 'virtualedit' set to "block" block selection is wrong after using "$". (Marco Trosi) Solution: Compute the longest selected line. (closes #8495) Files: src/drawscreen.c, src/testdir/test_visual.vim, src/testdir/dumps/Test_visual_block_with_virtualedit2.dump Patch 8.2.3096 Problem: Temp files remain after running tests. Solution: Delete the right files. (Dominique Pellé, closes #8509) Files: src/testdir/test_debugger.vim, src/testdir/test_lambda.vim, src/testdir/test_visual.vim Patch 8.2.3097 Problem: Crash when using "quit" at recovery prompt and autocommands are triggered. Solution: Block autocommands when creating an empty buffer to use as the current buffer. (closes #8506) Files: src/buffer.c, src/testdir/test_swap.vim Patch 8.2.3098 Problem: Popup window test is flaky on MS-Windows with GUI. Solution: Skip the check in this situation. Files: src/testdir/test_popupwin.vim Patch 8.2.3099 Problem: Vim9: missing catch/finally not reported at script level. Solution: Give an error. (closes #8487) Files: src/structs.h, src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3100 Problem: Vim9: no error when using type with unknown number of arguments. Solution: Do not ignore argument count of -1. (closes #8492) Files: src/vim9type.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.3101 Problem: Missing function prototype for vim_round(). Solution: Add the prototype. Files: src/proto/float.pro Patch 8.2.3102 (after 8.2.3097) Problem: Test for crash fix does not fail without the fix. Solution: Adjust the test sequence. (closes #8506) Files: src/testdir/test_swap.vim Patch 8.2.3103 (after 8.2.3102) Problem: Swap test may fail on some systems when jobs take longer to exit. Solution: Use different file names. Files: src/testdir/test_swap.vim Patch 8.2.3104 Problem: Vim9: unspecified function type causes type error. Solution: Don't check type when min_argcount is negative. (issue #8492) Files: src/globals.h, src/vim9type.c, src/testdir/test_vim9_assign.vim Patch 8.2.3105 Problem: Vim9: type of partial is wrong when it has arguments. Solution: Subtract arguments from the count. (issue #8492) Files: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3106 Problem: Vim9: confusing line number reported for error. Solution: Use the start line number for the store instruction. (closes #8488) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3107 Problem: Vim9: error for arguments while type didn't specify arguments. Solution: Do not update that type to check when no argument count is specified. (closes #8492) Files: src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3108 Problem: Test for remote_foreground() fails. (Elimar Riesebieter) Solution: Check that $DISPLAY is set. (Christian Brabandt) Files: src/testdir/check.vim, src/testdir/test_clientserver.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3109 Problem: Check for $DISPLAY never fails. Solution: Use eval(). Files: src/testdir/check.vim Patch 8.2.3110 Problem: A pattern that matches the cursor position is a bit complicated. Solution: Use a dot to indicate the cursor line and column. (Christian Brabandt, closes #8497, closes #8179) Files: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.3111 Problem: Vim9: confusing error with extra whitespace before colon. Solution: Check for colon after white space. (closes #8513) Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3112 (after 8.2.3090) Problem: With concealing enabled and indirectly closing a fold the cursor may be somewhere in a folded line when it is not on the first line of the fold. Solution: Check if the cursor is somewhere in the folded text. Files: src/drawscreen.c Patch 8.2.3113 Problem: No error when for loop variable shadows script variable. Solution: Check for the error. (closes #8512) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3114 Problem: Amiga-like systems: build error checking for running process Solution: Only build swapfile_process_running() on systems where it is actually used. (Ola Söder, closes #8519) Files: src/memline.c Patch 8.2.3115 Problem: Coverity complains about free_wininfo() use. Solution: Add a condition that "wip2" is not equal to "wip". (Neovim #14996) Files: src/window.c Patch 8.2.3116 Problem: Vim9: crash when debugging a function with line continuation. Solution: Check for a NULL pointer. (closes #8521) Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3117 Problem: Vim9: type not properly checked in for loop. Solution: Have items() return a list of lists. Add runtime type checks. (closes #8515) Files: src/evalfunc.c, src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3118 Problem: Vim9: "any" type not handled correctly in for loop. Solution: Change compile time check into runtime check. (closes #8516) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3119 Problem: Compiler warning for unused argument. Solution: Add UNUSED. Files: src/evalfunc.c Patch 8.2.3120 Problem: Crypt with sodium test fails on MS-Windows. Solution: Make the tests pass. (closes #8428) Files: src/testdir/test_crypt.vim Patch 8.2.3121 Problem: 'listchars' "exceeds" character appears in foldcolumn. Window separator is missing. (Leonid V. Fedorenchik) Solution: Only draw the "exceeds" character in the text area. Break the loop when not drawing the text. (closes #8524) Files: src/drawline.c, src/testdir/test_listchars.vim, src/testdir/dumps/Test_listchars_01.dump, src/testdir/dumps/Test_listchars_02.dump, src/testdir/dumps/Test_listchars_03.dump, src/testdir/dumps/Test_listchars_04.dump, src/testdir/dumps/Test_listchars_05.dump Patch 8.2.3122 Problem: With 'nowrap' cursor position is unexpected in narrow window. (Leonid V. Fedorenchik) Solution: Put cursor on the last non-empty line. (closes #8525) Files: src/move.c, src/testdir/test_listchars.vim, src/testdir/dumps/Test_listchars_06.dump, src/testdir/dumps/Test_listchars_07.dump Patch 8.2.3123 Problem: Vim9: confusing error when using white space after option, before one of "!&<". Solution: Give a specific error. (issue #8408) Files: src/errors.h, src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3124 Problem: Vim9: no error for white space between option and "=9". Solution: Check for extraneous white space. (issue #8408) Files: src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3125 Problem: Variables are set but not used. Solution: Move the declarations to the block where they are used. (closes #8527) Files: src/regexp_nfa.c Patch 8.2.3126 Problem: Vim9: for loop error reports wrong line number. Solution: Save and restore the line number when evaluating the expression. (closes #8514) Files: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3127 Problem: Vim9: no error when adding number to list of string. Solution: Check the value type. (closes #8529) Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3128 Problem: Vim9: uninitialized list does not get type checked. Solution: Set the type when initializing the variable. (closes #8529) Files: src/eval.c, src/evalvars.c, src/vim9script.c, src/userfunc.c, src/proto/vim9script.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.3129 Problem: Vim9: imported uninitialized list does not get type checked. Solution: Get type from imported variable. Files: src/eval.c, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3130 Problem: Vim9: import test fails. Solution: Rename directory back to "import", use "p" to avoid an error when the directory already exists. Files: src/testdir/test_vim9_script.vim Patch 8.2.3131 Problem: MS-Windows: ipv6 channel test is very flaky in the GUI. Solution: Skip the test. Files: src/testdir/test_channel.vim Patch 8.2.3132 Problem: Compiler warns for size_t to colnr_T conversion. (Randall W. Morris) Solution: Add a type cast. Files: src/drawscreen.c Patch 8.2.3133 Problem: Vim9: memory leak when add() fails. Solution: Allocate listitem_T after type check. Files: src/list.c Patch 8.2.3134 Problem: Crash when using typename() on a function reference. (Naohiro Ono) Solution: Initialize pointer to NULL. (closes #8531) Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3135 Problem: Vim9: builtin function arguments not checked at compile time. Solution: Add more type checks. (Yegappan Lakshmanan, closes #8539) Files: src/channel.c, src/errors.h, src/evalfunc.c, src/proto/typval.pro, src/terminal.c, src/testdir/test_search.vim, src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, src/testing.c, src/textprop.c, src/typval.c Patch 8.2.3136 Problem: No test for E187 and "No swap file". Solution: Add a test. (Dominique Pellé, closes #8540) Files: src/testdir/test_cd.vim, src/testdir/test_swap.vim Patch 8.2.3137 Problem: Vim9: no error when a line only has a variable name. Solution: Give an error when an expression is evaluated without an effect. (closes #8538) Files: src/ex_eval.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.3138 (after 8.2.3137) Problem: Debugger test fails. Solution: Adjust eval command. Files: src/testdir/test_debugger.vim Patch 8.2.3139 Problem: Functions for string manipulation are spread out. Solution: Move string related functions to a new source file. (Yegappan Lakshmanan, closes #8470) Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/mbyte.c, src/misc1.c, src/misc2.c, src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/mbyte.pro, src/proto/misc1.pro, src/proto/misc2.pro, src/proto/strings.pro, src/strings.c Patch 8.2.3140 (after 8.2.3131) Problem: MS-Windows: ipv6 channel test is very flaky also without the GUI. Solution: Skip the test also without the GUI. Files: src/testdir/test_channel.vim Patch 8.2.3141 Problem: No error when using :complete for :command without -nargs. Solution: Give an error. (Martin Tournoij, closes #8544, closes #8541) Files: src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim Patch 8.2.3142 Problem: Vim9: type check for has_key() argument is too strict. Solution: Also allow for a number key argument. (closes #8542) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3143 Problem: Vim9: A lambda may be compiled with the wrong context if it is called from a profiled function. Solution: Compile the lambda with and without profiling. (closes #8543) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3144 Problem: Vim9: no error when using an invalid value for a line number. Solution: Give an error if the string value is not recognized. (closes #8536) Files: src/errors.h, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3145 Problem: Vim9: profile test fails without profile feature. Solution: Check the profile feature is present. Files: src/testdir/test_vim9_script.vim Patch 8.2.3146 Problem: Vim9: line number wrong for :execute argument. Solution: Use the line number of the :execute command itself. (closes #8537) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3147 Problem: Vim9: profiling does not work with a nested function. Solution: Also compile a nested function without profiling. (closes #8543) Handle that compiling may cause the table of compiled functions to change. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3148 Problem: Vim9: function arg type check does not handle base offset. Solution: Take the base offset into account when checking builtin function argument types. Files: src/evalfunc.c, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3149 (after 8.2.3141) Problem: Some plugins have a problem with the error check for using :command with -complete but without -nargs. Solution: In legacy script only give a warning message. Files: src/usercmd.c, src/message.c, src/proto/message.pro, src/testdir/test_usercommands.vim Patch 8.2.3150 Problem: Vim9: argument types are not checked at compile time. Solution: Add more type checks. (Yegappan Lakshmanan, closes #8545) Files: src/evalfunc.c, src/testing.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3151 Problem: Vim9: profiling fails if nested function is also profiled. Solution: Use the compile type from the outer function. (closes #8543) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3152 Problem: Vim9: accessing "s:" results in an error. Solution: Do not try to lookup a script variable for "s:". (closes #8549) Files: src/evalvars.c, src/testdir/test_vim9_expr.vim Patch 8.2.3153 Problem: URLs with a dash in the scheme are not recognized. Solution: Allow for a scheme with a dash, but not at the start or end. (Tsuyoshi CHO, closes #8299) Files: src/misc1.c, src/testdir/test_buffer.vim Patch 8.2.3154 Problem: Vim9: some type checks for builtin functions fail. Solution: Correct the type checks. (Yegappan Lakshmanan, closes #8551, closes #8550) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3155 Problem: Some option related code not covered by tests. Solution: Add a few test cases. (Dominique Pellé, closes #8552) Files: src/testdir/test_options.vim, src/testdir/test_set.vim Patch 8.2.3156 Problem: Vim9: term_getansicolors() test fails without +termguicolors. Solution: Add a check for the feature. (Dominique Pellé, closes #8555) Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3157 Problem: Crypt test may fail on MS-Windows. Solution: Ignore "[unix]" in the file message. (Christian Brabandt, closes #8561) Files: src/testdir/test_crypt.vim Patch 8.2.3158 Problem: Strange error message when using islocked() with a number. (Yegappan Lakshmanan) Solution: Check that the name is empty. Files: src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.3159 Problem: Cursor displayed in wrong position after deleting line. Solution: When deleting lines do not approximate botline. (fixes #8559) Files: src/change.c Patch 8.2.3160 Problem: 'breakindent' does not work well for bulleted and numbered lists. Solution: Add the "list" entry to 'breakindentopt'. (Christian Brabandt, closes #8564, closes #1661) Files: runtime/doc/options.txt, src/indent.c, src/structs.h, src/testdir/test_breakindent.vim Patch 8.2.3161 Problem: Vim9: no error when reltime() has invalid arguments. Solution: Add an error. (closes #8562) Files: src/time.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3162 Problem: Vim9: argument types are not checked at compile time. Solution: Add more type checks. (Yegappan Lakshmanan, closes #8560) Files: runtime/doc/channel.txt, src/clientserver.c, src/cmdhist.c, src/errors.h, src/evalfunc.c, src/evalwindow.c, src/filepath.c, src/globals.h, src/popupwin.c, src/proto/typval.pro, src/sign.c, src/strings.c, src/terminal.c, src/testdir/test_normal.vim, src/testdir/test_reltime.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c Patch 8.2.3163 Problem: Location list window may open a wrong file. Solution: Also update the qf_ptr field. (Wei-Chung Wen, closes #8565, closes #8566) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3164 Problem: MS-Windows: reported version lacks patchlevel, causing some update tools to update too often. (Klaus Frank) Solution: Add the patchlevel to the version. (Christian Brabandt) Files: src/dosinst.c Patch 8.2.3165 Problem: Vim9: in a || expression the error line number may be wrong. Solution: Save and restore the line number when checking the type. (closes #8569) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3166 Problem: Vim9: nested autoload call error overruled by "Unknown error". Solution: Check need_rethrow before giving an "Unknown error". (closes #8568) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3167 Problem: Get E12 in a job callback when searching for tags. (Andy Stewart) Solution: Use the sandbox only for executing a command, not for searching. (closes #8511) Files: src/tag.c Patch 8.2.3168 Problem: Vim9: type error for constant of type any. Solution: Do add a runtime type check if a constant has type any. (closes #8570) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3169 Problem: Vim9: cannot handle nested inline function. Solution: Check for nested inline function. (closes #8575) Files: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3170 Problem: Illegal memory access in test. Solution: Check pointer is not before the start of the line. Files: src/userfunc.c Patch 8.2.3171 Problem: Another illegal memory access in test. Solution: Check pointer is after the start of the line. Files: src/userfunc.c Patch 8.2.3172 Problem: MzScheme test fails. (Christian Brabandt) Solution: Correct function name. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3173 Problem: Vim9: argument types are not checked at compile time. Solution: Add more type checks. (Yegappan Lakshmanan, closes #8581) Files: src/diff.c, src/errors.h, src/evalfunc.c, src/globals.h, src/job.c, src/proto/typval.pro, src/strings.c, src/terminal.c, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3174 Problem: Vim9: "legacy undo" finds "undo" variable. Solution: Do not pass lookup function to find_ex_command(). (closes #8563) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3175 Problem: Vim9: using illegal pointer with inline function inside a lambda. Solution: Clear eval_tofree_cmdline when advancing to the next line. (closes #8578) Files: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.3176 Problem: Vim9: no type error for comparing number with string. Solution: Add a runtime type check. (closes #8571) Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.3177 Problem: Vim9: can not use "for _ in expr" at script level. Solution: Skip assignment if the loop variable is "_". Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3178 Problem: Vim9: the file name of an :import cannot be an expression. Solution: Accept an expression that results in a string. Do not support :import in a function. Files: runtime/doc/vim9.txt, src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3179 Problem: Vim9: cannot assign to an imported variable at script level. Solution: Lookup imported items when assigning. Files: src/evalvars.c, src/errors.h, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3180 Problem: Vim9: memory leak when concatenating to an imported string. Solution: Clear the destination. Files: src/evalvars.c Patch 8.2.3181 Problem: Vim9: builtin function test fails without channel feature. Solution: Add feature checks. (Dominique Pellé, closes #8586) Make feature checks more consistent. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3182 Problem: Vim9: crash when using removing items from a constant list. (Yegappan Lakshmanan) Solution: When a list was allocated with items copy them. Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3183 Problem: Duplicate error numbers. Solution: Adjust the error numbers. Files: src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3184 Problem: Cannot add a digraph with a leading space. It is not easy to list existing digraphs. Solution: Add setdigraph(), setdigraphlist(), getdigraph() and getdigraphlist(). (closes #8580) Files: runtime/doc/digraph.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/digraph.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h, src/errors.h, src/proto/digraph.pro, src/testdir/test_digraph.vim Patch 8.2.3185 Problem: Vim9: start of inline function found in comment line. Solution: Do not check for inline function in comment line. (closes #8589) Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.3186 Problem: Vim9: not all failures for import tested Solution: Test more import failures Files: src/errors.h, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.3187 Problem: Vim9: popup timer callback is not compiled. Solution: Compile the callback when creating the timer. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/popupwin.c Patch 8.2.3188 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks, also at runtime. (Yegappan Lakshmanan, closes #8587) Files: src/blob.c, src/channel.c, src/clientserver.c, src/cmdexpand.c, src/cmdhist.c, src/dict.c, src/diff.c, src/errors.h, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/filepath.c, src/globals.h, src/insexpand.c, src/job.c, src/list.c, src/map.c, src/match.c, src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, src/strings.c, src/terminal.c, src/testdir/test_blob.vim, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c Patch 8.2.3189 Problem: Vim9: error when using "try|". Solution: Allow for "|" right after a command. Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.3190 Problem: Error messages are spread out. Solution: Move error messages to errors.h and give them a clear name. Files: src/globals.h, src/errors.h, src/buffer.c, src/debugger.c, src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/gui.c, src/list.c, src/main.c, src/map.c, src/match.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, src/session.c, src/spell.c, src/syntax.c, src/time.c, src/userfunc.c, src/vim9execute.c, src/window.c Patch 8.2.3191 Problem: Vim9: not enough code is tested. Solution: Use CheckLegacyAndVim9Success() in more places. Fix uncovered problems. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_listdict.vim Patch 8.2.3192 (after 8.2.3190) Problem: Build failure with small version (Tony Mechelynck). Solution: Remove stray #ifdef. Files: src/errors.h Patch 8.2.3193 Problem: screenpos() is wrong when the last line is partially visible and 'display' is "lastline". Solution: Also compute the position for a partially visible line. (closes #8599) Files: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.3194 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks, simplify some. (Yegappan Lakshmanan, closes #8598) Files: src/diff.c, src/evalbuffer.c, src/evalfunc.c, src/job.c, src/proto/typval.pro, src/sign.c, src/terminal.c, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3195 Problem: Vim9: unclear error when passing too many arguments to lambda. Solution: Pass the expression itself instead of "[expression]". (closes #8604) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3196 Problem: Vim9: bool expression with numbers only fails at runtime. Solution: Check constant to be bool at compile time. (closes #8603) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3197 Problem: Error messages are spread out. Solution: Move a few more error messages to errors.h. Files: src/globals.h, src/errors.h, src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/evalvars.c, src/option.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c, src/regexp.c, src/undo.c, src/vim9compile.c, src/vim9script.c Patch 8.2.3198 Problem: Cannot use 'formatlistpat' for breakindent. Solution: Use a negative list indent. (Maxim Kim, closes #8594) Files: runtime/doc/options.txt, src/indent.c, src/testdir/test_breakindent.vim Patch 8.2.3199 Problem: Vim9: execution speed can be improved. Solution: Make the break counter static. Files: src/vim9execute.c Patch 8.2.3200 Problem: Vim9: hard to guess where a type error is given. Solution: Add the function name where possible. (closes #8608) Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/list.c, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/if_py_both.h, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3201 (after 8.2.3200) Problem: Crash in test. Solution: Initialize "where". Files: src/eval.c, src/evalvars.c Patch 8.2.3202 Problem: Vim9: tests are only executed for legacy script. Solution: Run more tests also for Vim9 script. Fix uncovered problems. Files: src/vim9execute.c, src/ex_docmd.c, src/testdir/test_listdict.vim Patch 8.2.3203 Problem: Vim9: compiled string expression causes type error. (Yegappan Lakshmanan) Solution: Remove the string type from the stack. Files: src/vim9compile.c, src/evalfunc.c Patch 8.2.3204 Problem: Display garbled when 'cursorline' is set and lines wrap. (Gabriel Dupras) Solution: Avoid inserting lines twice. (closes #7255) Files: src/drawscreen.c, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_redraw_1.dump, src/testdir/dumps/Test_cursorline_redraw_2.dump Patch 8.2.3205 Problem: Coverity reports a null pointer dereference. Solution: Change the logic to avoid Coverity gets confused. Files: src/vim9compile.c Patch 8.2.3206 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8611) Files: runtime/doc/eval.txt, src/blob.c, src/cmdhist.c, src/dict.c, src/errors.h, src/evalfunc.c, src/filepath.c, src/globals.h, src/job.c, src/list.c, src/match.c, src/misc1.c, src/popupwin.c, src/proto/typval.pro, src/sign.c, src/terminal.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3207 Problem: Vim9: crash when compiling string fails. (Yegappan Lakshmanan) Solution: Adjust the type stack length. Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3208 Problem: Dynamic library load error does not mention why it failed. Solution: Add the error message. (Martin Tournoij, closes #8621) Files: src/globals.h, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/os_win32.pro, src/terminal.c Patch 8.2.3209 Problem: Vim9: lambda doesn't find block-local variable. Solution: Adjust how a script-local variable is found. (closes #8614) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3210 Problem: Vim9: searchpair() sixth argument is compiled. (Yegappan Lakshmanan) Solution: Only compile the fifth argument. Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3211 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks. Fix type check for matchaddpos(). (Yegappan Lakshmanan, closes #8619) Files: src/channel.c, src/evalfunc.c, src/evalvars.c, src/if_cscope.c, src/job.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim, src/time.c, src/typval.c Patch 8.2.3212 Problem: Vim9: execution speed can be improved. Solution: Use __builtin_expect() to have the compiler produce better code. (Dominique Pellé, closes #8613) Files: src/vim9execute.c Patch 8.2.3213 Problem: NOCOMPOUNDSUGS entry in spell file not tested. Solution: Add a test. (Dominique Pellé, closes #8624) Files: src/testdir/test_spellfile.vim Patch 8.2.3214 Problem: MS-Windows: passing /D does not set the install location. Solution: Adjust how the installer uses $VIM. Update the documentation. (Christian Brabandt, Ken Takata, closes #8605) Files: nsis/gvim.nsi, runtime/doc/os_win32.txt Patch 8.2.3215 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks. Sort the argument lists. (Yegappan Lakshmanan, closes #8626) Files: src/change.c, src/evalfunc.c, src/filepath.c, src/sound.c, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.3216 Problem: Vim9: crash when using variable in a loop at script level. Solution: Do not clear the variable if a function was defined. Do not create a new entry in sn_var_vals every time. (closes #8628) Files: src/eval.c, src/ex_eval.c, src/vim9script.c, src/userfunc.c, src/evalvars.c, src/structs.h Patch 8.2.3217 (after 8.2.3216) Problem: Build failure. Solution: Add missing changes. Files: src/globals.h Patch 8.2.3218 Problem: When using xchacha20 crypt undo file is not removed. Solution: Reset 'undofile' and delete the file. (Christian Brabandt, closes #8630, closes #8467) Files: src/bufwrite.c, src/crypt.c, src/proto/undo.pro, src/testdir/test_crypt.vim, src/undo.c Patch 8.2.3219 Problem: :find searches non-existing directories. Solution: Check the path is not "..". Update help. (Christian Brabandt, closes #8612, closes #8533) Files: runtime/doc/editing.txt, src/findfile.c, src/testdir/test_findfile.vim Patch 8.2.3220 Problem: Test_term_setansicolors() fails in some configurations. Solution: Check available features. (Dominique Pellé, closes #8636) Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3221 Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8632) Files: src/evalfunc.c, src/popupwin.c, src/proto/typval.pro, src/testdir/test_assert.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c Patch 8.2.3222 Problem: Vim9: cannot use loop variable later as lambda argument. Solution: When not in function context check the current block ID. (closes #8637) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3223 Problem: Vim: using {} block in autoloaded omnifunc fails. Solution: Allow using {} block when text is locked. (closes #8631) Files: src/ex_cmds.h, src/testdir/test_ins_complete.vim Patch 8.2.3224 Problem: Cannot call script-local function after :vim9cmd. (Christian J. Robinson) Solution: Skip over "<SNR>123". Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3225 Problem: Incsearch highlighting is attempted halfway a mapping. Solution: Only do incsearch highlighting if keys were typed or there is no more typeahead. Files: src/ex_getln.c Patch 8.2.3226 Problem: New digraph functions use old naming scheme. Solution: Use the digraph_ prefix. (Hirohito Higashi, closes #8642) Files: runtime/doc/digraph.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h, src/evalfunc.c, src/proto/digraph.pro, src/testdir/test_digraph.vim Patch 8.2.3227 Problem: 'virtualedit' can only be set globally. Solution: Make 'virtualedit' global-local. (Gary Johnson, closes #8638) Files: runtime/doc/options.txt, src/buffer.c, src/change.c, src/drawscreen.c, src/edit.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/proto/option.pro, src/register.c, src/structs.h, src/testdir/test_virtualedit.vim Patch 8.2.3228 Problem: Cannot use a simple block for the :command argument. (Maarten Tournoij) Solution: Recognize a simple {} block. (issue #8623) Files: runtime/doc/map.txt, src/misc2.c, src/proto/misc2.pro, src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.3229 Problem: Vim9: runtime and compile time type checks are not the same. Solution: Add more runtime type checks for builtin functions. (Yegappan Lakshmanan, closes #8646) Files: src/arglist.c, src/change.c, src/channel.c, src/cindent.c, src/clientserver.c, src/cmdhist.c, src/dict.c, src/diff.c, src/digraph.c, src/errors.h, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalwindow.c, src/ex_docmd.c, src/ex_getln.c, src/filepath.c, src/findfile.c, src/float.c, src/fold.c, src/getchar.c, src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c, src/misc1.c, src/move.c, src/popupwin.c, src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, src/sound.c, src/strings.c, src/terminal.c, src/testdir/test_assert.vim, src/testdir/test_blob.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c, src/undo.c Patch 8.2.3230 Problem: Vim9: type error when function return type is not known yet. Solution: When return type is unknown, use "any". (closes #8644) Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3231 Problem: Build failure with small features. Solution: Adjust #ifdef. Files: src/errors.h Patch 8.2.3232 (after 8.2.3229) Problem: system() does not work without a second argument. Solution: Do not require a second argument. (Yegappan Lakshmanan, closes #8651, closes #8650) Files: src/misc1.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3233 Problem: prop_list() and prop_find() do not indicate the buffer for the used type. Solution: Add "type_bufnr" to the results. (closes #8647) Files: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, src/textprop.c Patch 8.2.3234 Problem: Crash when printing long string with Lua. Solution: Remove lua_pop(). (Martin Tournoij, closes #8648) Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3235 Problem: Cannot use lambda in {} block in user command. (Martin Tournoij) Solution: Do not go over the end of the lambda. Files: src/userfunc.c, src/testdir/test_usercommands.vim Patch 8.2.3236 Problem: mode() does not indicate using CTRL-O in Select mode. Solution: Use "vs" and similar. (closes #8640) Files: runtime/doc/eval.txt, src/globals.h, src/misc1.c, src/normal.c, src/testdir/test_functions.vim Patch 8.2.3237 Problem: When a builtin function gives an error processing continues. Solution: In Vim9 script return FAIL in get_func_tv(). Files: src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3238 Problem: Vim9: error message does not indicate the location. Solution: Add the relevant text. (issue #8634) Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3239 Problem: Vim9: no error using heredoc for a number variable. Solution: Add a type check. (closes #8627) Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.3240 Problem: Lua print() does not work properly. Solution: Put back lua_pop(). Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3241 Problem: Vim9: memory leak when function reports an error. Solution: Clear the return value. Files: src/userfunc.c Patch 8.2.3242 Problem: Vim9: valgrind reports leaks in builtin function test. Solution: Do not start a job. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3243 Problem: MS-Windows: the "edit with multiple Vim" choice is not that useful. Solution: Change it to "Edit with multiple tabs". (Michael Soyka, closes #8645) Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h Patch 8.2.3244 Problem: Lua 5.3 print() with a long string crashes. Solution: Use a growarray instead of a Lua buffer. (Yegappan Lakshmanan, closes #8655) Files: src/if_lua.c, src/misc2.c, src/proto/misc2.pro Patch 8.2.3245 Problem: The crypt key may appear in a swap partition. Solution: When using xchacha20 use sodium_mlock(). (Christian Brabandt, closes #8657) Files: src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c, src/memline.c, src/vim.h Patch 8.2.3246 Problem: Memory use after free. Solution: When clearing a string option set the pointer to "empty_option". Files: src/option.c Patch 8.2.3247 Problem: Using uninitialized memory when checking for crypt method. Solution: Check the header length before using the salt and seed. Files: src/fileio.c Patch 8.2.3248 Problem: Vim9: error message for wrong input uses wrong line number. Solution: Use the line number of the start of the command. (issue #8653) Files: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.3249 Problem: Vim9: error for re-imported function with default argument. Solution: Do not check argument type if it is still unknown. (closes #8653) Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/vim.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3250 Problem: MS-Windows: cannot build with libsodium. Solution: Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt, closes #8668, closes #8663) Files: src/Make_mvc.mak Patch 8.2.3251 Problem: Listing builtin_gui as an available terminal is confusing. Solution: Do not list builtin_gui. (Christian Brabandt, closes #8669, closes #8661) Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.3252 Problem: Duplicated code for adding buffer lines. Solution: Move code to a common function. Also move map functions to map.c. (Yegappan Lakshmanan, closes #8665) Files: src/evalbuffer.c, src/evalfunc.c, src/map.c, src/proto/map.pro Patch 8.2.3253 Problem: Channel test fails randomly. Solution: Add a sleep after sending the "echoerr" command. (Michael Soyka) Files: src/testdir/test_channel.vim, src/testdir/test_channel.py Patch 8.2.3254 Problem: win_gettype() does not recognize a quickfix window. Solution: Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676) Files: runtime/doc/eval.txt, src/evalwindow.c, src/misc2.c, src/testdir/test_quickfix.vim Patch 8.2.3255 Problem: ci" finds following string but ci< and others don't. Solution: When not inside an object find the start. (Connor Lane Smit, closes #8670) Files: src/search.c, src/testdir/test_textobjects.vim, src/textobject.c Patch 8.2.3256 Problem: Executable test may fail on new Ubuntu system. Solution: Consider /usr/bin/cat and /bin/cat the same. Files: src/testdir/test_functions.vim Patch 8.2.3257 Problem: Calling prop_find() with -1 for ID gives erroneous error. (Naohiro Ono) Solution: When passing -1 use -2. (closes #8674) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3258 Problem: Error messages have the wrong text. Solution: Adjust the error message. Files: src/errors.h, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3259 Problem: When 'indentexpr' causes an error the did_throw flag may remain set. Solution: Reset did_throw and show the error. (closes #8677) Files: src/indent.c, src/ex_docmd.c, src/proto/ex_docmd.pro Patch 8.2.3260 Problem: Build failure with small features. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.3261 Problem: Vim9: when compiling repeat(123, N) return type is number. Solution: Make return type a string. (closes #8664) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3262 Problem: Build failure when ABORT_ON_INTERNAL_ERROR is defined. Solution: Adjust how estack_len_before is used. Files: src/ex_docmd.c Patch 8.2.3263 Problem: Vim9: "..=" does not accept same types as the ".." operator. Solution: Convert value to string like ".." does. (issue #8664) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3264 (after 8.2.3263) Problem: Vim9: assign test fails. Solution: Add missing change. Files: src/eval.c Patch 8.2.3265 Problem: Smartcase does not work correctly in very magic pattern. Solution: Take the magicness into account when skipping over regexp items. (Christian Brabandt, closes #8682, closes #7845) Files: src/search.c, src/testdir/test_search.vim Patch 8.2.3266 Problem: Vim9: assignment with two indexes may check next line. Solution: Limit the number of lines to avoid checking the next line when assigning to a LHS subscript. (closes #8660) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3267 Problem: Vim9: crash when disassembling a function that uses a deleted script variable. Solution: Check the variable still exists. (closes #8683) Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3268 Problem: Cannot use a block with :autocmd like with :command. Solution: Add support for a {} block after :autocmd. (closes #8620) Files: runtime/doc/autocmd.txt, runtime/doc/map.txt, src/autocmd.c, src/proto/autocmd.pro, src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c, src/vim.h, src/testdir/test_autocmd.vim Patch 8.2.3269 Problem: Vim9: wrong argument check for partial. (Naohiro Ono) Solution: Handle getting return type without arguments. Correct the minimal number of arguments for what is included in the partial. (closes #8667) Files: src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.3270 Problem: prop_find() finds property with ID -2. Solution: Use a separate flag to indicate an ID was specified. (issue #8674) Files: src/textprop.c Patch 8.2.3271 Problem: Vim9: cannot use :command or :au with a block in a :def function. Solution: Recognize the start of the block. Files: src/userfunc.c, src/usercmd.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3272 Problem: Cannot use id zero with prop_find(). (Naohiro Ono) Solution: Also accept id zero. Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3273 Problem: Autocmd test fails. Solution: Require white space before the "{" that starts a block. Files: src/userfunc.c Patch 8.2.3274 Problem: Macro for printf format check can be simplified. Solution: Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique Pellé, issue #8635) Files: src/channel.c, src/gui_xim.c, src/if_mzsch.c, src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/proto.h, src/term.c, src/vim.h, src/vim9execute.c Patch 8.2.3275 Problem: Optimizer can use hints about ga_grow() normally succeeding. Solution: Use GA_GROW_FAILS() and GA_GROW_OK() in several places. (Dominique Pellé, issue #8635) Files: src/arglist.c, src/macros.h, src/vim9execute.c, src/vim9compile.c Patch 8.2.3276 Problem: Vim9: exists() can only be evaluated at runtime. Solution: Evaluate at compile time for option name literals. (closes #8437) Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.3277 (after 8.2.3276) Problem: Vim9: compiled has() does not work properly. Solution: Fix check for has() vs exists(). Files: src/vim9compile.c Patch 8.2.3278 Problem: Vim9: error when adding 1 to float. Solution: Accept t_number_bool. (closes #8687) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3279 Problem: Vim9: cannot use block in cmdline window. Solution: Add EX_CMDWIN to the CMD_block flags. (closes #8689) Files: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3280 Problem: 'virtualedit' local to buffer is not the best solution. Solution: Make it window-local. (Gary Johnson, closes #8685) Files: runtime/doc/options.txt, src/buffer.c, src/drawscreen.c, src/ops.c, src/option.c, src/option.h, src/optionstr.c, src/structs.h, src/testdir/test_virtualedit.vim Patch 8.2.3281 Problem: Vim9: TODO items in tests can be taken care of. Solution: Update test for now working functionality. (closes #8694) Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.3282 Problem: Vim9: error about using -complete without -nargs is confusing. Solution: Change the wording. Files: src/usercmd.c, src/errors.h Patch 8.2.3283 Problem: Julia filetype is not recognized Solution: Add filetype detection. (Christian Clason, closes #8700) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3284 Problem: No error for insert() or remove() changing a locked blob. Solution: Check a blob is not locked before changing it. (Sean Dewar, closes #8696) Files: src/blob.c, src/errors.h, src/eval.c, src/list.c, src/proto/blob.pro, src/testdir/test_blob.vim, src/testdir/test_eval_stuff.vim Patch 8.2.3285 Problem: Scdoc filetype is not recognized. Solution: Add filetype detection. (Gregory Anders, closes #8701) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3286 Problem: win_enter_ext() has too many boolean arguments. Solution: use one flags argument with defined values. Files: src/window.c Patch 8.2.3287 Problem: Channel events not handled in BufEnter autocommand. Solution: Decrement dont_parse_messages earlier. (Tim Pope, closes #8697) Files: src/window.c, src/testdir/test_channel.vim Patch 8.2.3288 Problem: Cannot easily access namespace dictionaries from Lua. Solution: Add vim.g, vim.b, etc. (Yegappan Lakshmanan, closes #8693, from NeoVim) Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3289 (after 8.2.3287) Problem: Compiler warning for unused variable with small features. Solution: Rearrange #ifdefs. Files: src/window.c Patch 8.2.3290 Problem: Vim9: compiling dict may use pointer after free and leak memory on failure. Solution: Pass a pointer to generate_PUSHS(). (Zdenek Dohnal, closes #8699) Files: src/vim9compile.c Patch 8.2.3291 Problem: Coverity warns for not checking return value. Solution: If dict_add() fails give an error message. Files: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3292 Problem: Underscore in very magic pattern causes a hang. Pattern with \V are case sensitive. (Yutao Yuan) Solution: Adjust condition for magicness and advance pointer. (Christian Brabandt, closes #8707, closes #8704, closes #8705) Files: src/search.c, src/testdir/test_search.vim Patch 8.2.3293 Problem: Finding completions may cause an endless loop. Solution: Use a better way to check coming back where the search started. (Andy Gozas, closes #8672, closes #8671) Files: src/insexpand.c, src/testdir/Make_all.mak, src/testdir/test_ins_complete_no_halt.vim Patch 8.2.3294 Problem: Lua: memory leak when adding dict item fails. Solution: Free the typval and the dict item. Files: src/if_lua.c Patch 8.2.3295 Problem: 'cursorline' should not apply to 'breakindent'. Solution: Make 'cursorline' apply to 'breakindent' and 'showbreak' consistently. (closes #8684) Files: src/drawline.c, src/testdir/dumps/Test_Xcursorline_19.dump, src/testdir/dumps/Test_Xcursorline_20.dump, src/testdir/dumps/Test_Xcursorline_21.dump, src/testdir/dumps/Test_Xcursorline_22.dump, src/testdir/dumps/Test_Xcursorline_23.dump, src/testdir/dumps/Test_Xcursorline_24.dump, src/testdir/dumps/Test_diff_with_cul_bri_01.dump, src/testdir/dumps/Test_diff_with_cul_bri_02.dump, src/testdir/dumps/Test_diff_with_cul_bri_03.dump, src/testdir/dumps/Test_diff_with_cul_bri_04.dump, src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim Patch 8.2.3296 Problem: Vim9: cannot add a number to a float. Solution: Accept a number if the destination is a float. (closes #8703) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3297 Problem: Cannot use all commands inside a {} block after :command and :autocmd. Solution: Do consider \n to separate commands. (closes #8620) Files: runtime/doc/map.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_eval.c, src/proto/ex_eval.pro, src/eval.c, src/evalvars.c, src/ex_cmds.c, src/syntax.c, src/userfunc.c, src/vim9compile.c, src/vim9script.c, src/errors.h, src/testdir/test_autocmd.vim, src/testdir/test_usercommands.vim Patch 8.2.3298 Problem: Build failure with small features. Solution: Add #ifdef. Files: src/ex_docmd.c Patch 8.2.3299 Problem: Vim9: exists() does not handle much at compile time. Solution: Handle variable names. (closes #8688) Files: src/vim9compile.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3300 Problem: Lua: can only execute one Vim command at a time. Not easy to get the Vim version. Solution: Make vim.command() accept multiple lines. Add vim.version(). (Yegappan Lakshmanan, closes #8716) Files: runtime/doc/if_lua.txt, src/evalfunc.c, src/if_lua.c, src/proto/evalfunc.pro, src/testdir/test_lua.vim, src/testdir/test_shell.vim Patch 8.2.3301 Problem: Memory allocation functions don't have their own place. Solution: Move memory allocation functions to alloc.c. (Yegappan Lakshmanan, closes #8717) Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/alloc.c, src/misc2.c, src/proto.h, src/proto/alloc.pro, src/proto/misc2.pro Patch 8.2.3302 Problem: Coverity is not run from github. Solution: Add a coverity script. (James McCoy, closes #8714) Files: .github/workflows/coverity.yml, Filelist Patch 8.2.3303 Problem: Some structures could be smaller. Solution: Rearrange members to reduce size. (Dominique Pellé, closes #8725) Files: src/structs.h, src/vim9.h, src/vim9execute.c Patch 8.2.3304 Problem: Popup window title with wide characters is truncated. Solution: Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino, closes #8721) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_multibytetitle.dump Patch 8.2.3305 Problem: Vim9: :finally in skipped block not handled correctly. Solution: Check whether :finally is in a skipped block. (Naruhiko Nishino, closes #8724) Files: src/ex_eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3306 Problem: Unexpected "No matching autocommands". Solution: Do not give the message when aborting. Mention the arguments in the message. (closes #8690) Files: src/autocmd.c, Patch 8.2.3307 Problem: Vim9: :echoconsole cannot access local variables. Solution: Handle like other :echo commands. (closes #8708) Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3308 Problem: Vim9: no runtime check for argument type if a function only has varargs. Solution: Also check argument types if uf_va_type is set. (closes #8715) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3309 Problem: Vim9: divide by zero causes a crash. Solution: Give an error message. (closes #8727) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.3310 Problem: Vim9: unpack assignment does not mention source of type error. Solution: Mention the argument number. (closes #8719) Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3311 Problem: Vim9: check for DO_NOT_FREE_CNT is very slow. Solution: Move to a separate function so it can be skipped by setting $TEST_SKIP_PAT. Files: src/testdir/test_vim9_expr.vim, src/testdir/runtest.vim Patch 8.2.3312 Problem: Vim9: after "if false" line breaks in expression not skipped. Solution: Do parse the expression. (closes #8723) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3313 Problem: Unused code in win_exchange() and frame_remove(). Solution: Remove the code. (closes #8728) Files: src/window.c Patch 8.2.3314 Problem: Behavior of exists() in a :def function is unpredictable. Solution: Add exists_compiled(). Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3315 Problem: Cannot use single quote in a float number for readability. Solution: Support single quotes like in numbers. (closes #8713) Files: src/typval.c, src/float.c, src/proto/float.pro, src/json.c, src/viminfo.c, src/testdir/test_float_func.vim Patch 8.2.3316 (after 8.2.3315) Problem: Float test fails. Solution: Add missing change. Files: src/evalfunc.c Patch 8.2.3317 Problem: Vim9: No error for missing white space before return type. Solution: Check for white space. (closes #8733) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3318 Problem: Vim9: cannot ignore quotes in number at the command line. Solution: Use in_vim9script() so that after ":vim9" quotes are ignored. Files: src/typval.c, src/testdir/test_float_func.vim Patch 8.2.3319 Problem: Coverity action on github does not work. Solution: Remove undefined $SRCDIR. (James McCoy, closes #8739) Files: .github/workflows/coverity.yml Patch 8.2.3320 Problem: Some local functions are not static. Solution: Add "static". Move snprintf() related code to strings.c. (Yegappan Lakshmanan, closes #8734) Files: src/alloc.c, src/channel.c, src/dict.c, src/digraph.c, src/edit.c, src/ex_docmd.c, src/getchar.c, src/job.c, src/list.c, src/message.c, src/profiler.c, src/proto/channel.pro, src/proto/dict.pro, src/proto/digraph.pro, src/proto/edit.pro, src/proto/ex_docmd.pro, src/proto/getchar.pro, src/proto/job.pro, src/proto/list.pro, src/proto/profiler.pro, src/proto/spell.pro, src/proto/vim9compile.pro, src/proto/vim9script.pro, src/proto/vim9type.pro, src/spell.c, src/strings.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/window.c Patch 8.2.3321 Problem: Some code is not tested. Solution: Add some more tests. (Dominique Pellé, closes #8735) Files: src/testdir/test_excmd.vim, src/testdir/test_writefile.vim Patch 8.2.3322 Problem: Vim9: checking type of dict does not check member type. Solution: When getting the type of a typval use dv_type and lv_type. (closes #8732) Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3323 Problem: Help tag for exists_compiled() is wrong. (Maxim Kim) Solution: Adjust the help tag. Files: runtime/doc/eval.txt Patch 8.2.3324 Problem: Vim9: Cannot use :silent with :endwhile. Solution: Allow for using the :silent modifier. (closes #8737) Files: src/ex_eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3325 Problem: Digraph test fails when LC_ALL is set to "C". Solution: When restoring 'encoding' set it to "utf-8". (closes #8742) Files: src/testdir/test_digraph.vim Patch 8.2.3326 Problem: Vim9: no error passing an empty list of the wrong type. Solution: Use ISN_SETTYPE also for "list<any>". (closes #8732) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3327 Problem: No check for sysconf() failing. Solution: If sysconf() fails use SIGSTKSZ for the signal stack size. (Zdenek Dohnal, closes #8743) Files: src/os_unix.c Patch 8.2.3328 Problem: Coverity error for not checking return value. Solution: Check value is not negative. Files: src/spellfile.c Patch 8.2.3329 Problem: v_lock not set when getting value of environment variable. Solution: Set v_lock to zero. Files: src/typval.c Patch 8.2.3330 Problem: Coverity reports using uninitialized field. Solution: Initialize the field early. Files: src/tag.c Patch 8.2.3331 Problem: Coverity warns for using value without boundary check. Solution: Add a boundary check. Files: src/viminfo.c Patch 8.2.3332 Problem: Vim9: cannot assign to range in list. Solution: Implement overwriting a list range. Files: src/vim9compile.c, src/vim9execute.c, src/list.c, src/proto/list.pro, src/eval.c, src/proto/eval.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3333 Problem: Vim9: not enough tests run with Vim9. Solution: Run a few more tests in Vim9 script and :def function. Files: src/testdir/test_listdict.vim, src/testdir/vim9.vim Patch 8.2.3334 Problem: Vim9: not enough tests run with Vim9. Solution: Run a few more tests in Vim9 script and :def function. Fix islocked(). Fix error for locking local variable. Files: src/evalfunc.c, src/vim9compile.c, src/testdir/test_listdict.vim Patch 8.2.3335 Problem: Vim9: not enough tests run with Vim9. Solution: Run a few more tests in Vim9 script and :def function. Fix that items(), keys() and values() return zero for a NULL dict. Make join() return an empty string for a NULL list. Make sort() return an empty list for a NULL list. Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim, src/testdir/vim9.vim Patch 8.2.3336 Problem: Behavior of negative index in list change changed. (Naruhiko Nishino) Solution: Only change it for Vim9 script. (closes #8749) Files: src/list.c, src/testdir/test_listdict.vim Patch 8.2.3337 Problem: Completing "call g:" returns entries with just "g:". (Naohiro Ono) Solution: Skip empty strings returned by get_user_func_name(). (closes #8753) Files: src/evalfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3338 Problem: Vim9: no type check when assigning a list range. (Naohiro Ono) Solution: Check the member type. (closes #8750) Files: src/list.c, src/testdir/test_listdict.vim Patch 8.2.3339 Problem: Vim9: cannot lock a member in a local dict. Solution: Get the local dict from the stack and pass it to get_lval(). Files: src/eval.c, src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/globals.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3340 (after 8.2.3339) Problem: Accessing uninitialized pointer. Solution: Set pointer to NULL. Files: src/eval.c Patch 8.2.3341 Problem: Vim9: function call aborted despite try/catch. (Naohiro Ono) Solution: Ignore error caught by try/catch. (closes #8755) Files: src/evalvars.c, src/vim9execute.c, src/message.c, src/time.c, src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_func.vim Patch 8.2.3342 (after 8.2.3341) Problem: Test for :let errors fails. Solution: Adjust the test and how to avoid a second error message. Files: src/evalvars.c, src/testdir/test_let.vim Patch 8.2.3343 (after 8.2.3342) Problem: Vim9: autoload test fails. Solution: Adjust the way the second message is avoided Files: src/evalvars.c Patch 8.2.3344 (after 8.2.3343) Problem: Vimscript test fails. Solution: Have test verify first error instead of second Files: src/testdir/test_vimscript.vim Patch 8.2.3345 Problem: Some code not covered by tests. Solution: Add a few more tests. (Dominique Pellé, closes #8757) Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_spellfile.vim, src/testdir/test_substitute.vim Patch 8.2.3346 Problem: Vim9: no error for using "." for concatenation after ":vim9cmd". (Naohiro Ono) Solution: Check for Vim9 script syntax. (closes #8756) Files: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3347 Problem: Check for legacy script is incomplete. (Naohiro Ono) Solution: Also check the :legacy modifier. Use for string concatenation with "." and others (issue #8756) Files: src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/typval.c, src/evalvars.c, src/errors.h, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3348 Problem: line2byte() returns wrong value after adding textprop. (Yuto Kimura) Solution: Reduce the length by the size of the text property. (closes #8759) Files: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3349 (after 8.2.3347) Problem: Eval test for scriptversion fails. Solution: Fix off-by-one error. Files: src/vim9script.c Patch 8.2.3350 (after 8.2.3348) Problem: Text properties test fails on MS-Windows. Solution: Set fileformat to unix. Files: src/testdir/test_textprop.vim Patch 8.2.3351 Problem: Vim9: using a function by name may delete it. (Naohiro Ono) Solution: Increment the reference count when using a function by name. (closes #8760) Files: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.3352 Problem: Vim9: error for nested :enddef has wrong line number. Solution: Compute the line number. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3353 Problem: Vim9: type of argument for negate not checked at compile time. Solution: Add a compile time check. Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3354 Problem: Build failure with +byte_offset but without +textprop. (John Marriott) Solution: Adjust the #ifdef. Files: src/memline.c Patch 8.2.3355 Problem: MS-Windows: compiler warning for 64-32 bit conversion. Solution: Add type casts. Files: src/memline.c Patch 8.2.3356 Problem: Adding many text properties requires a lot of function calls. Solution: Add the prop_add_list() function. (Yegappan Lakshmanan, closes #8751) Files: runtime/doc/eval.txt, runtime/doc/textprop.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/textprop.pro, src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, src/textprop.c Patch 8.2.3357 Problem: Crash when 'virtualedit' is set and window is narrow. Solution: Check that width is not zero. (closes #8767) Files: src/misc2.c, src/testdir/test_number.vim Patch 8.2.3358 Problem: Structurizr files are not recognized. Solution: Recognize the file by contents. (Bastian Venthur, closes #8764) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3359 Problem: Vim9: error for type when variable is not set. Solution: Give a specific error for a NULL function. (closes #8773) Files: src/vim9type.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.3360 Problem: User function completion fails with dict function. Solution: Do not stop sequencing through the list if user functions when encountering an empty name. (Naohiro Ono, closes #8765, closes #8774) Files: src/evalfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3361 Problem: Vim9: crash with nested :while. Solution: Handle skipping better. (Naruhiko Nishino, closes #8778) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3362 Problem: Buffer overflow when completing long tag name. Solution: Allocate the buffer dynamically. (Gregory Anders, closes #8769) Files: src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.3363 Problem: When :edit reuses the current buffer the alternate file is set to the same buffer. Solution: Only set the alternate file when not reusing the buffer. (closes #8783) Files: src/ex_cmds.c, src/testdir/test_undo.vim, src/testdir/test_cmdline.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.3364 Problem: Vim9: crash when :for is skipped. Solution: Skip more code generation. (Naruhiko Nishino, closes #8777) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3365 Problem: Vim9: cannot use option for all operations. Solution: Recognize more operations. (closes #8779) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3366 Problem: Vim9: debugging elseif does not stop before condition. Solution: Move debug statement to after the jump. (closes #8781) Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3367 Problem: Vim9: :@r executing a register is inconsistent. Solution: Use "@r" as the start of an expression. (issue #8779) Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3368 Problem: Not all Racket files are recognized. Solution: Also recognize .rktl and .rktd files. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3369 Problem: Auto formatting after "cw" leaves cursor in wrong spot. Solution: Do not auto-format after the delete. (closes #8789) Files: src/ops.c, src/testdir/test_textformat.vim Patch 8.2.3370 Problem: Vim9: no check for white space before type in declaration. (Naohiro Ono) Solution: Check for white space like in a compiled function. (closes #8785) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.3371 Problem: Vim9: :$ENV cannot be followed by ->func() in next line. Solution: Use "$ENV" as the start of an expression. (closes #8790) Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3372 Problem: line2byte() value wrong when adding a text property. (Yuto Kimura) Solution: Adjust length for text property. (closes #8772) Also fix it for deleting a line. Files: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3373 (after 8.2.3372) Problem: text property test fails on MS-Windows. Solution: Set fileformat to "unix" Files: src/testdir/test_textprop.vim Patch 8.2.3374 Problem: Pyret files are not recognized. Solution: Recognize .arr files as Pyret. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3375 Problem: Using uninitialized memory. Solution: Initialize textprop_save_len. Files: src/memline.c Patch 8.2.3376 Problem: Vim9: no warning that "@r" does not do anything. Solution: Give a "no effect" error. (closes #8779) Files: src/ex_eval.c, src/proto/ex_eval.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3377 Problem: Vim9: :disass completion does not understand "s:". Solution: Expand "s:" to a pattern. (closes #8780) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3378 Problem: MS-Windows: completing environment variables with % is wrong. Solution: Only complete environment variables with $. (Albert Liu, closes #8791) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3379 Problem: Crash when using NULL job. Solution: Copy static string into buffer. (issue #8260) Files: src/job.c, src/testdir/test_channel.vim Patch 8.2.3380 Problem: Crash when using NULL string for funcref(). Solution: Check for NULL argument. (issue #8260) Files: src/evalfunc.c, src/testdir/test_expr.vim Patch 8.2.3381 Problem: Crash when using NULL list with sign functions. Solution: Handle a NULL list like an empty list. (issue #8260) Files: src/globals.h, src/testdir/test_signs.vim Patch 8.2.3382 Problem: Crash when getting the type of a NULL partial. Solution: Check for NULL. (closes #8260) Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3383 Problem: Vim9: completion for :disassemble adds parenthesis. Solution: Don't add parenthesis. (Naohiro Ono, closes #8802) Files: src/userfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3384 Problem: Cannot disable modeline for an individual file. Solution: Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798) Files: runtime/doc/options.txt, src/buffer.c, src/testdir/test_modeline.vim Patch 8.2.3385 Problem: Escaping for fish shell does not work properly. Solution: Insert a backslash before a backslash. (Jason Cox, closes #8810) Files: runtime/doc/eval.txt, src/strings.c, src/testdir/test_shell.vim Patch 8.2.3386 Problem: Using uninitialized memory. Solution: Initialize the rm_ic field. (Dominique Pellé, closes #8800) Files: src/indent.c Patch 8.2.3387 Problem: Compiler warning for non-static function. Solution: Make the function static. (Dominique Pellé, closes #8816) Files: src/strings.c Patch 8.2.3388 Problem: fnamemodify('path/..', ':p') differs from using 'path/../'. (David Briscoe) Solution: Include the "/.." in the directory name. (closes #8808) Files: src/os_unix.c, src/testdir/test_fnamemodify.vim Patch 8.2.3389 Problem: Cannot stop insert mode completion without side effects. Solution: Add CTRL-X CTRL-Z. (closes #8821) Files: runtime/doc/index.txt, runtime/doc/insert.txt, src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3390 Problem: Included xdiff code is outdated. Solution: Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431) Files: src/diff.c, src/xdiff/README.txt, src/xdiff/xdiff.h, src/xdiff/xdiffi.c, src/xdiff/xdiffi.h, src/xdiff/xemit.c, src/xdiff/xemit.h, src/xdiff/xhistogram.c, src/xdiff/xinclude.h, src/xdiff/xmacros.h, src/xdiff/xpatience.c, src/xdiff/xprepare.h, src/xdiff/xtypes.h, src/xdiff/xutils.c, src/xdiff/xutils.h Patch 8.2.3391 Problem: Crash with combination of 'linebreak' and other options. Solution: Avoid n_extra to become negative. (Christian Brabandt, closes #8817) Files: src/drawline.c Patch 8.2.3392 Problem: augroup completion escapes regexp pattern characters. Solution: Do not escape the augroup name. (closes #8826) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3393 Problem: Escaping for fish shell is skipping some characters. Solution: Escape character after backslash if needed. (Jason Cox, closes #8827) Files: src/strings.c, src/testdir/test_shell.vim Patch 8.2.3394 Problem: Filler lines are wrong when changing text in diff mode. Solution: Don't change the filler lines on every change. Check scrollbinding when updating the filler lines. (closes #8809) Files: src/move.c, src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_change_01.dump, src/testdir/dumps/Test_diff_scroll_change_02.dump Patch 8.2.3395 Problem: Vim9: expression breakpoint not checked in :def function. Solution: Always compile a function for debugging if there is an expression breakpoint. (closes #8803) Files: src/vim9execute.c, src/proto/vim9execute.pro, src/debugger.c, src/proto/debugger.pro, src/vim.h, src/vim9.h, src/testdir/test_debugger.vim Patch 8.2.3396 Problem: When libcall() fails invalid pointer may be used. Solution: Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829) Files: src/evalfunc.c Patch 8.2.3397 Problem: No test for what 8.2.3391 fixes. Solution: Add a test. (Yegappan Lakshmanan, closes #8828) Files: src/testdir/test_breakindent.vim Patch 8.2.3398 Problem: Html text objects are not fully tested. Solution: Add tests for dbcs encoding and different number of backslashes. (Dominique Pellé, closes #8831) Files: src/testdir/test_textobjects.vim Patch 8.2.3399 Problem: Octave files are not recognized. Solution: Detect Octave files. (Doug Kearns) Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3400 Problem: ":z!" is not supported. Solution: Make ":z!" work and add tests. (Dominique Pellé, closes #8836) Use display height instead of current window height. Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_cmds.c, src/testdir/test_ex_z.vim Patch 8.2.3401 Problem: Vim9: cannot use a negative count with finddir() and findfile(). Solution: Adjust the return type. (closes #8776) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3402 Problem: Invalid memory access when using :retab with large value. Solution: Check the number is positive. Files: src/indent.c, src/option.c, src/optionstr.c, src/testdir/test_retab.vim Patch 8.2.3403 (after 8.2.3402) Problem: Memory leak for :retab with invalid argument. Solution: Free the memory. Make error messages consistent. Files: src/indent.c Patch 8.2.3404 Problem: Vim9: no error for white space before "(". Solution: Give an error, like in a compiled function. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3405 Problem: Cannot have a comment line in a {} block of a user command. Solution: Continue after the line break. (closes #8837) Files: src/ex_docmd.c, src/testdir/test_usercommands.vim Patch 8.2.3406 Problem: On some systems tests fail without _REENTRANT. (Elimar Riesebieter) Solution: Add -D_REENTRANT in configure. (closes #7402) Files: src/configure.ac, src/auto/configure Patch 8.2.3407 Problem: Using uninitialized memory with "let g:['bar'] = 2". Solution: Initialize v_type of a new dict item. Files: src/dict.c Patch 8.2.3408 Problem: Can delete a numbered function. (Naohiro Ono) Solution: Disallow deleting a numbered function. (closes #8760) Files: src/userfunc.c, src/testdir/test_user_func.vim Patch 8.2.3409 Problem: Reading beyond end of line with invalid utf-8 character. Solution: Check for NUL when advancing. Files: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.3410 Problem: Crash with linebreak, listchars and large tabstop. Solution: Account for different size listchars for a tab. (closes #8841) Files: src/drawline.c, src/testdir/test_listlbr_utf8.vim Patch 8.2.3411 Problem: Vim9: crash when using base name of import. (Naohiro Ono) Solution: Check the import flags. (closes #8843) Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3412 (after 8.2.3411) Problem: Vim9: importing the wrong file. Solution: Correct the file name. Delete the file afterwards. Files: src/testdir/test_vim9_script.vim Patch 8.2.3413 Problem: Vim9: too many characters are allowed in import name. Solution: Disallow ':' and '#', check for white space. (closes #8845) Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3414 Problem: fullcommand() gives the wrong name if there is a buffer-local user command. (Naohiro Ono) Solution: Use a separate function to get the user command name. (closes #8840) Files: src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.3415 Problem: Vim9: Not all function argument types are properly checked. Solution: Add and improve argument type checks. (Yegappan Lakshmanan, closes #8839) Files: src/channel.c, src/digraph.c, src/evalfunc.c, src/terminal.c, src/testdir/test_digraph.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3416 Problem: Second error is reported while exception is being thrown. Solution: Do not check for trailing characters when already aborting. (closes #8842) Files: src/userfunc.c, src/testdir/test_trycatch.vim Patch 8.2.3417 Problem: Vim9: a failing debug expression aborts script sourcing. Solution: Do not let expression failure abort script sourcing. (closes #8848) Files: src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3418 Problem: Garbage collection while evaluating may cause trouble. Solution: Disable garbage collection while evaluating an expression. (Christian Brabandt, issue #8848) Files: src/eval.c Patch 8.2.3419 Problem: A failing debug expression may make Vim unusable. Solution: Suppress error messages. (closes #8848) Files: src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3420 Problem: _REENTRANT defined more than once. Solution: Fix configure script. (Christian Brabandt, closes #8852) Files: src/configure.ac, src/auto/configure Patch 8.2.3421 Problem: A bit of code is not covered by tests. Solution: Add a few more test cases. (Dominique Pellé, closes #8857) Files: src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_startup.vim Patch 8.2.3422 Problem: Vim9: no failure if return type differs from returned variable. Solution: Copy type when copying a list. (closes #8847) Files: src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.3423 Problem: Vim9: list += list creates a new list in :def function. Solution: Append to the existing list. Files: src/structs.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.3424 Problem: A sequence of spaces is hard to see in list mode. Solution: Add the "multispace" option to 'listchars'. (closes #8834) Files: runtime/doc/options.txt, src/drawline.c, src/message.c, src/screen.c, src/structs.h, src/testdir/test_listchars.vim Patch 8.2.3425 Problem: Warning for using uninitialized variable. Solution: Initialize it. (John Marriott) Files: src/screen.c Patch 8.2.3426 Problem: Crash when deleting a listener in a listener callback. (Naohiro Ono) Solution: Mark the listener and delete it later. (closes #8863) Files: src/change.c, src/testdir/test_listener.vim Patch 8.2.3427 Problem: Double free when list is copied. Solution: Allocate the type when making a copy. (closes #8862) Clear the type for flattennew(). Avoid a memory leak when flattennew() fails. Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3428 Problem: Using freed memory when replacing. (Dhiraj Mishra) Solution: Get the line pointer after calling ins_copychar(). Files: src/normal.c, src/testdir/test_edit.vim Patch 8.2.3429 Problem: Leaking memory when assigning to list or dict. Solution: Free the list or dict type before overwriting it. Files: src/vim9type.c, src/evalvars.c Patch 8.2.3430 Problem: No generic way to trigger an autocommand on mode change. Solution: Add the ModeChanged autocommand event. (Magnus Gross, closes #8856) Files: runtime/doc/autocmd.txt, src/autocmd.c, src/edit.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/misc1.c, src/normal.c, src/proto/autocmd.pro, src/proto/misc1.pro, src/testdir/test_edit.vim, src/vim.h Patch 8.2.3431 Problem: Completion for :disas sorts local functions first. Solution: Sort local functions last, like with :delfunc. (Naohiro Ono, closes #8860) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3432 Problem: Octave/Matlab filetype detection does not work properly. Solution: Update the patterns used for matching. (Doug Kearns) Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.3433 Problem: :delcommand does not take a -buffer option. Solution: Add the -buffer option. Files: runtime/doc/map.txt, src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim Patch 8.2.3434 (after 8.2.3430) Problem: Function prototype for trigger_modechanged() is incomplete. Solution: Add "void". Files: src/proto/misc1.pro Patch 8.2.3435 Problem: Vim9: dict is not passed to dict function. Solution: Keep the dict used until a function call. Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3436 Problem: Check for optional bool type has confusing return type. Solution: Explicitly return OK. Files: src/typval.c Patch 8.2.3437 Problem: Compiler warnings for 32/64 bit usage. Solution: Add type casts. (Mike Williams, closes #8870) Files: src/screen.c, src/xdiff/xemit.c, src/xdiff/xutils.c Patch 8.2.3438 Problem: Cannot manipulate blobs. Solution: Add blob2list() and list2blob(). (Yegappan Lakshmanan, closes #8868) Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/blob.c, src/errors.h, src/evalfunc.c, src/proto/blob.pro, src/proto/typval.pro, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3439 Problem: Deleted lines go to wrong yank register. Solution: Reset y_append when not calling get_yank_register(). (Christian Brabandt, closes #8872) Files: src/ops.c, src/proto/register.pro, src/register.c, src/testdir/test_registers.vim Patch 8.2.3440 Problem: Recover test fails if there is an old swap file. Solution: Delete old swap files. Files: src/testdir/test_recover.vim Patch 8.2.3441 Problem: MS-Windows: vimtutor can't handle path with spaces. Solution: Add double quotes. (Christian Brabandt, closes #8871) Files: vimtutor.bat Patch 8.2.3442 Problem: Vim9: || and && are not handled at compile time when possible. Solution: When using constants generate fewer instructions. Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3443 Problem: Vim9: memory leak when and/or fails. Solution: Also clear the growarray when the length is zero. Files: src/vim9compile.c Patch 8.2.3444 Problem: concealed text not revealed when leaving insert mode. (Michael Soyka) Solution: Check if concealing changed when leaving insert mode. (closes #8880) Files: src/edit.c, src/testdir/test_conceal.vim, src/testdir/dumps/Test_conceal_two_windows_07in.dump Patch 8.2.3445 Problem: On Solaris longVersion may be declared twice. (Vladimir Marek) Solution: Always declare longVersion in version.c Files: src/globals.h, src/version.c Patch 8.2.3446 Problem: Not enough tests for empty string arguments. Solution: Add tests, fix type check. (Yegappan Lakshmanan, closes #8881) Files: runtime/doc/sign.txt, runtime/doc/textprop.txt, src/sign.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3447 Problem: A couple of declarations are not ANSI C. Solution: Put argument type inside (). (Yegappan Lakshmanan, closes #8890) Files: src/os_unix.h Patch 8.2.3448 Problem: :endtry after function call that throws not found. Solution: Do check for following :endtry if an exception is being thrown. (closes #8889) Files: src/userfunc.c, src/testdir/test_trycatch.vim Patch 8.2.3449 Problem: Sort fails if the sort compare function returns 999. Solution: Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884) Files: src/list.c, src/testdir/test_sort.vim Patch 8.2.3450 Problem: Coveralls action fails. Solution: Disable it for now. Files: .github/workflows/ci.yml Patch 8.2.3451 Problem: Not all apache files are recognized. Solution: Adjust the filetype pattern. (Zdenek Dohnal, closes #8882) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3452 Problem: MPD files are not recognized. Solution: Recognize MPD files as XML. (Steven Penny, closes #8893) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3453 Problem: Autocmd not executed when editing a directory ending in a path separator inside try block. Solution: Return NOTDONE instead of FAIL. (closes #8885) Files: src/fileio.c, src/testdir/test_autocmd.vim Patch 8.2.3454 Problem: Using a count with "gp" leaves cursor in wrong position. (Naohiro Ono) Solution: Count the inserted lines. (closes #8899) Files: src/register.c, src/testdir/test_put.vim Patch 8.2.3455 (after 8.2.3454) Problem: Using a count with "gp" leaves '] in wrong position. (Naohiro Ono) Solution: Correct the mark position. (closes #8899) Files: src/register.c, src/testdir/test_put.vim Patch 8.2.3456 Problem: Vim9: Not all functions are tested with an empty string argument. Solution: Add tests with empty strings. (Yegappan Lakshmanan, closes #8915) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3457 Problem: MS-Windows Vim9: test executed and fails. Solution: Add extra check for not being on MS-Windows. Files: src/testdir/test_vim9_script.vim Patch 8.2.3458 Problem: Not all dictdconf files are recognized. Solution: Adjust the pattern. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3459 Problem: Vim9: need more tests for empty string arguments. Solution: Add more tests. Also use empty argument with menu_info() to get the top-level menu names. (Yegappan Lakshmanan, closes #8925) Files: runtime/doc/eval.txt, src/menu.c, src/testdir/test_menu.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3460 Problem: Some type casts are not needed. Solution: Remove unnecessary type casts. (closes #8934) Files: src/autocmd.c, src/buffer.c, src/debugger.c, src/getchar.c, src/hardcopy.c, src/if_cscope.c, src/move.c, src/tag.c, src/version.c Patch 8.2.3461 Problem: Cannot distinguish Normal and Terminal-Normal mode. Solution: Make mode() return "nt" for Terminal-Normal mode. (issue #8856) Files: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim Patch 8.2.3462 Problem: The ModeChanged event only uses one character for the new_mode and old_mode values. Solution: Pass one as first argument to mode(). (issue #8856) Files: src/misc1.c, src/testdir/test_edit.vim Patch 8.2.3463 Problem: Pattern matching with ModeChanged not tested. Solution: Add a few more test lines. (issue #8856) Files: src/testdir/test_edit.vim Patch 8.2.3464 Problem: nginx files are not recognized. Solution: Add several file patterns. (Chris Aumann, closes #8922) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3465 Problem: Cannot detect insert scroll mode. Solution: Add "scroll" to complete_info(). (closes #8943) Files: runtime/doc/eval.txt, src/insexpand.c, src/testdir/test_popup.vim Patch 8.2.3466 Problem: Completion submode not indicated for virtual replace. Solution: Add submode to "Rv". (closes #8945) Files: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim Patch 8.2.3467 Problem: CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono) Solution: Restore the flag for "CTRL-G U" after triggering CursorHoldI. (closes #8937) Files: src/edit.c, src/testdir/test_autocmd.vim Patch 8.2.3468 Problem: Problem with :cd when editing file in non-existent directory. (Yee Cheng Chin) Solution: Prepend the current directory to get the full path. (closes #8903) Files: src/os_unix.c, src/testdir/test_cd.vim Patch 8.2.3469 Problem: Some files with json syntax are not recognized. Solution: Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3470 Problem: Crash with error in :catch and also in :finally. Solution: Only discard an exception if there is one. (closes #8954) Files: src/ex_eval.c, src/testdir/test_trycatch.vim Patch 8.2.3471 Problem: Crash when using CTRL-T after an empty search pattern. Solution: Bail out when there is no previous search pattern. (closes #8953) Files: src/ex_getln.c, src/testdir/test_search.vim Patch 8.2.3472 Problem: Other crashes with empty search pattern not tested. Solution: Add a few more test lines. (Dominique Pellé) Files: src/testdir/test_search.vim Patch 8.2.3473 Problem: Some files with tcl syntax are not recognized. Solution: Add a few file patterns. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3474 Problem: Some places use "Vimscript" instead of "Vim script". Solution: Consistently use "Vim script". (Hirohito Higashi, closes #8910) Files: runtime/doc/if_lua.txt, src/getchar.c, src/if_lua.c Patch 8.2.3475 Problem: Expression register set by not executed put command. Solution: Do not set the register if the command is skipped. (closes #8909) Files: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.3476 Problem: Renaming a buffer on startup may cause using freed memory. Solution: Check if the buffer is used in a window. (closes #8955) Files: src/buffer.c, src/testdir/test_startup.vim Patch 8.2.3477 (after 8.2.3476) Problem: Startup test fails on MS-Windows. Solution: Skip the test if not on Unix. Files: src/testdir/test_startup.vim Patch 8.2.3478 (after 8.2.3470) Problem: Still crash with error in :catch and also in :finally. Solution: Only call finish_exception() once. (closes #8954) Files: src/ex_eval.c, src/structs.h Patch 8.2.3479 Problem: Crash when calling job_start with an invalid argument. (Virginia Senioria) Solution: Clear the first item in argv. (closes #8957) Files: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.3480 (after 8.2.3478) Problem: Test does not fail without the fix for a crash. Solution: Write the bad code in a file and source it. (Dominique Pellé, closes #8961) Files: src/testdir/test_trycatch.vim Patch 8.2.3481 Problem: Failures when char is unsigned. Solution: Use int8_T. Make a CI run with unsigned char. (James McCoy, closes #8936) Files: src/structs.h, .github/workflows/ci.yml Patch 8.2.3482 Problem: Reading beyond end of line ending in quote and backslash. Solution: Check for non-NUL after backslash. (closes #8964) Files: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3483 Problem: #ifdef for using sysinfo() is incomplete. Solution: Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK. (closes #8952) Files: src/memline.c, src/configure.ac, src/auto/configure Patch 8.2.3484 Problem: Crash when going through spell suggestions. Solution: Limit the text length for finding suggestions to the original length. Do not update buffers when exiting. (closes #8965) Files: src/spellsuggest.c, src/clipboard.c, src/testdir/test_spell_utf8.vim Patch 8.2.3485 Problem: Python 3 test fails with Python 3.10. Solution: Adjust expected error message. (zdohnal Dohnal, closes #8969) Files: src/testdir/test_python3.vim Patch 8.2.3486 Problem: Illegal memory access with invalid sequence of commands. Solution: Do not call leave_block() when not in a try block. (closes #8966) Reset did_emsg so that exception is shown as an error. Files: src/ex_eval.c, src/testdir/test_trycatch.vim Patch 8.2.3487 Problem: Illegal memory access if buffer name is very long. Solution: Make sure not to go over the end of the buffer. Files: src/drawscreen.c, src/testdir/test_statusline.vim Patch 8.2.3488 Problem: Issue template is not easy to use. Solution: Use a yaml template. (closes #8928) Files: .github/ISSUE_TEMPLATE/bug_report.md, .github/ISSUE_TEMPLATE/bug_report.yml Patch 8.2.3489 Problem: ml_get error after search with range. Solution: Limit the line number to the buffer line count. Files: src/ex_docmd.c, src/testdir/test_search.vim Patch 8.2.3490 Problem: Superfluous return statements. Solution: Remove superfluous return statements from void functions. (closes #8977) Files: src/buffer.c, src/getchar.c, src/memline.c, src/move.c, src/option.c Patch 8.2.3491 Problem: xpm2 filetype detection is not so good. Solution: Adjust the check for xpm2. (closes #8914) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3492 Problem: Crash when pasting too many times. Solution: Limit the size to what fits in an int. (closes #8962) Files: src/register.c, src/errors.h, src/testdir/test_put.vim Patch 8.2.3493 (after 8.2.3492) Problem: Large count test fails on MS-Windows. Solution: Skip the test on MS-Windows. Files: src/testdir/test_put.vim Patch 8.2.3494 Problem: Illegal memory access in utf_head_off. Solution: Check cursor position when reselecting the Visual area. (closes #8963) Files: src/normal.c, src/testdir/test_visual.vim Patch 8.2.3495 Problem: GUI geometry startup test fails on some systems. (Drew Vogel) Solution: Add tolerance to the size check. (closes #8815) Files: src/testdir/test_startup.vim Patch 8.2.3496 Problem: Crypt test fails on MS-Windows if xxd was not installed yet. Solution: Use the just built xxd executable if it exists. (James McCoy, closes #8929) Files: src/testdir/test_crypt.vim Patch 8.2.3497 Problem: Put test fails when run by itself. Solution: Source check.vim. (Dominique Pellé, closes #8990) Files: src/testdir/test_put.vim Patch 8.2.3498 Problem: Recover test may fail on some systems. Solution: Adjust the little endian and 64 bit detection. (James McCoy, closes #8941) Files: src/testdir/test_recover.vim Patch 8.2.3499 Problem: GUI geometry startup test fails. Solution: Check string values instead of numbers Files: src/testdir/test_startup.vim Patch 8.2.3500 Problem: Github CI fails to install clang. Solution: Install llvm-11 explicitly. (Christian Brabandt, closes #8993) Files: .github/workflows/ci.yml Patch 8.2.3501 Problem: tmux filetype detection is incomplete Solution: Also use tmux for files having text after .conf. (Eric Pruitt, closes #8971) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3502 (after 8.2.2919) Problem: Cannot enter password in shell command. Solution: Revert patch 8.2.2919. Files: src/os_unix.c Patch 8.2.3503 Problem: Vim9: using g:pat:cmd is confusing. Solution: Do not recognize g: as the :global command. Also for s:pat:repl. (closes #8982) Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/ex_cmds.c, src/errors.h, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.3504 (after 8.2.3503) Problem: Vim9: warning for signed vs unsigned. Solution: Add type cast. Files: src/vim9compile.c Patch 8.2.3505 (after 8.2.3503) Problem: Vim9: build failure without the +eval feature. Solution: Add #ifdef. Files: src/ex_cmds.c Patch 8.2.3506 (after 8.2.3503) Problem: Vim9: special cases for "g" and "s" insufficiently tested. Solution: Add a few more test cases. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.3507 Problem: Generating proto files may fail. Solution: Define __attribute(). Files: src/Makefile Patch 8.2.3508 (after 8.2.3503) Problem: Vim9: bad separators for "g" and "s" insufficiently tested. Solution: Add a few more test cases. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.3509 Problem: Undo file is not synced. (Sami Farin) Solution: Sync the undo file if 'fsync' is set. (Christian Brabandt, closes #8879, closes #8920) Files: runtime/doc/options.txt, src/undo.c Patch 8.2.3510 Problem: Changes are only detected with one second accuracy. Solution: Use the nanosecond time if possible. (Leah Neukirchen, closes #8873, closes #8875) Files: runtime/doc/eval.txt, src/auto/configure, src/bufwrite.c, src/config.h.in, src/configure.ac, src/fileio.c, src/proto/fileio.pro, src/memline.c, src/netbeans.c, src/structs.h, src/evalfunc.c, src/testdir/test_stat.vim Patch 8.2.3511 Problem: Vim9: entry for loop variable is created every round. Solution: Only create the entry once. (closes #8996) Files: src/evalvars.c, src/vim9script.c Patch 8.2.3512 Problem: Timestamp test fails on some systems. Solution: Sleep for a short while. Files: src/testdir/test_stat.vim Patch 8.2.3513 Problem: Using freed memory when using a timer and searching. (Dominique Pellé) Solution: Allocated mr_pattern. Files: src/search.c Patch 8.2.3514 Problem: Autoread test with nanosecond time sometimes fails. Solution: Mark the test as being flaky. Files: src/testdir/test_stat.vim Patch 8.2.3515 Problem: Nano time test fails on Mac and FreeBSD. Solution: Also check nano time when not on Linux. (Ozaki Kiichi, closes #9000) Files: src/fileio.c Patch 8.2.3516 Problem: Terminal window does not have transparent background when 'termguicolors' is used. Solution: Fix the background color. (closes #2361, closes #9002) Files: runtime/doc/terminal.txt, src/highlight.c, src/proto/terminal.pro, src/terminal.c Patch 8.2.3517 Problem: TextChanged does not trigger after TextChangedI. Solution: Store the tick separately for TextChangedI. (Christian Brabandt, closes #8968, closes #8932) Files: src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h, src/testdir/test_autocmd.vim Patch 8.2.3518 Problem: Test_xrestore sometimes fails. Solution: Mark the test as flaky. Move marking test as flaky to the test instead of listing them in runtest. Files: src/testdir/test_paste.vim, src/testdir/runtest.vim, src/testdir/test_autocmd.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_diffmode.vim, src/testdir/test_functions.vim, src/testdir/test_gui.vim, src/testdir/test_mapping.vim, src/testdir/test_popup.vim, src/testdir/test_quotestar.vim, src/testdir/test_reltime.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_timers.vim Patch 8.2.3519 Problem: TOML files are not recognized. Solution: Add filetype patterns for TOML. (Aman Verma, closes #8984) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3520 Problem: Cannot define a function for thesaurus completion. Solution: Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987, closes 8950) Files: runtime/doc/insert.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, src/buffer.c, src/insexpand.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/structs.h, src/testdir/test_edit.vim Patch 8.2.3521 (after 8.2.3520) Problem: Options completion test fails. Solution: Add 'thesaurusfunc' to the results. Files: src/testdir/test_options.vim Patch 8.2.3522 Problem: Cannot use \x and \u when setting 'listchars'. Solution: Support hex and unicode in hex form. (closes #9006) Files: runtime/doc/options.txt, src/screen.c, src/charset.c, src/testdir/test_listchars.vim Patch 8.2.3523 Problem: Duplicated code in xxd. Solution: Remove duplicated lines. (closes #8972) Files: src/xxd/xxd.c Patch 8.2.3524 Problem: GUI: ligatures are not used. Solution: Add the 'guiligatures' option. (Dusan Popovic, closes #8933) Files: runtime/doc/options.txt, src/gui.c, src/gui.h, src/gui_gtk_x11.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/errors.h, src/proto/gui.pro, src/proto/gui_gtk_x11.pro, src/testdir/test_gui.vim Patch 8.2.3525 Problem: Option variable name does not match option name. (Christ van Willegen) Solution: Rename the variable. Files: src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c, src/structs.h Patch 8.2.3526 Problem: Tests have clumsy check for X11 based GUI. Solution: Add CheckX11BasedGui. Files: src/testdir/check.vim, src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, src/testdir/setup_gui.vim Patch 8.2.3527 Problem: Gcc complains about uninitialized variable. (Tony Mechelynck) Solution: Initialize it. Files: src/gui_gtk_x11.c Patch 8.2.3528 Problem: 'thesaurus' and 'thesaurusfunc' do not have the same scope. Solution: Make 'thesaurusfunc' global-local. Files: runtime/doc/options.txt, runtime/doc/insert.txt, src/optiondefs.h, src/option.h, src/option.c, src/structs.h, src/insexpand.c, src/testdir/test_edit.vim Patch 8.2.3529 Problem: Xxd usage output is incomplete. Solution: Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944) Files: src/xxd/xxd.c Patch 8.2.3530 Problem: ":buf \{a}" fails while ":edit \{a}" works. Solution: Unescape "\{". (closes #8917) Files: src/vim.h, src/cmdexpand.c, src/evalfunc.c, src/ex_getln.c, src/proto/ex_getln.pro, src/normal.c, src/session.c, src/terminal.c, src/vim9execute.c, src/testdir/test_cmdline.vim Patch 8.2.3531 (after 8.2.3530) Problem: Command line completion test fails on MS-Windows. Solution: Do not test with "\{" on MS-Windows. Files: src/testdir/test_cmdline.vim Patch 8.2.3532 Problem: The previous '' mark is restored after moving the cursor to the original jump position. (Tony Chen) Solution: Forget the previous position after checking. (closes #8985) Files: src/mark.c, src/testdir/test_marks.vim Patch 8.2.3533 Problem: Inefficient code in xxd. Solution: Don't use "p" when "hextype" is non-zero. (closes #9013) Files: src/xxd/xxd.c Patch 8.2.3534 Problem: Autoread test is a bit flaky. Solution: Wait a brief moment before overwriting the file. Files: src/testdir/test_stat.vim Patch 8.2.3535 Problem: If-else indenting is confusing. Solution: Add curly brackets and indent. (Dominique Pellé, closes #9010) Files: src/drawscreen.c Patch 8.2.3536 Problem: The do_highlight() function is way too long. Solution: Split it into several functions. (Yegappan Lakshmanan, closes #9011) Files: src/highlight.c Patch 8.2.3537 Problem: mode() does not return the right value in 'operatorfunc'. Solution: Reset finish_op while calling 'operatorfunc'. Files: src/ops.c, src/testdir/test_functions.vim Patch 8.2.3538 Problem: Else-if indenting is confusing. Solution: Add curly brackets. (Yegappan Lakshmanan, closes #9017) Files: src/highlight.c Patch 8.2.3539 Problem: GTK3: with 'rightleft' set scrollbar may move unintentionally. Solution: Ignore events while moving the scrollbar thumb. (closes #8958) Files: src/gui_gtk.c Patch 8.2.3540 Problem: The mark '] is wrong after put with a count. (Naohiro Ono) Solution: Use the right line number. (closes #8956) Files: src/register.c, src/testdir/test_put.vim Patch 8.2.3541 Problem: Compiler warning for unused variable in tiny version. Solution: Add #ifdef. (John Marriott) Files: src/highlight.c Patch 8.2.3542 Problem: Too many comments are old style. Solution: Change comments to // style. (closes #9021) Files: src/buffer.c Patch 8.2.3543 Problem: Swapname has double slash when 'directory' ends in double slash. (Shane Smith) Solution: Remove the superfluous slash. (closes #8876) Files: src/memline.c, src/testdir/test_swap.vim Patch 8.2.3544 Problem: Unix: may leak file descriptor when using a non-existing directory. Solution: Always close the file. (closes #9023) Files: src/os_unix.c Patch 8.2.3545 Problem: setcellwidths() may make 'listchars' or 'fillchars' invalid. Solution: Check the value and give an error. (closes #9024) Files: runtime/doc/eval.txt, src/optionstr.c, src/errors.h, src/mbyte.c, src/testdir/test_utf8.vim Patch 8.2.3546 (after 8.2.3545) Problem: Build failure without the +eval feature. Solution: Add #ifdef. (closes #9025) Files: src/errors.h Patch 8.2.3547 Problem: Opening the quickfix window triggers BufWinEnter twice. (Yorick Peterse) Solution: Only trigger BufWinEnter with "quickfix". (closes #9022) Files: src/ex_cmds.c, src/vim.h, src/quickfix.c, src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.3548 Problem: GTK GUI crashes when reading from stdin. Solution: Do not overwrite the NUL after the string. (closes #9028) Files: src/gui_gtk_x11.c, src/testdir/test_gui.vim Patch 8.2.3549 Problem: Mistakes in test comments. Solution: Fix the comments. (closes #9029) Files: src/testdir/test_autocmd.vim Patch 8.2.3550 Problem: completion() does not work properly. Solution: Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita, closes #9016) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3551 Problem: Checking first character of url twice. Solution: Only check once. (closes #9026) Files: src/misc1.c Patch 8.2.3552 Problem: Xxd revert does not handle end of line correctly. Solution: Check for newline first. (closes #9034) Files: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3553 (after 8.2.3552) Problem: Xxd test fails on MS-Windows. Solution: Split shell command in two. Files: src/testdir/test_xxd.vim Patch 8.2.3554 Problem: Xxd has various way to exit. Solution: Add function to print error and exit. (closes #9035) Files: src/xxd/xxd.c Patch 8.2.3555 Problem: ModeChanged is not triggered on every mode change. Solution: Also trigger on minor mode changes. (Maguns Gross, closes #8999) Files: runtime/doc/autocmd.txt, src/autocmd.c, src/insexpand.c, src/misc1.c, src/normal.c, src/terminal.c, src/testdir/test_edit.vim Patch 8.2.3556 Problem: Filler lines are incorrect for other window in diff mode after making a change. Solution: Copy filler lines from the current window. (closes #8809) Files: src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_change_03.dump Patch 8.2.3557 Problem: Vim9: cannot call imported funcref at script level. Solution: Check for an imported function. (closes #9007) Files: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3558 (after 8.2.3557) Problem: Vim9: asserting the wrong variable. Solution: Don't use Foo, use Goo. Files: src/testdir/test_vim9_script.vim Patch 8.2.3559 Problem: Loop variable recreated every time. Solution: Keep the loop variable when looping. Files: src/ex_eval.c Patch 8.2.3560 Problem: Using freed memory with lambda. Solution: Do not free lines early, keep them until the expression is finished. (closes #9020) Files: src/eval.c, src/proto/eval.pro, src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.3561 Problem: Cscope has a complicated way of giving an error message. Solution: Use semsg(). (James McCoy, closes #9038) Files: src/if_cscope.c Patch 8.2.3562 Problem: Cannot add color names. Solution: Add the v:colornames dictionary. (Drew Vogel, closes #8761) Files: Filelist, READMEdir/README_extra.txt, nsis/gvim.nsi, runtime/colors/README.txt, runtime/colors/lists/csscolors.vim, runtime/colors/lists/default.vim, runtime/doc/eval.txt, runtime/doc/gui_w32.txt, runtime/doc/message.txt, runtime/doc/os_haiku.txt, runtime/doc/syntax.txt, runtime/doc/usr_06.txt, src/Makefile, src/evalvars.c, src/gui_haiku.cc, src/highlight.c, src/gui.c, src/job.c, src/proto/highlight.pro, src/proto/term.pro, src/term.c, src/vim.h, src/globals.h, src/errors.h, src/testdir/test_highlight.vim Patch 8.2.3563 (after 8.2.3562) Problem: Build failure with +eval but without GUI or +termguicolors Solution: Adjust #ifdef. (John Marriott) Files: src/highlight.c Patch 8.2.3564 Problem: Invalid memory access when scrolling without a valid screen. Solution: Do not set VALID_BOTLINE in w_valid. Files: src/move.c, src/testdir/test_normal.vim Patch 8.2.3565 Problem: Makefile dependencies are outdated. (Gary Johnson) Solution: Run "make depend" and add missing dependencies. Files: src/Makefile Patch 8.2.3566 Problem: Build failure on old systems when using nano timestamp. Solution: Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary Johnson, closes #9054) Files: src/vim.h Patch 8.2.3567 Problem: CTRL-I in Insert mode is not tested Solution: Add a test case. (Dominique Pellé, closes #8866) Files: src/testdir/test_edit.vim Patch 8.2.3568 Problem: Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter) Solution: Run the test only with GTK. (Dominique Pellé, closes #9069) Files: src/testdir/test_edit.vim Patch 8.2.3569 Problem: Error for :let when vimrc is Vim 9 script. Solution: Prepend :legacy in the code for converting arguments. (Christian Brabandt, closes #9068, closes #9077) Files: src/os_win32.c Patch 8.2.3570 Problem: Test_very_large_count fails on 32bit systems. Solution: Bail out when using 32 bit numbers. (closes #9072) Files: src/testdir/test_put.vim Patch 8.2.3571 Problem: Some unicode control characters are considered printable. Solution: Make 0x2060 - 0x2069 not printable. Files: src/mbyte.c Patch 8.2.3572 Problem: Memory leak when closing window and using "multispace" in 'listchars'. Solution: Free the memory. (closes #9071) Files: src/window.c, src/testdir/test_listchars.vim Patch 8.2.3573 Problem: Cannot decide whether to skip test that fails with 64 bit ints. (closes #9072) Solution: Add v:sizeofint, v:sizeoflong and v:sizeofpointer. Improve the check for multiply overflow. Files: runtime/doc/eval.txt, src/vim.h, src/evalvars.c, src/register.c, src/testdir/test_put.vim Patch 8.2.3574 (after 8.2.3573) Problem: Divide by zero. Solution: Don't check for overflow if multiplicand is zero. Files: src/register.c Patch 8.2.3575 (after 8.2.3574) Problem: Overflow check still fails when sizeof(int) == sizeof(long). Solution: Use a float to check the result. Files: src/register.c Patch 8.2.3576 Problem: Some functions are not documented for use with a method. Solution: Add examples. Fix that sign_unplacelist() only takes one argument. (Sean Dewar, closes #9081) Files: src/evalfunc.c, runtime/doc/eval.txt Patch 8.2.3577 (after 8.2.3574) Problem: Overflow check fails with 32 bit ints. Solution: Only test with 64 bit ints. Files: src/testdir/test_put.vim Patch 8.2.3578 Problem: Manipulating highlighting is complicated. Solution: Add the hlget() and hlset() functions. (Yegappan Lakshmanan, closes #9039) Files: runtime/doc/eval.txt, runtime/doc/syntax.txt, runtime/doc/usr_41.txt, runtime/doc/windows.txt, src/evalfunc.c, src/highlight.c, src/proto/highlight.pro, src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3579 Problem: CI sometimes fails for MinGW. Solution: Use backslashes in HandleSwapExists(). (Christian Brabandt, closes #9078) Files: src/testdir/runtest.vim Patch 8.2.3580 Problem: gj does not move properly with a wide character. Solution: Move one to the right. (Christian Brabandt, closes #8702) Files: src/normal.c, src/testdir/test_normal.vim Patch 8.2.3581 Problem: Reading character past end of line. Solution: Correct the cursor column. Files: src/ex_docmd.c, src/testdir/test_put.vim Patch 8.2.3582 Problem: Reading uninitialized memory when giving spell suggestions. Solution: Check that preword is not empty. Files: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.3583 Problem: The "gd" and "gD" commands do not update search stats. (Gary Johnson) Solution: Clear search stats. Files: src/normal.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstatgd_1.dump, src/testdir/dumps/Test_searchstatgd_2.dump Patch 8.2.3584 Problem: "verbose set efm" reports the location of the :compiler command. (Gary Johnson) Solution: Add the "-keepscript" argument to :command and use it when defining CompilerSet. Files: runtime/doc/map.txt, src/ex_cmds2.c, src/usercmd.c, src/ex_cmds.h, src/testdir/test_compiler.vim Patch 8.2.3585 Problem: Crash when passing float to "term_rows" in the options argument of term_start(). (Virginia Senioria) Solution: Bail out if the argument is not a number. (closes #9116) Files: src/job.c, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.3586 (after 8.2.3584) Problem: Command completion test fails. Solution: Add new argument to expected output Files: src/testdir/test_usercommands.vim Patch 8.2.3587 (after 8.2.3584) Problem: Compiler test fails with backslash file separator. Solution: Accept slash and backslash. Files: src/testdir/test_compiler.vim Patch 8.2.3588 Problem: Break statement is never reached. Solution: Rely on return value of set_chars_option() not changing. (closes #9103) Files: src/optionstr.c Patch 8.2.3589 Problem: Failure when the "term_rows" argument of term_start() is an unusual value. Solution: Limit to range of zero to 1000. (closes #9116) Files: runtime/doc/terminal.txt, src/job.c, src/testdir/test_terminal.vim Patch 8.2.3590 Problem: Test for v:colornames sometimes fails. (Dominique Pellé) Solution: Check features. Clear v:colornames between tests. (Drew Vogel, closes #9105, closes #9073) Files: runtime/doc/eval.txt, src/highlight.c, src/proto/highlight.pro, src/testdir/test_highlight.vim Patch 8.2.3591 Problem: No event is triggered when closing a window. Solution: Add the WinClosed event. (Naohiro Ono, closes #9110) Files: runtime/doc/autocmd.txt, src/autocmd.c, src/testdir/test_autocmd.vim, src/vim.h, src/window.c Patch 8.2.3592 Problem: Test_hlset fails when terminal has many columns. Solution: Set the number of columns to 80. (Dominique Pellé, closes #9101, closes #9100) Files: src/testdir/test_highlight.vim Patch 8.2.3593 Problem: Directory is wrong after executing "lcd" with win_execute(). Solution: Correct the directory when going back to the original window. (closes #9132) Files: src/evalwindow.c, src/window.c, src/proto/window.pro, src/testdir/test_execute_func.vim Patch 8.2.3594 Problem: Xxd code is a bit difficult to understand. Solution: Move some lines to a separate function. (closes #9037) Files: src/xxd/xxd.c Patch 8.2.3595 Problem: Check for signed overflow might not work everywhere. Solution: Limit to 32 bit int. (closes #9043, closes #9067) Files: src/getchar.c Patch 8.2.3596 Problem: Crash when using :pedit in Vim9 script. Solution: Move check for arguments to after checking there are arguments. (Yegappan Lakshmanan, closes #9134, closes #9135) Files: src/popupwin.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3597 Problem: Vim seems to hang when writing a very long text to a terminal window. Solution: Limit the amount of text based on 'termwinscroll'. (issue #9080) Files: runtime/doc/options.txt, src/terminal.c Patch 8.2.3598 Problem: RouterOS filetype is not recognized. Solution: Add file and script patterns. (closes #9097) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3599 Problem: Not all gdbinit files are recognized. Solution: Add "gdbinit". (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3600 (after 8.2.3598) Problem: Filetype test fails. Solution: Add missing change. Files: runtime/scripts.vim Patch 8.2.3601 Problem: Check for overflow in put count does not work well. Solution: Improve the overflow check. (Ozaki Kiichi, closes #9102) Files: src/register.c, src/testdir/test_put.vim Patch 8.2.3602 Problem: Python3 test fails with Python 3.10 on MS-Windows. Solution: Adjust the expected error. (Ken Takata, closes #9118) Files: src/testdir/test_python3.vim Patch 8.2.3603 Problem: Fish filetype not recognized. Solution: Add a file pattern and match script line. (Doug Kearns) Files: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.3604 Problem: Not all sudoers files are recognized. Solution: Add a file pattern. (Doug Kearns, closes #1192) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3605 Problem: Cannot clear and unlink a highlight group with hlset() in a single call. Solution: Add the "force" option. (Yegappan Lakshmanan, closes #9117) Files: runtime/doc/eval.txt, src/highlight.c, src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.3606 Problem: File missing from list of distributed files. Solution: Add the file. Files: Filelist Patch 8.2.3607 Problem: GTK3 screen updating is slow. Solution: Remove some of the GTK3-specific code. (closes #9052) Files: src/gui.h, src/gui_gtk_x11.c Patch 8.2.3608 Problem: Users who type "q:" instead of ":q" are confused. Solution: Add an autocmd to give a message that explains this is the command-line window. (Egor Zvorykin, closes #9146) Files: runtime/defaults.vim, src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim Patch 8.2.3609 Problem: Internal error when ModeChanged is triggered when v:event is already in use. Solution: Save and restore v:event if needed. Files: src/misc1.c, src/proto/misc1.pro, src/testdir/test_edit.vim, src/insexpand.c, src/structs.h, src/register.c Patch 8.2.3610 Problem: Crash when ModeChanged triggered too early. Solution: Trigger ModeChanged after setting VIsual. Files: src/normal.c, src/testdir/test_edit.vim Patch 8.2.3611 Problem: Crash when using CTRL-W f without finding a file name. Solution: Bail out when the file name length is zero. Files: src/findfile.c, src/normal.c, src/testdir/test_visual.vim Patch 8.2.3612 Problem: Using freed memory with regexp using a mark. Solution: Get the line again after getting the mark position. Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.3613 Problem: :find test fails. Solution: Put length check inside if block. Files: src/findfile.c Patch 8.2.3614 Problem: zindex of popup windows not used when redrawing popup menu. Solution: Check the zindex when redrawing the popup menu. (closes #9129, closes #9089) Files: src/popupmenu.c, src/popupwin.c, src/proto/popupmenu.pro, src/screen.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump, src/testdir/dumps/Test_popupwin_popupmenu_masking_2.dump Patch 8.2.3615 Problem: When re-formatting with an indent expression the first line of a paragraph may get the wrong indent. (Martin F. Krafft) Solution: Apply the correct indenting function for the first line. (Christian Brabandt, closes #9150, closes #9056) Files: src/textformat.c, src/testdir/test_indent.vim Patch 8.2.3616 Problem: Arglist test does not clear the argument list consistently. Solution: Call Reset_arglist(). (Shougo Matsushita, closes #9154) Files: src/testdir/test_arglist.vim Patch 8.2.3617 Problem: ":verbose pwd" does not mention 'autochdir' was applied. Solution: Remember the last chdir was done by 'autochdir'. (issue #9142) Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/window.c, src/main.c, src/netbeans.c, src/os_win32.c, src/testdir/test_autochdir.vim Patch 8.2.3618 Problem: getcwd() is unclear about how 'autochdir' is used. Solution: Update the help for getcwd(). Without any arguments always return the actual current directory. (closes #9142) Files: runtime/doc/eval.txt, src/filepath.c, src/testdir/test_cd.vim Patch 8.2.3619 Problem: Cannot use a lambda for 'operatorfunc'. Solution: Support using a lambda or partial. (Yegappan Lakshmanan, closes #8775) Files: runtime/doc/map.txt, runtime/doc/options.txt, src/ops.c, src/option.c, src/optionstr.c, src/proto/ops.pro, src/proto/option.pro, src/quickfix.c, src/testdir/test_normal.vim Patch 8.2.3620 Problem: Memory leak reported in libtlib. Solution: Call del_curterm() when cleaning up memory. Rename term.h to termdefs.h to avoid a name clash. Files: src/term.c, src/proto/term.pro, src/alloc.c, src/configure.ac, src/auto/configure, src/config.h.in, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/term.h, src/termdefs.h Patch 8.2.3621 (after 8.2.3620) Problem: Build failure. Solution: Add missing change. Files: src/vim.h Patch 8.2.3622 Problem: "verbose pwd" shows confusing info when :lcd does not change directory. Solution: Clear last_chdir_reason also when the directory does not change. (closes #9160) Files: src/ex_docmd.c, src/testdir/test_autochdir.vim Patch 8.2.3623 Problem: "$*" is expanded to "nonomatch". Solution: Only add "set nonomatch" when using a csh-like shell. (Christian Brabandt, closes #9159, closes #9153) Files: src/os_unix.c, src/testdir/test_expand.vim Patch 8.2.3624 Problem: When renaming a terminal buffer the status text is not updated. Solution: Clear the cached status text when renaming a terminal buffer. (closes #9162) Files: src/buffer.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim Patch 8.2.3625 Problem: Illegal memory access when C-indenting. Solution: Also set the cursor column. Files: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3626 Problem: "au!" and "au! event" cannot be followed by another command as documented. Solution: When a bar is found set nextcmd. Files: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.3627 Problem: difficult to know where the text starts in a window. (Sergey Vlasov) Solution: Add the "textoff" entry in the result of getwininfo(). (closes #9163) Files: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.3628 Problem: Looking up terminal colors is a bit slow. Solution: Cache the terminal colors. (closes #9130, closes #9058) Files: src/highlight.c, src/libvterm/include/vterm.h, src/option.c, src/optionstr.c, src/popupwin.c, src/proto/terminal.pro, src/structs.h, src/terminal.c, src/window.c, src/testdir/test_terminal3.vim, src/testdir/dumps/Test_terminal_color_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_MyTermCol_over_Terminal.dump, src/testdir/dumps/Test_terminal_color_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_MyWinCol_over_group.dump, src/testdir/dumps/Test_terminal_color_Terminal.dump, src/testdir/dumps/Test_terminal_color_gui_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_gui_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_gui_Terminal.dump, src/testdir/dumps/Test_terminal_color_gui_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_gui_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_gui_transp_Terminal.dump, src/testdir/dumps/Test_terminal_color_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_transp_Terminal.dump, src/testdir/dumps/Test_terminal_popup_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_MyTermCol_over_Terminal.dump, src/testdir/dumps/Test_terminal_popup_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_MyWinCol_over_group.dump, src/testdir/dumps/Test_terminal_popup_gui_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_gui_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_gui_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_gui_Terminal.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_Terminal.dump, src/testdir/dumps/Test_terminal_popup_transp_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_transp_Terminal.dump, src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump, src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump Patch 8.2.3629 Problem: Command completion in cmdline window uses global user commands, not local commands for the window where it was opened from. Solution: Use local commands. (closes #9168) Files: src/ex_getln.c, src/proto/ex_getln.pro, src/evalvars.c, src/usercmd.c, src/testdir/test_ins_complete.vim Patch 8.2.3630 Problem: Printf() with %S does not handle multi-byte correctly. Solution: Count cells instead of bytes. (closes #9169, closes #7486) Files: src/strings.c, src/testdir/test_expr.vim Patch 8.2.3631 Problem: "syntax enable" does not work properly in Vim9 context. Solution: Also handle Vim9 context. (closes #9161) Files: src/syntax.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3632 Problem: GTK3: undercurl does not get removed properly. Solution: Set the cairo cursor first. (closes #9170) Files: src/gui_gtk_x11.c Patch 8.2.3633 Problem: Vim9: line number of lambda is off by one. Solution: Add one to the line number. (closes #9083) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3634 Problem: Error for already defined function uses wrong line number. Solution: Set SOURCING_LNUM before giving the error message. (closes #9085) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3635 Problem: GTK: composing underline does not show. Solution: Include composing character in pango call. A few more optimizations for ligatures. (Dusan Popovic, closes #9171, closes #9147) Files: src/gui_gtk_x11.c Patch 8.2.3636 Problem: Coverity warns for unreachable code. Solution: Remove unreachable else block. Files: src/gui_gtk_x11.c Patch 8.2.3637 Problem: Typos in test files. Solution: Correct the typos. (Dominique Pellé, closes #9175) Files: src/testdir/runtest.vim, src/testdir/test_debugger.vim, src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_flatten.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, src/testdir/test_recover.vim, src/testdir/test_spellfile.vim, src/testdir/test_syntax.vim, src/testdir/test_termcodes.vim, src/testdir/test_textobjects.vim, src/testdir/test_trycatch.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim Patch 8.2.3638 Problem: getcompletion() always passes zero as position to custom completion function. Solution: Pass the pattern length. (closes #9173) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3639 (after 8.2.2922) Problem: Line commented out accidentally. Solution: Uncomment. (Volodymyr Kot, closes #9172) Files: src/main.c Patch 8.2.3640 Problem: Freeze when calling term_wait() in a close callback. Solution: Set a "closing" flag to tell term_wait() to return. (closes #9152) Files: src/channel.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim Patch 8.2.3641 Problem: Xxd code has duplicate expressions. Solution: Refactor to avoid duplication. (closes #9185) Files: src/xxd/xxd.c Patch 8.2.3642 Problem: List of distributed files is outdated. Solution: Rename term.h to termdefs.h. Files: Filelist Patch 8.2.3643 Problem: Header for source file is outdated. Solution: Make the header more accurate. (closes #9186) Files: src/map.c, src/getchar.c Patch 8.2.3644 Problem: Count for 'operatorfunc' in Visual mode is not redone. Solution: Add the count to the redo buffer. (closes #9174) Files: src/normal.c, src/proto/normal.pro, src/ops.c, src/testdir/test_normal.vim Patch 8.2.3645 Problem: Vim9: The "no effect" error is not given for all registers. Solution: Include any character following '@'. (closes #8779) Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3646 Problem: Using <sfile> in a function gives an unexpected result. Solution: Give an error in a Vim9 function. (issue #9189) Files: src/scriptfile.c, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3647 Problem: GTK: when using ligatures the cursor is drawn wrong. Solution: Clear more characters when ligatures are used. (Dusan Popovic, closes #9190) Files: src/gui.c Patch 8.2.3648 Problem: "verbose pwd" is incorrect after dropping files on Vim. Solution: Set the chdir reason to "drop". Files: src/gui.c Patch 8.2.3649 Problem: Vim9: error for variable declared in while loop. Solution: Do not keep the first variable. (closes #9191) Files: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3650 Problem: Vim9: for loop variable can be a list member. Solution: Check for valid variable name. (closes #9179) Files: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.3651 Problem: Vim9: no error for :lock or :unlock with unknown variable. Solution: Give an error. (closes #9188) Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3652 Problem: Can only get text properties one line at a time. Solution: Add options to prop_list() to use a range of lines and filter by types. (Yegappan Lakshmanan, closes #9138) Files: runtime/doc/textprop.txt, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3653 Problem: Terminal ANSI colors may be wrong. Solution: Initialize the color type. (closes #9198, closes #9197) Files: src/terminal.c Patch 8.2.3654 Problem: GTK: a touch-drag does not update the selection. Solution: Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196, closes #9194) Files: src/gui_gtk_x11.c Patch 8.2.3655 Problem: Compiler warning for using size_t for int. Solution: Add a type cast. (Mike Williams, closes #9199) Files: src/vim9compile.c Patch 8.2.3656 Problem: Vim9: no error for an environment variable by itself. Solution: Give a "without effect" error. (closes #9166) Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3657 Problem: Vim9: debug text misses one line of return statement. Solution: Add a line when not at a debug instruction. (closes #9137) Files: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3658 Problem: Duplicate code in xxd. Solution: Merge duplicated code. Add more tests. (closes #9192) Files: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3659 Problem: Integer overflow with large line number. Solution: Check for overflow. (closes #9202) Files: src/errors.h, src/ex_docmd.c, src/testdir/test_excmd.vim src/normal.c, src/testdir/test_normal.vim Patch 8.2.3660 (after 8.2.3659) Problem: Overflow check uses wrong number. Solution: Divide by ten. Files: src/normal.c Patch 8.2.3661 (after 8.2.3659) Problem: Test for put with large count fails. Solution: Adjust the counts in the test. Files: src/testdir/test_put.vim Patch 8.2.3662 Problem: Illegal memory access if malloc() fails. Solution: Check 'foldmethod' is not empty. (closes #9207) Files: src/fold.c Patch 8.2.3663 Problem: Using %S in printf() does not work correctly. Solution: Fix the problem and add more tests. (closes #9208) Files: src/strings.c, src/testdir/test_expr.vim Patch 8.2.3664 Problem: Cannot adjust sign highlighting for 'cursorline'. Solution: Add CursorLineSign and CursorLineFold highlight groups. (Gregory Anders, closes #9201) Files: runtime/doc/sign.txt, runtime/doc/syntax.txt, src/drawline.c, src/highlight.c, src/optiondefs.h, src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h, src/vim.h, src/testdir/test_signs.vim Patch 8.2.3665 Problem: Cannot use a lambda for 'tagfunc'. Solution: Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204) Files: runtime/doc/options.txt, src/buffer.c, src/option.c, src/optionstr.c, src/proto/tag.pro, src/structs.h, src/tag.c, src/testdir/test_tagfunc.vim Patch 8.2.3666 Problem: Libvterm is outdated. Solution: Include patches from revision 769 to revision 789. Files: Filelist, src/libvterm/Makefile, src/libvterm/doc/seqs.txt, src/libvterm/include/vterm.h, src/libvterm/src/mouse.c, src/libvterm/src/parser.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/17state_mouse.test, src/libvterm/t/29state_fallback.test, src/libvterm/t/40state_selection.test, src/libvterm/t/harness.c, src/libvterm/t/run-test.pl, src/libvterm/vterm.pc.in, src/terminal.c Patch 8.2.3667 Problem: Building libvterm fails with MSVC. Solution: Don't use C99 construct. Files: src/libvterm/src/state.c Patch 8.2.3668 Problem: Messages may be corrupted. Solution: Use another buffer instead of IObuff. (Yegappan Lakshmanan, closes #9195) Files: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.3669 Problem: Buffer overflow with long help argument. Solution: Use snprintf(). Files: src/help.c, src/testdir/test_help.vim Patch 8.2.3670 Problem: Error checks repeated several times. Solution: Move the checks to functions. (closes #9213) Files: src/xxd/xxd.c Patch 8.2.3671 Problem: Restarting Insert mode in prompt buffer too often when a callback switches windows and comes back. (Sean Dewar) Solution: Do not set "restart_edit" when already in Insert mode. (closes #9212) Files: src/window.c, src/testdir/test_prompt_buffer.vim Patch 8.2.3672 (after 8.2.3670) Problem: Build failure with unsigned char. Solution: Use int instead of char. Files: src/xxd/xxd.c Patch 8.2.3673 Problem: Crash when allocating signal stack fails. Solution: Only using sourcing info when available. (closes #9215) Files: src/globals.h, src/message.c Patch 8.2.3674 Problem: When ml_get_buf() fails it messes up IObuff. Solution: Return a local pointer. (closes #9214) Files: src/memline.c Patch 8.2.3675 Problem: Using freed memory when vim_strsave() fails. Solution: Clear "last_sourcing_name". Check for msg_source() called recursively. (closes #8217) Files: src/message.c Patch 8.2.3676 Problem: Unused runtime file. Solution: Remove rgb.txt. Files: runtime/rgb.txt Patch 8.2.3677 Problem: After a put the '] mark is on the last byte of a multi-byte character. Solution: Move it to the first byte. (closes #9047) Files: src/register.c, src/testdir/test_put.vim Patch 8.2.3678 (after 8.2.3677) Problem: Illegal memory access. Solution: Ignore changed indent when computing byte offset. Files: src/register.c Patch 8.2.3679 Problem: objc file detected as Octave. (Antony Lee) Solution: Detect objc by preprocessor lines. (Doug Kearns, closes #9223, closes #9220) Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.3680 Problem: Repeated code in xxd. Solution: Change exit_on_ferror() to getc_or_die(). (closes #9226) Files: src/xxd/xxd.c Patch 8.2.3681 Problem: Cannot drag popup window after click on a status line. (Sergey Vlasov) Solution: Reset on_status_line. (closes #9221) Files: src/mouse.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_drag_04.dump Patch 8.2.3682 Problem: Vim9: assigning to a script variable drops the required type. Solution: Lookup the type of the variable and use it. (closes #9219) Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_assign.vim Patch 8.2.3683 Problem: Vim9: cannot use `=expr` in :...do commands. Solution: Add EX_EXPAND to the commands. (closes #9232) Files: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3684 Problem: Blockwise insert does not handle autoindent properly. Solution: Adjust text column for indent. (closes #9229) Files: src/ops.c, src/testdir/test_blockedit.vim Patch 8.2.3685 Problem: Visual Studio project files are not recognized. Solution: Use the xml file type. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3686 Problem: Filetype detection often mixes up Forth and F#. Solution: Add a function to inspect the file contents. (Doug Kearns) Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/doc/syntax.txt, runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.3687 Problem: Blockwise insert does not handle autoindent properly when tab is inserted. Solution: Adjust text column for indent before computing column. (closes #9229) Files: src/ops.c, src/testdir/test_blockedit.vim Patch 8.2.3688 Problem: The window title is not updated when dragging the scrollbar. Solution: Call maketitle(). (Christian Brabandt, closes #9238, closes #5383) Files: src/gui.c Patch 8.2.3689 Problem: ex_let_one() is too long. Solution: Split into multiple functions. Files: src/evalvars.c Patch 8.2.3690 Problem: Vim9: "filter #pat# cmd" does not work. Solution: Do not see #pat# as a comment. Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3691 Problem: Build failure with small features. Solution: Add #ifdef. (Dominique Pellé) Files: src/gui.c Patch 8.2.3692 Problem: Vim9: cannot use :func inside a :def function. Solution: Make it work. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/structs.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3693 Problem: Coverity warns for possibly using a NULL pointer. Solution: Check for NULL and give an error. Files: src/vim9execute.c, src/errors.h Patch 8.2.3694 Problem: Cannot use quotes in the count of an Ex command. Solution: Add getdigits_quoted(). Give an error when misplacing a quote in a range. (closes #9240) Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, src/testdir/test_usercommands.vim Patch 8.2.3695 Problem: Confusing error for missing key. Solution: Use the actual key for the error. (closes #9241) Files: src/eval.c, src/testdir/test_listdict.vim Patch 8.2.3696 Problem: Vim9: error for invalid assignment when skipping. Solution: Do not check white space when skipping. (closes #9243) Files: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.3697 Problem: Cannot drag a popup without a border. Solution: Add the "dragall" option. (closes #9218) Files: runtime/doc/popup.txt, src/mouse.c, src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_drag_05.dump, src/testdir/dumps/Test_popupwin_drag_06.dump Patch 8.2.3698 Problem: Match highlighting continues over breakindent. Solution: Stop before the end column. (closes #9242) Files: src/match.c, src/proto/match.pro, src/drawline.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_linebreak.dump Patch 8.2.3699 Problem: The +title feature adds a lot of #ifdef but little code. Solution: Graduate the +title feature. Files: src/feature.h, src/alloc.c, src/arglist.c, src/autocmd.c, src/buffer.c, src/bufwrite.c, src/change.c, src/drawscreen.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui.c, src/gui_gtk_x11.c, src/if_xcmdsrv.c, src/locale.c, src/main.c, src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c, src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/regexp.c, src/term.c, src/ui.c, src/version.c, src/window.c, src/globals.h, src/option.h, src/optiondefs.h, runtime/doc/options.txt, runtime/doc/various.txt Patch 8.2.3700 Problem: Text property highlighting continues over breakindent. Solution: Stop before the end column. (closes #9242) Files: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_linebreak.dump Patch 8.2.3701 Problem: Vim9: invalid LHS is not possible. Solution: Remove unreachable error message. Files: src/vim9compile.c Patch 8.2.3702 Problem: First key in dict is seen as curly expression and fails. Solution: Ignore failure of curly expression. (closes #9247) Files: src/typval.c, src/dict.c, src/testdir/test_listdict.vim Patch 8.2.3703 (after 8.2.3686) Problem: Most people call F# "fsharp" and not "fs". Solution: Rename filetype "fs" to "fsharp". Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3704 Problem: Vim9: cannot use a list declaration in a :def function. Solution: Make it work. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.3705 Problem: Cannot pass a lambda name to function() or funcref(). (Yegappan Lakshmanan) Solution: Handle a lambda name differently. Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/testdir/test_expr.vim Patch 8.2.3706 (after 8.2.3700) Problem: Text property highlighting is used on Tab. Solution: Only set in_linebreak when not on a Tab. (closes #9242) Files: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_after_tab.dump Patch 8.2.3707 Problem: Vim9: constant expression of elseif not recognized. Solution: Set instruction count before generating the expression. Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3708 (after 8.2.3707) Problem: Vim9: test fails with different error. Solution: Correct the error number. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.3709 Problem: Vim9: backtick expression expanded when not desired. Solution: Only expand a backtick expression for commands that expand their argument. Remove a few outdated TODO comments. Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3710 Problem: Vim9: backtick expression expanded for :global. Solution: Check the following command. Files: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3711 Problem: Vim9: memory leak when compiling :elseif fails. Solution: Cleanup ppconst. Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3712 Problem: Cannot use Vim9 lambda for 'tagfunc'. Solution: Make it work, add more tests. (Yegappan Lakshmanan, closes #9250) Files: runtime/doc/options.txt, src/insexpand.c, src/option.c, src/testdir/test_tagfunc.vim Patch 8.2.3713 Problem: MS-Windows: No error message if vimgrep pattern is not matching. Solution: Give an error message. (Christian Brabandt, closes #9245, closes #8762) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3714 Problem: Some unused assignments and ugly code in xxd. Solution: Leave out assignments. Use marcro for fprintf(). (closes #9246) Files: src/xxd/xxd.c Patch 8.2.3715 Problem: Vim9: valgrind reports spurious problems for a test. Solution: Move the test to the set that is known to fail. Files: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_fails.vim Patch 8.2.3716 Problem: Vim9: range without a command is not compiled. Solution: Add the ISN_EXECRANGE byte code. Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.3717 Problem: Vim9: error for constant list size is only given at runtime. Solution: Give the error at compile time if possible. Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3718 Problem: Compiler warns for unused variable without the +textprop feature. (John Marriott) Solution: Adjust #ifdefs. Files: src/drawline.c Patch 8.2.3719 Problem: MS-Windows: test sometimes runs into existing swap file. Solution: Use a different file name. Files: src/testdir/test_buffer.vim Patch 8.2.3720 Problem: Vim9: Internal error when invoking closure in legacy context. Solution: Give a more appropriate error message. (closes #9251) Files: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3721 Problem: Using memory freed by losing the clipboard selection. (Dominique Pellé) Solution: Check y_array is still valid after calling changed_lines(). (closes #9253) Files: src/errors.h, src/register.c Patch 8.2.3722 Problem: Amiga: superfluous messages for freeing lots of yanked text. Solution: Assume that the machine isn't that slow these days. Files: src/register.c Patch 8.2.3723 Problem: When using 'linebreak' a text property starts too early. Solution: Decrement "bcol" when looking for property start. (closes #9242) Files: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_after_linebreak.dump Patch 8.2.3724 Problem: Build error for missing error message in small build. Solution: Correct #ifdef. Files: src/errors.h Patch 8.2.3725 Problem: Cannot use a lambda for 'completefunc' and 'omnifunc'. Solution: Implement lambda support. (Yegappan Lakshmanan, closes #9257) Files: runtime/doc/options.txt, src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c, src/proto/insexpand.pro, src/proto/tag.pro, src/proto/userfunc.pro, src/structs.h, src/tag.c, src/userfunc.c, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3726 Problem: README file in a config directory gets wrong filetype. Solution: Match README before patterns that match everything in a directory. Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3727 Problem: In a gnome terminal keys are recognized as mouse events. Solution: Only recognize DEC mouse events when four numbers are following. (closes #9256) Files: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.3728 Problem: Internal error when passing range() to list2blob(). Solution: Materialize the list first. (closes #9262) Files: src/blob.c, src/testdir/test_blob.vim Patch 8.2.3729 Problem: No support for squirrels. Solution: Recognize nuts. (closes #9259) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3730 Problem: "/etc/Muttrc.d/README" gets filetype muttrc. Solution: Move the Muttrc.d pattern down, add exception for *.rc files. Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3731 Problem: "set! termcap" shows codes in one column, but not keys. Solution: Also use one column for keys. (closes #9258) Files: src/option.c, src/term.c, src/proto/term.pro, src/testdir/test_set.vim Patch 8.2.3732 (after 8.2.3731) Problem: "set! termcap" test fails. Solution: Account for keys without a t_xx entry. Files: src/testdir/test_set.vim Patch 8.2.3733 Problem: Vim9: using "legacy" before range does not work. Solution: Skip over range before parsing command. (closes #9270) Files: src/vim9compile.c, src/usercmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3734 Problem: Vim9: crash when no pattern match found. Solution: Check for error. Files: src/vim9execute.c Patch 8.2.3735 Problem: Cannot use a lambda for 'imactivatefunc'. Solution: Add lambda support for 'imactivatefunc' and 'imstatusfunc'. (Yegappan Lakshmanan, closes #9275) Files: runtime/doc/options.txt, src/alloc.c, src/gui_xim.c, src/optionstr.c, src/proto/gui_xim.pro, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim Patch 8.2.3736 Problem: Test fails without the channel feature. (Dominique Pellé) Solution: Source the check.vim script. (closes #9277) Files: src/testdir/test_vim9_fails.vim Patch 8.2.3737 Problem: Test fails without the 'autochdir' option. Solution: Check that the option is available. (Dominique Pellé, closes #9272) Files: src/testdir/test_cd.vim Patch 8.2.3738 Problem: Screen is cleared when a FocusLost autocommand triggers. Solution: Do not redraw when at the hit-enter or more prompt. (closes #9274) Files: src/misc1.c Patch 8.2.3739 Problem: In wrong directory when using win_execute() with 'acd' set. Solution: Restore the directory when returning to the window. (closes #9276) Files: src/window.c, src/testdir/test_autochdir.vim Patch 8.2.3740 Problem: Memory left allocated on exit when using Tcl. Solution: Call Tcl_Finalize(). Files: src/if_tcl.c, src/proto/if_tcl.pro, src/alloc.c Patch 8.2.3741 Problem: Using freed memory in open command. Solution: Make a copy of the current line. Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.3742 Problem: Dec mouse test fails without gnome terminfo entry. Solution: Check if there is a gnome entry. Also fix 'acd' test on MS-Windows. (Ozaki Kiichi, closes #9282) Files: src/testdir/test_termcodes.vim, src/testdir/test_autochdir.vim Patch 8.2.3743 Problem: ":sign" can add a highlight group without a name. Solution: Give an error if the group name is missing. (closes #9280) Files: src/sign.c, src/errors.h, src/testdir/test_signs.vim Patch 8.2.3744 Problem: E854 is not tested; some spelling suggestions are not tested. Solution: Add a couple of tests. (Dominique Pellé, closes #9279) Files: src/testdir/test_options.vim, src/testdir/test_spell.vim Patch 8.2.3745 Problem: Autochdir test fails without the +channel feature. Solution: Remove the ch_logfile() call. (Dominique Pellé, closes #9281) Files: src/testdir/test_autochdir.vim Patch 8.2.3746 Problem: Cannot disassemble function starting with "debug" or "profile". Solution: Check for white space following. (closes #9273) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3747 (after 8.2.3743) Problem: Cannot remove highlight from an existing sign. (James McCoy) Solution: Only reject empty argument for a new sign. Files: src/sign.c, src/testdir/test_signs.vim Patch 8.2.3748 (after 8.2.3747) Problem: Giving an error for an empty sign argument breaks a plugin. Solution: Do not give an error. Files: src/sign.c, src/errors.h, src/testdir/test_signs.vim Patch 8.2.3749 Problem: Error messages are everywhere. Solution: Move more error messages to errors.h and adjust the names. Files: src/errors.h, src/regexp_bt.c, src/regexp.c, src/regexp_nfa.c, src/globals.h, src/memfile.c, src/tag.c, src/getchar.c, src/bufwrite.c, src/cmdexpand.c Patch 8.2.3750 Problem: Error messages are everywhere. Solution: Move more error messages to errors.h and adjust the names. Files: src/globals.h, src/errors.h, src/blob.c, src/buffer.c, src/channel.c, src/ex_docmd.c, src/job.c, src/list.c, src/mark.c, src/misc1.c, src/os_unix.c, src/popupwin.c, src/register.c, src/session.c, src/spellfile.c, src/term.c, src/userfunc.c Patch 8.2.3751 Problem: Cannot assign a lambda to an option that takes a function. Solution: Automatically convert the lambda to a string. (Yegappan Lakshmanan, closes #9286) Files: runtime/doc/options.txt, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/option.c, src/option.h, src/optiondefs.h, src/proto/option.pro, src/spell.c, src/typval.c, src/vim9compile.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3752 Problem: Build error when using Photon GUI. Solution: Adjust #ifdef. (closes #9288) Files: src/beval.c Patch 8.2.3753 Problem: Vim9: function unreferenced while called is never deleted. Solution: Delete a function when no longer referenced. Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.3754 (after 8.2.3615) Problem: Undesired changing of the indent of the first formatted line. Solution: Do not indent the first formatted line. Files: src/textformat.c, src/testdir/test_indent.vim Patch 8.2.3755 Problem: Coverity warns for using a buffer in another scope. Solution: Declare the buffer in a common scope. Files: src/evalvars.c Patch 8.2.3756 Problem: might crash when callback is not valid. Solution: Check for valid callback. (Yegappan Lakshmanan, closes #9293) Files: src/insexpand.c, src/option.c, src/tag.c, src/job.c, src/userfunc.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3757 Problem: An overlong highlight group name is silently truncated. Solution: Give an error if the name is too long. (closes #9289) Files: src/errors.h, src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.3758 Problem: Options that take a function insufficiently tested. Solution: Add additional tests and enhance existing tests. (Yegappan Lakshmanan, closes #9298) Files: src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tagfunc.vim Patch 8.2.3759 Problem: Quickfix buffer becomes hidden while still in a window. Solution: Check if the closed window is the last window showing the quickfix buffer. (Yegappan Lakshmanan, closes #9303, closes #9300) Files: src/quickfix.c, src/testdir/test_quickfix.vim, src/window.c Patch 8.2.3760 Problem: Not automatically handling gnome terminal mouse like xterm. Solution: Default 'ttymouse' to "xterm" and recognize Focus events. (issue #9296) Files: src/os_unix.c Patch 8.2.3761 Problem: Focus change is not passed on to a terminal window. Solution: If the current window is a terminal and focus events are enabled send a focus event escape sequence to the terminal. Files: src/ui.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_focus_1.dump, src/testdir/dumps/Test_terminal_focus_2.dump Patch 8.2.3762 Problem: If the quickfix buffer is wiped out getqflist() still returns its number. Solution: Use zero if the buffer is no longer present. (Yegappan Lakshmanan, closes #9306) Files: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3763 Problem: When editing the command line a FocusLost callback may cause the screen to scroll up. Solution: Do not redraw at the last line but at the same place where the command line was before. (closes #9295) Files: src/ex_getln.c, src/ui.c, src/beval.c, src/channel.c, src/drawscreen.c, src/proto/drawscreen.pro, src/job.c, src/popupwin.c, src/sound.c, src/terminal.c, src/time.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_focus_1.dump, src/testdir/dumps/Test_terminal_focus_2.dump, src/testdir/dumps/Test_terminal_focus_3.dump Patch 8.2.3764 Problem: Cannot see any text when window was made zero lines or zero columns. Solution: Ensure there is at least one line and column. (fixes #9307) Files: src/window.c, src/proto/window.pro, src/normal.c, src/edit.c, src/testdir/test_window_cmd.vim Patch 8.2.3765 Problem: Vim9: cannot use a lambda for 'opfunc' and others. Solution: Convert the lambda to a string. Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3766 Problem: Converting a funcref to a string leaves out "g:", causing the meaning of the name depending on the context. Solution: Prepend "g:" for a global function. Files: src/eval.c, src/testdir/test_functions.vim Patch 8.2.3767 (after 8.2.3766) Problem: Crash when using NULL partial. Solution: Check for NULL. Files: src/eval.c Patch 8.2.3768 Problem: timer_info() has the wrong repeat value in a timer callback. (Sergey Vlasov) Solution: Do not add one to the repeat value when in the callback. (closes #9294) Files: src/time.c, src/testdir/test_timers.vim Patch 8.2.3769 Problem: Zig files are not recognized. Solution: Add *.zig. (Gregory Anders, closes #9313) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3770 Problem: New compiler warnings from clang-12 and clang-13. Solution: Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314) Files: .github/workflows/ci.yml, ci/config.mk.clang-12.sed, src/os_unix.c, src/spellfile.c Patch 8.2.3771 Problem: Vim9: accessing freed memory when checking type. Solution: Make a copy of a function type. Files: src/structs.h, src/evalvars.c, src/vim9script.c, src/testdir/test_vim9_func.vim Patch 8.2.3772 Problem: Timer info test fails on slow machine. Solution: Use WaitForAssert(). Files: src/testdir/test_timers.vim Patch 8.2.3773 Problem: Wrong window size when a modeline changes 'columns' and there is more than one tabpage. (Michael Soyka) Solution: Adjust the frames of all tabpages. (closes #9315) Files: src/window.c Patch 8.2.3774 (after 8.2.3773) Problem: Test for command line height fails. Solution: Use another way to handle window size change. Files: src/structs.h, src/window.c Patch 8.2.3775 Problem: Vim9: lambda compiled without outer context when debugging. Solution: When compiling a lambda for debugging also compile it without. (closes #9302) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3776 Problem: When a tags file line is long a tag may not be found. Solution: When increasing the buffer size read the same line again. Files: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.3777 Problem: Spell file write error not checked. Solution: Check writing the prefix conditions. (Bjorn Linse, closes #9323) Files: src/spellfile.c Patch 8.2.3778 Problem: Lambda debug test fails in some configurations. Solution: Check feature in a legacy function. Files: src/testdir/test_vim9_script.vim Patch 8.2.3779 Problem: Using freed memory when defining a user command from a user command. Solution: Do not use the command pointer after executing the command. (closes #9318) Files: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.3780 Problem: ":cd" works differently on MS-Windows. Solution: Add the 'cdhome' option. (closes #9324) Files: runtime/doc/editing.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/ex_docmd.c, src/option.h, src/optiondefs.h, src/testdir/runtest.vim, src/testdir/test_options.vim Patch 8.2.3781 Problem: The option window script is outdated. Solution: Add several changes. Files: runtime/optwin.vim Patch 8.2.3782 Problem: Vim9: no error if a function shadows a script variable. Solution: Check the function doesn't shadow a variable. (closes #9310) Files: src/userfunc.c, src/evalvars.c, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.3783 Problem: Confusing error for using a variable as a function. Solution: If a function is not found but there is a variable, give a more useful error. (issue #9310) Files: src/eval.c, src/userfunc.c, src/proto/userfunc.pro, src/structs.h, src/vim9execute.c, src/testdir/test_functions.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim Patch 8.2.3784 Problem: The help for options is outdated. Solution: Include all the recent changes. Files: runtime/doc/options.txt Patch 8.2.3785 Problem: Running CI on macOS with gcc is not useful. Solution: Only use clang. (Ozaki Kiichi, closes #9326) Also build with normal features. Files: .github/workflows/ci.yml Patch 8.2.3786 Problem: Test fails because of using Vim9 syntax in legacy function. Solution: Add "call". Files: src/testdir/test_functions.vim Patch 8.2.3787 Problem: No proper formatting of a C line comment after a statement. Solution: Find the start of the line comment, insert the comment leader and indent the comment properly. Files: src/change.c, src/proto/change.pro, src/search.c, src/proto/search.pro, src/cindent.c, src/edit.c, src/normal.c, src/textformat.c, src/testdir/test_textformat.vim, src/testdir/test_cindent.vim Patch 8.2.3788 Problem: Lambda for option that is a function may be garbage collected. Solution: Set a reference in the funcref. (Yegappan Lakshmanan, closes #9330) Files: src/eval.c, src/evalbuffer.c, src/evalvars.c, src/gui_xim.c, src/insexpand.c, src/ops.c, src/proto/eval.pro, src/proto/gui_xim.pro, src/proto/insexpand.pro, src/proto/ops.pro, src/proto/tag.pro, src/quickfix.c, src/tag.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3789 Problem: Test_window_minimal_size can fail on a slow machine. Solution: Do not rely on timers firing at the expected time. (Ozaki Kiichi, closes #9335) Files: src/testdir/test_window_cmd.vim Patch 8.2.3790 Problem: Test for term_gettitle() fails in some environments. Solution: Make the digits after "VIM" optional. (Kenta Sato, closes #9334) Files: src/testdir/test_terminal2.vim Patch 8.2.3791 Problem: Build error with +cindent but without +smartindent. Solution: Move declaration of "do_cindent". (John Marriott) Files: src/change.c Patch 8.2.3792 Problem: Setting *func options insufficiently tested. Solution: Improve tests. (Yegappan Lakshmanan, closes #9337) Files: src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3793 Problem: Using "g:Func" as a funcref does not work in script context because "g:" is dropped. Solution: Keep "g:" in the name. Also add parenthesis to avoid confusing operator precedence. (closes #9336) Files: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.3794 Problem: Vim9: cannot find script-local func using "s:". (Yegappan Lakshmanan) Solution: Skip the "s:". Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3795 Problem: Too many #ifdefs. Solution: Graduate the jumplist feature. Files: runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h, src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c, src/mark.c, src/normal.c, src/undo.c, src/version.c, src/viminfo.c, src/window.c, src/structs.h, src/testdir/test_changelist.vim, src/testdir/test_jumplist.vim, src/testdir/test_normal.vim Patch 8.2.3796 Problem: The funcexe_T struct members are not named consistently. Solution: Prefix "fe_" to all the members. Files: src/structs.h, src/eval.c, src/list.c, src/regexp.c, src/terminal.c, src/userfunc.c, src/vim9execute.c Patch 8.2.3797 Problem: No good reason to limit the message history in the tiny version. Solution: Always use 200. Files: runtime/doc/message.txt, src/feature.h Patch 8.2.3798 Problem: A :def callback function postpones an error message. Solution: Display the error after calling the function. (closes #9340) Files: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_opfunc_error.dump Patch 8.2.3799 (after 8.2.3798) Problem: Edit test hangs or fails. Solution: Do not rethrow an exception when inside try/catch. Files: src/userfunc.c Patch 8.2.3800 Problem: When cross compiling the output of "uname" cannot be set. (Ben Reeves) Solution: Use cache variables. (closes #9338) Files: src/configure.ac, src/auto/configure Patch 8.2.3801 Problem: If a terminal shows in two windows, only one is redrawn. Solution: Reset the dirty row range only after redrawing all windows. (closes #9341) Files: src/terminal.c, src/proto/terminal.pro, src/drawscreen.c, src/testdir/test_terminal.vim Patch 8.2.3802 Problem: Terminal in two windows test fails on some systems. Solution: Wait a bit between commands. Files: src/testdir/test_terminal.vim Patch 8.2.3803 Problem: Crash when 'writedelay' is set and using a terminal window to execute a shell command. Solution: Check that "tl_vterm" isn't NULL. (closes #9346) Files: src/terminal.c Patch 8.2.3804 Problem: Script context not set when copying 'swf' and 'ts'. Solution: Use COPY_OPT_SCTX with the right argument. (closes #9347) Files: src/option.c Patch 8.2.3805 Problem: i3config files are not recognized. Solution: Add patterns to match i3config files. (Quentin Hibon, closes #7969) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3806 Problem: Terminal focus test fails sometimes. Solution: Run the test function before others. Files: src/testdir/test_terminal.vim Patch 8.2.3807 Problem: Vim9: can call import with star directly. Solution: Check that the import used star. Files: src/userfunc.c, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3808 Problem: Vim9: obsolete TODO items Solution: Remove the comments. Files: src/vim9execute.c Patch 8.2.3809 Problem: Vim9: crash when garbage collecting a nested partial. (Virginia Senioria) Solution: Set references in all the funcstacks. (closes #9348) Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.3810 Problem: Vim9: expr4 test fails on MS-Windows. Solution: Do not give an error for a missing function name when skipping. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3811 Problem: The opfunc error test fails on a slow machine. Solution: Use WaitForAssert(). Files: src/testdir/test_vim9_func.vim Patch 8.2.3812 Problem: Vim9: leaking memory in numbered function test. Solution: Skip "g:" when checking for numbered function. Clean up after errors properly. Files: src/userfunc.c Patch 8.2.3813 Problem: confusing error when using :cc without error list. (Gary Johnson) Solution: Give the "no errors" error. Files: src/ex_docmd.c, src/testdir/test_quickfix.vim Patch 8.2.3814 Problem: .csx files and .sln files are not recognized. Solution: Add filetype patterns. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3815 Problem: Vim9: cannot have a multi-line dict inside a block. Solution: Do not split the command at a line break, handle NL characters as white space. Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3816 Problem: Compiler warning for possible loss of data on MS-Windows. Solution: Add type cast. (Mike Williams, closes #9349) Files: src/userfunc.c Patch 8.2.3817 (after 8.2.3815) Problem: Vim9: Not using NL as command end does not work for :autocmd. Solution: Only ignore NL for commands with an expression argument. Files: src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_usercommands.vim Patch 8.2.3818 Problem: Cannot filter or map characters in a string. Solution: Make filter() and map() work on a string. (Naruhiko Nishino, closes #9327) Files: runtime/doc/eval.txt, src/errors.h, src/list.c, src/testdir/test_filter_map.vim Patch 8.2.3819 (after 8.2.3818) Problem: Test fails because error message changed. Solution: Update screendumps. Files: src/testdir/dumps/Test_popupwin_three_errors_1.dump, src/testdir/dumps/Test_popupwin_three_errors_2.dump Patch 8.2.3820 Problem: "vrc" does not replace composing characters, while "rc" does. Solution: Check the byte length including composing characters. (closes #9351) Files: src/ops.c, src/testdir/test_visual.vim Patch 8.2.3821 Problem: ASAN test run fails. Solution: Use asan_symbolize-13 instead of asan_symbolize-11. Files: .github/workflows/ci.yml Patch 8.2.3822 Problem: Leaking memory in map() and filter(), cannot use a string argument in Vim9 script. Solution: Fix the leak, adjust the argument check, also run the tests as Vim9 script. (Yegappan Lakshmanan, closes #9354) Files: src/errors.h, src/evalfunc.c, src/list.c, src/proto/typval.pro, src/testdir/test_filter_map.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3823 Problem: Test for visual replace is in wrong function. Solution: Move it to another function. Files: src/testdir/test_visual.vim Patch 8.2.3824 Problem: No ASAN support for MSVC. Solution: Add ASAN support and fix a couple of uncovered problems. (Yegappan Lakshmanan, closes #9357) Files: src/Make_mvc.mak, src/findfile.c, src/os_mswin.c, src/testdir/test_fnamemodify.vim Patch 8.2.3825 Problem: Various comments could be improved. Solution: Improve the comments. Files: src/getchar.c, src/mbyte.c, src/regexp_nfa.c, src/testdir/test_edit.vim, src/gui_motif.c Patch 8.2.3826 Problem: Vim9: using "g:Func" as a funcref does not work in a :def function. Solution: Include "g:" in the function name. (closes #9336) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3827 Problem: Huntr badge does not really fit in the list. Solution: Move the link to Huntr to the issue template. Files: Filelist, .github/ISSUE_TEMPLATE/bug_report.yml, README.md Patch 8.2.3828 Problem: when opening a terminal from a timer the first typed character is lost. (Virginia Senioria) Solution: When opening a terminal while waiting for a character put K_IGNORE in the input buffer. Files: src/terminal.c, src/edit.c, src/testdir/test_terminal.vim Patch 8.2.3829 Problem: No error when setting a func option to a script-local function. Solution: Give an error if the name starts with "s:". (closes #9358) Files: src/option.c, src/testdir/test_tagfunc.vim, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump Patch 8.2.3830 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/globals.h, src/errors.h, src/buffer.c, src/dict.c, src/diff.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/misc2.c, src/quickfix.c, src/typval.c, src/ui.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/window.c Patch 8.2.3831 Problem: Opfunc test fails when missing feature changes function name. (Dominique Pellé) Solution: Check the relevant screen line instead of using a screendump. (closes #9360) Files: src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_opfunc_error.dump Patch 8.2.3832 (after 8.2.3830) Problem: Test fails because of changed error message. Solution: Adjust the expected error message. Files: src/testdir/test_vimscript.vim Patch 8.2.3833 Problem: Error from term_start() not caught by try/catch. Solution: save and restore did_emsg when applying autocommands. (Ozaki Kiichi, closes #9361) Files: src/autocmd.c, src/testdir/test_terminal3.vim Patch 8.2.3834 Problem: Test_out_cb often fails on Mac. Solution: Increase the timeout with every retry. Files: src/testdir/test_channel.vim Patch 8.2.3835 Problem: The inline-function example does not work. Solution: Drop ":let". Add EX_EXPR_ARG to CMD_var. (issue #9352) Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/testdir/test_vim9_expr.vim Patch 8.2.3836 Problem: Vim9: comment after expression not skipped to find NL. Solution: After evaluating an expression look for a newline after a # comment. Files: src/eval.c Patch 8.2.3837 Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check gui.in_use is set. (Hirohito Higashi, closes #9363) Files: src/autocmd.c Patch 8.2.3838 Problem: Cannot use script-local function for setting *func options. Solution: Use the script context. (Yegappan Lakshmanan, closes #9362) Files: src/option.c, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3839 Problem: Using \z() with \z1 not tested for syntax highlighting. Solution: Add a test. (Dominique Pellé, closes #9365) Files: src/testdir/test_syntax.vim Patch 8.2.3840 Problem: Useless test for negative index in check functions. Solution: Remove the test for negative index. (Naruhiko Nishino, closes #9364) Files: src/typval.c Patch 8.2.3841 Problem: Vim9: outdated TODO items, disabled tests that work. Solution: Remove TODO items, run tests that work now. Check that a dict item isn't locked. Files: src/vim9execute.c, src/evalvars.c, src/errors.h, src/globals.h, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3842 Problem: Vim9: can change locked list and list items. Solution: Check that a list and list item isn't locked. Files: src/vim9execute.c, src/testdir/test_listdict.vim Patch 8.2.3843 Problem: Dep3patch files are not recognized. Solution: Recognize dep3patch files by their location and content. (James McCoy, closes #9367) Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3844 Problem: Vim9: no type error if assigning a value with type func(number) to a variable of type func(string). Solution: Use check_type_maybe(): return MAYBE if a runtime type check is useful. (issue #8492) Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3845 Problem: Vim9: test fails when the channel feature is missing. Solution: Check for the channel feature. (Dominique Pellé, closes #9368) Files: src/testdir/test_vim9_builtin.vim Patch 8.2.3846 Problem: No error when using control character for 'lcs' or 'fcs'. Solution: Use char2cells() to check the width. (closes #9369) Files: src/screen.c, src/testdir/test_display.vim, src/testdir/test_listchars.vim Patch 8.2.3847 Problem: Illegal memory access when using a lambda with an error. Solution: Avoid skipping over the NUL after a string. Files: src/eval.c, src/testdir/test_lambda.vim Patch 8.2.3848 Problem: Cannot use reduce() for a string. Solution: Make reduce() work with a string. (Naruhiko Nishino, closes #9366) Files: runtime/doc/eval.txt, src/errors.h, src/evalfunc.c, src/list.c, src/typval.c, src/proto/typval.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3849 Problem: Functions implementing reduce and map are too long. Solution: Use a function for each type of value. Add a few more test cases and add to the help. (Yegappan Lakshmanan, closes #9370) Files: runtime/doc/eval.txt, src/list.c, src/testdir/test_listdict.vim Patch 8.2.3850 Problem: Illegal memory access when displaying a partial. Solution: Terminate the string with a NUL. (closes #9371) Files: src/eval.c, src/testdir/test_messages.vim Patch 8.2.3851 Problem: Vim9: overhead when comparing string, dict or function. Solution: Call the intended compare function directly. Refactor to avoid duplicated code. Files: src/vim9execute.c, src/typval.c, src/proto/typval.pro Patch 8.2.3852 Problem: Vim9: not enough tests. Solution: Also run existing tests for Vim9 script. Make errors more consistent. Files: src/testdir/test_listdict.vim, src/eval.c, src/vim9compile.c, src/errors.h Patch 8.2.3853 Problem: Vim9: not enough tests. Solution: Run more existing tests for Vim9 script. Files: src/testdir/test_listdict.vim Patch 8.2.3854 Problem: Vim9: inconsistent arguments for test functions. Solution: When :def function and script have different arguments use a list with two items instead of a separate function. Files: src/testdir/vim9.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.3855 Problem: Illegal memory access when displaying a blob. Solution: Append a NUL at the end. (Yegappan Lakshmanan, closes #9372) Files: src/blob.c, src/regexp_nfa.c, src/testdir/test_blob.vim, src/testdir/test_messages.vim Patch 8.2.3856 Problem: Vim9: not enough tests. Solution: Run more expression tests also with Vim9. Fix an uncovered problem. Files: src/vim9compile.c, src/testdir/test_expr.vim, src/testdir/vim9.vim Patch 8.2.3857 Problem: Vim9: inconsistent error for using function(). Solution: Use a runtime type check for the result of function(). (closes #8492) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3858 Problem: Vim9: not enough tests. Solution: Add tests for :try/:catch and :redir. Add missing type check. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.3859 Problem: Vim9: some code lines not tested. Solution: Add a few specific tests. Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3860 Problem: Vim9: codecov struggles with the file size. Solution: Split vim9compile.c into four files. Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9expr.c, src/proto/vim9expr.pro, src/vim9cmds.c, src/proto/vim9cmds.pro, src/vim9.h, src/vim9execute.c, src/vim9script.c, src/proto.h, src/Makefile, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms Patch 8.2.3861 Problem: List of distributed files is outdated. Solution: Add new files. Files: Filelist Patch 8.2.3862 Problem: Crash on exit with EXITFREE and using win_execute(). Solution: Also save and restore tp_topframe. (issue #9374) Files: src/evalwindow.c, src/testdir/test_execute_func.vim Patch 8.2.3863 (after 8.2.3860) Problem: Various build flags accidentally enabled. Solution: Revert several lines in Makefile. Files: src/Makefile Patch 8.2.3864 Problem: Cannot disable requesting key codes from xterm. Solution: Add the 'xtermcodes' option, default on. Files: runtime/doc/options.txt, runtime/doc/term.txt, src/option.h, src/optiondefs.h, src/term.c, runtime/optwin.vim Patch 8.2.3865 Problem: Vim9: compiler complains about using "try" as a struct member. Solution: Rename "try" to "tryref". Files: src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/vim9instr.c Patch 8.2.3866 Problem: Vim9: type checking global variables is inconsistent. Solution: Use the "unknown" type in more places. Files: src/globals.h, src/vim9expr.c, src/vim9instr.c, src/vim9cmds.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3867 Problem: Implementation of some list functions too complicated. Solution: Refactor do_sort_uniq(), f_count() and extend() (Yegappan Lakshmanan, closes #9378) Files: src/list.c Patch 8.2.3868 (after 8.2.3866) Problem: Vim9: function test fails. Solution: Add missing changes. Add test for earlier patch. Files: src/vim9type.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3869 Problem: Vim9: type checking for "any" is inconsistent. Solution: Always use a runtime type check for using "any" for a more specific type. Files: src/vim9type.c, src/vim9compile.c, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.3870 Problem: MS-Windows: wrong working directory when opening two files with right-click context menu. (Gabriel Dupras) Solution: Use the working directory and pass it on to the process creation. (Nir Lichtman, closes #9382, closes #8874) Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h Patch 8.2.3871 Problem: List.c contains code for dict and blob. Solution: Refactor to put code where it belongs. (Yegappan Lakshmanan, closes #9386) Files: src/blob.c, src/dict.c, src/list.c, src/proto/blob.pro, src/proto/dict.pro, src/proto/list.pro, src/proto/strings.pro, src/strings.c, src/structs.h, src/testdir/test_filter_map.vim, src/testdir/test_listdict.vim, src/testdir/test_sort.vim Patch 8.2.3872 Problem: Vim9: finddir() and uniq() return types can be more specific. Solution: Adjust the return type. Files: src/evalfunc.c, src/testdir/vim9.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3873 Problem: go.mod files are not recognized. Solution: Check for the file name. (closes #9380) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3874 Problem: Cannot highlight the number column for a sign. Solution: Add the "numhl" argument. (James McCoy, closes #9381) Files: runtime/doc/options.txt, runtime/doc/sign.txt, src/drawline.c, src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h, src/testdir/test_signs.vim Patch 8.2.3875 Problem: gcc complains about buffer overrun. Solution: Use mch_memmove() instead of STRCPY(). (John Marriott) Files: src/dict.c Patch 8.2.3876 Problem: 'cindent' does not recognize inline namespace. Solution: Skip over "inline" to find "namespace". (closes #9383) Files: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3877 Problem: Function does not abort after a type error in compare Solution: Check getting number fails. (closes #9384) Files: src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3878 Problem: Vim9: debugger tries to read more lines than there are. Solution: Check the number of lines. (closes #9394) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3879 Problem: getreg() and getregtype() contain dead code. Solution: Remove the needless check. (closes #9392) Also refactor to put common code in a shared function. Files: src/evalfunc.c Patch 8.2.3880 Problem: Solution filter files are not recognized. Solution: Add pattern *.slnf and use json. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3881 Problem: QNX: crash when compiled with GUI but using terminal. Solution: Check the gui.in_use flag. (Hirohito Higashi, closes #9391) Files: src/main.c Patch 8.2.3882 (after 8.2.3879) Problem: More duplicated code in f_getreginfo(). Solution: Also use getreg_get_regname(). (closes #9398) Files: src/evalfunc.c Patch 8.2.3883 Problem: Crash when switching to other regexp engine fails. Solution: Check for regprog being NULL. Files: src/ex_cmds.c Patch 8.2.3884 Problem: Crash when clearing the argument list while using it. Solution: Lock the argument list for ":all". Files: src/arglist.c, src/testdir/test_arglist.vim Patch 8.2.3885 Problem: Arglist test fails. Solution: Adjust for locking the arglist for ":all". Files: src/testdir/test_arglist.vim Patch 8.2.3886 Problem: Can define autocmd for every event by using "au!". Solution: Check if a command is present also for "au!". Files: src/autocmd.c, src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim Patch 8.2.3887 Problem: E1135 is used for two different errors. Solution: Renumber one error. Files: src/errors.h, src/testdir/test_mapping.vim Patch 8.2.3888 Problem: The argument list may contain duplicates. Solution: Add the :argdedeupe command. (Nir Lichtman, closes #6235) Files: runtime/doc/editing.txt, runtime/doc/index.txt, src/arglist.c, src/ex_cmdidxs.h, src/ex_cmds.h, src/proto/arglist.pro, src/testdir/test_arglist.vim Patch 8.2.3889 Problem: Duplicate code for translating script-local function name. Solution: Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan, closes #9393) Files: src/evalfunc.c, src/evalvars.c, src/option.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_expr.vim, src/testdir/test_normal.vim Patch 8.2.3890 Problem: Vim9: type check for using v: variables is basic. Solution: Specify a more precise type. Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9instr.c, src/testdir/test_vim9_expr.vim Patch 8.2.3891 Problem: Github CI: workflows may overlap. Solution: Cancel previous workflows when starting a new one. (Yegappan Lakshmanan, closes #9400) Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml Patch 8.2.3892 Problem: When modifyOtherKeys is used CTRL-C is not recognized. Solution: Check for uppercase C as well, fix minimum length. Files: src/ui.c Patch 8.2.3893 Problem: Vim9: many local variables are initialized with an instruction. Solution: Initialize local variables to zero to avoid the instructions. Files: src/vim9execute.c, src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3894 Problem: Vim9: no proper type check for first argument of call(). Solution: Add specific type check. Files: src/evalfunc.c, src/typval.c, src/proto/typval.pro, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3895 Problem: Vim9: confusing error when using function() with a number. Solution: Check for a function or string argument. Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3896 Problem: Vim9: no test for nested function not available later. Solution: Add a test. Files: src/testdir/test_vim9_func.vim Patch 8.2.3897 Problem: Vim9: the second argument of map() and filter() is not checked at compile time. Solution: Add more specific type check for the second argument. Files: src/evalfunc.c, src/globals.h, src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.3898 Problem: Vim9: not sufficient testing for variable initialization. Solution: Add another test case. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.3899 (after 8.2.3897) Problem: Vim9: test for map() on string fails. Solution: Expect string return type. Files: src/evalfunc.c Patch 8.2.3900 Problem: It is not easy to use a script-local function for an option. Solution: recognize s: and <SID> at the start of the expression. (Yegappan Lakshmanan, closes #9401) Files: runtime/doc/diff.txt, runtime/doc/fold.txt, runtime/doc/options.txt, runtime/doc/print.txt, src/optionstr.c, src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, src/testdir/test_fold.vim, src/testdir/test_gf.vim, src/testdir/test_gui.vim, src/testdir/test_hardcopy.vim, src/testdir/test_normal.vim Patch 8.2.3901 Problem: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script. Solution: Do not restore 'cpo' at the end of the main .vimrc. Files: runtime/doc/vim9.txt, runtime/doc/options.txt, src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.3902 Problem: Vim9: double free with nested :def function. Solution: Pass "line_to_free" from compile_def_function() and make sure cmdlinep is valid. Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3903 Problem: "gM" does not count tabs as expected. Solution: Use linetabsize() instead of mb_string2cells(). (closes #9409) Files: src/normal.c, src/testdir/test_normal.vim Patch 8.2.3904 Problem: Vim9: skip expression type is not checked at compile time. Solution: Add argument type checks. Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3905 Problem: Dockerfile using prefix name not recognized. Solution: Recognize Dockerfile.*. (closes #9410) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3906 Problem: Vim9 help still contains "under development" warnings. Solution: Remove the explicit warning. Files: runtime/doc/vim9.txt Patch 8.2.3907 Problem: Error messages are spread out. Solution: Move error messages to errors.h. Avoid duplicates. Files: src/userfunc.c, src/ex_cmds.c, src/viminfo.c, src/errors.h, src/testdir/test_user_func.vim Patch 8.2.3908 Problem: Cannot use a script-local function for 'foldtext'. Solution: Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411) Files: runtime/doc/fold.txt, src/optionstr.c, src/strings.c, src/testdir/test_blob.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, src/testdir/test_listdict.vim Patch 8.2.3909 Problem: Containerfile using prefix name not recognized. Solution: Recognize Containerfile.*. Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3910 Problem: When the compare function of sort() produces and error then sort() does not abort. Solution: Check if did_emsg was incremented. Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3911 Problem: Vim9: type check for filter() does not accept unknown. Solution: Also accept unknown for the return type. (closes #9413) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3912 Problem: The ins_complete() function is much too long. Solution: Split it up into multiple functions. (Yegappan Lakshmanan, closes #9414) Files: src/insexpand.c Patch 8.2.3913 Problem: Help for expressions does not mention Vim9 syntax. Solution: Add the rules for Vim9 to the expression help. Rename functions to match the help. Files: runtime/doc/vim9.txt, runtime/doc/eval.txt, src/vim9expr.c Patch 8.2.3914 Problem: Various spelling mistakes in comments. Solution: Fix the mistakes. (Dominique Pellé, closes #9416) Files: src/alloc.c, src/blowfish.c, src/buffer.c, src/cindent.c, src/clipboard.c, src/diff.c, src/drawline.c, src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/findfile.c, src/fold.c, src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c, src/if_python.c, src/if_python3.c, src/if_xcmdsrv.c, src/main.c, src/memline.c, src/menu.c, src/message.c, src/misc1.c, src/move.c, src/option.c, src/os_amiga.c, src/os_mac.h, src/os_mac_conv.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/os_win32.h, src/quickfix.c, src/regexp_nfa.c, src/screen.c, src/scriptfile.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/strings.c, src/term.c, src/terminal.c, src/testdir/test_debugger.vim, src/testdir/test_source.vim, src/textformat.c, src/userfunc.c, src/vim.h, src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/winclip.c, src/window.c Patch 8.2.3915 Problem: illegal memory access when completing with invalid bytes. Solution: Avoid going over the end of the completion text. Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3916 Problem: No error for passing an invalid line number to append(). Solution: In Vim9 script check for a non-negative number. (closes #9417) Files: src/evalbuffer.c, src/textprop.c, src/errors.h, src/indent.c, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3917 Problem: The eval.txt help file is way too big. Solution: Move the builtin function details to a separate file. Files: runtime/doc/eval.txt, runtime/doc/builtin.txt, runtime/doc/Makefile, runtime/doc/help.txt, runtime/doc/remote.txt Patch 8.2.3918 (after 8.2.3916) Problem: Function list test fails. Solution: Adjust the test for the new location of the function list. Files: src/testdir/test_function_lists.vim Patch 8.2.3919 Problem: Vim9: wrong argument for append() results in two errors. Solution: Check did_emsg. Also for setline(). Adjust the help for appendbufline(). Files: runtime/doc/builtin.txt, src/evalbuffer.c, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3920 Problem: Restoring directory after using another window is inefficient. Solution: Only restore the directory for win_execute(). Apply 'autochdir' only when needed. Files: src/evalwindow.c, src/testdir/test_autochdir.vim Patch 8.2.3921 Problem: The way xdiff is used is inefficient. Solution: Use hunk_func instead of the out_line callback. (Lewis Russell, closes #9344) Files: src/diff.c Patch 8.2.3922 Problem: Cannot build with dynamic Ruby 3.1. Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki Kiichi, closes #9420) Files: ci/config.mk.clang-12.sed, ci/config.mk.clang.sed, ci/config.mk.sed, src/Makefile, src/auto/configure, src/config.mk.in, src/configure.ac, src/if_ruby.c, src/vim.h Patch 8.2.3923 Problem: Vim9: double free if a nested function has a line break in the argument list. Solution: Set cmdlinep when freeing the previous line. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3924 Problem: Vim9: no error if something follows :enddef in a nested function. Solution: Give an error. Move common code to a function. Files: src/userfunc.c, src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.3925 Problem: Diff mode confused by NUL bytes. Solution: Handle NUL bytes differently. (Christian Brabandt, closes #9421, closes #9418) Files: src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_bin_01.dump, src/testdir/dumps/Test_diff_bin_02.dump, src/testdir/dumps/Test_diff_bin_03.dump, src/testdir/dumps/Test_diff_bin_04.dump Patch 8.2.3926 (after 8.2.3920) Problem: Build failure without the 'autochdir' option. (John Marriott) Solution: Add #ifdefs. Files: src/evalwindow.c Patch 8.2.3927 Problem: Vim9: double free when using lambda. Solution: Don't free both cmdline and line_to_free. Files: src/userfunc.c Patch 8.2.3928 Problem: Heredoc test fails. Solution: Correct order of function arguments. Files: src/userfunc.c Patch 8.2.3929 Problem: Using uninitialized variable. Solution: Set the option flags to zero for a terminal option. Files: src/option.c Patch 8.2.3930 Problem: getcmdline() argument has a misleading type. Solution: Use the correct type, even though the value is not used. Files: src/ex_getln.c, src/proto/ex_getln.pro, src/ex_docmd.c, src/normal.c, src/register.c, src/userfunc.c Patch 8.2.3931 Problem: Coverity reports a memory leak. Solution: Free memory in case of failure. Files: src/diff.c Patch 8.2.3932 Problem: C line comment not formatted properly. Solution: If a line comment follows after "#if" the next line is not the end of a paragraph. Files: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.3933 Problem: After ":cd" fails ":cd -" is incorrect. Solution: Set the previous directory only after successfully changing directory. (Richard Doty, closes #9419, closes #8983) Files: src/ex_docmd.c, src/testdir/test_cd.vim Patch 8.2.3934 Problem: Repeating line comment is undesired for "O" command. Solution: Do not copy line comment leader for "O". (closes #9426) Files: src/change.c, src/testdir/test_textformat.vim Patch 8.2.3935 Problem: CTRL-U in Insert mode does not fix the indent. Solution: Fix the indent when 'cindent' is set. Files: src/edit.c, src/testdir/test_textformat.vim Patch 8.2.3936 Problem: No proper test for maintaining change mark in diff mode. Solution: Run the test with internal and external diff. (Sean Dewar, closes #9424) Files: src/testdir/test_diffmode.vim Patch 8.2.3937 Problem: Insert mode completion function is too long. Solution: Refactor into multiple functions. (Yegappan Lakshmanan, closes #9423) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3938 Problem: Line comment start is also found in a string. Solution: Skip line comments in a string. Files: src/cindent.c, src/proto/cindent.pro, src/search.c, src/testdir/test_textformat.vim Patch 8.2.3939 Problem: MS-Windows: fnamemodify('', ':p') does not work. Solution: Do not consider an empty string a full path. (Yegappan Lakshmanan, closes #9428, closes #9427) Files: src/os_mswin.c, src/testdir/test_fnamemodify.vim Patch 8.2.3940 Problem: Match highlight disappears when doing incsearch for ":s/pat". Solution: Only use line limit for incsearch highlighting. (closes #9425) Files: src/match.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_with_incsearch_1.dump, src/testdir/dumps/Test_match_with_incsearch_2.dump Patch 8.2.3941 Problem: SIGTSTP is not handled. Solution: Handle SIGTSTP like pressing CTRL-Z. (closes #9422) Files: runtime/doc/autocmd.txt, src/ex_docmd.c, src/os_unix.c, src/proto/ex_docmd.pro, src/testdir/test_signals.vim Patch 8.2.3942 Problem: Coverity reports a possible memory leak. Solution: Free the array if allocation fails. Files: src/insexpand.c Patch 8.2.3943 Problem: Compiler warning from gcc for uninitialized variable. Solution: Initialize variable. (closes #9429) Files: src/diff.c Patch 8.2.3944 Problem: Insert mode completion functions are too long. Solution: Split up into multiple functions. (Yegappan Lakshmanan, closes #9431) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3945 Problem: Vim9: partial variable argument types are wrong, leading to a crash. Solution: When adjusting the argument count also adjust the argument types. (closes #9433) Files: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3946 Problem: When an internal error makes Vim exit the error is not seen. Solution: Add the error to the test output. Files: src/message.c, src/testdir/runtest.vim Patch 8.2.3947 Problem: Unnecessary check for NULL pointer. Solution: Remove the check. (closes #9434) Files: src/ex_docmd.c Patch 8.2.3948 Problem: Vim9: failure with partial with unknown argument count. Solution: Do not copy argument types if there aren't any. Files: src/vim9type.c Patch 8.2.3949 Problem: Using freed memory with /\%V. Solution: Get the line again after getvvcol(). Files: src/regexp.c, src/testdir/test_regexp_latin.vim Patch 8.2.3950 Problem: Going beyond the end of the line with /\%V. Solution: Check for valid column in getvcol(). Files: src/charset.c, src/testdir/test_regexp_latin.vim Patch 8.2.3951 Problem: Vim9: memory leak when text after a nested function. Solution: Free the function if text is found after "enddef". Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3952 Problem: First line not redrawn when adding lines to an empty buffer. Solution: Adjust the argument to appended_lines(). (closes #9439, closes #9438) Files: src/ex_cmds.c, src/testdir/test_excmd.vim Patch 8.2.3953 Problem: Insert completion code is too complicated. Solution: More refactoring. Move function arguments into a struct. (Yegappan Lakshmanan, closes #9437) Files: src/insexpand.c Patch 8.2.3954 Problem: Vim9: no error for shadowing if script var is declared later. Solution: Check argument names when compiling a function. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3955 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/globals.h, src/debugger.c, src/ex_cmds.c, src/help.c, src/sign.c, src/spellfile.c Patch 8.2.3956 Problem: Duplicate assignment. Solution: Remove the second assignment. (closes #9442) Files: src/evalfunc.c Patch 8.2.3957 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c, src/vim9cmds.c, src/vim9compile.c Patch 8.2.3958 Problem: Build failure compiling xxd with "-std=c2x". Solution: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes #9444) Files: src/xxd/xxd.c Patch 8.2.3959 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/autocmd.c, src/bufwrite.c, src/evalvars.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, src/getchar.c, src/gui.c, src/locale.c, src/map.c Patch 8.2.3960 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/alloc.c, src/arglist.c, src/autocmd.c, src/blob.c, src/blowfish.c, src/buffer.c, src/bufwrite.c Patch 8.2.3961 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c, src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui_gtk_x11.c, src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/highlight.c, src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c, src/map.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c, src/message.c, src/misc2.c, src/ops.c, src/option.c, src/optionstr.c, src/popupwin.c, src/quickfix.c, src/screen.c, src/scriptfile.c, src/search.c, src/sign.c, src/spell.c, src/spellfile.c, src/strings.c, src/syntax.c, src/terminal.c, src/testing.c, src/textprop.c, src/time.c, src/userfunc.c, src/vim9cmds.c, src/vim9execute.c, src/vim9script.c, src/window.c Patch 8.2.3962 (after 8.2.3961) Problem: Build fails for missing error message. Solution: Add changes in missed file. Files: src/regexp_bt.c Patch 8.2.3963 Problem: Build failure with tiny and small features. (Tony Mechelynck) Solution: Adjust #ifdefs. Files: src/errors.h, src/message.c Patch 8.2.3964 Problem: Some common lisp and scheme files not recognized. Solution: Recognize *.asd as lisp and *.sld as scheme. (Alex Vear, closes #9447) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3965 Problem: Vim9: no easy way to check if Vim9 script is supported. Solution: Add has('vim9script'). Files: runtime/doc/vim9.txt, src/evalfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3966 Problem: When using feedkeys() abbreviations may be blocked. Solution: Reset tb_no_abbr_cnt when running out of characters. (closes #9448) Files: src/getchar.c, src/testdir/test_feedkeys.vim Patch 8.2.3967 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/globals.h, src/feature.h, src/arglist.c, src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/diff.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/getchar.c, src/gui_gtk_x11.c, src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/if_xcmdsrv.c, src/indent.c, src/insexpand.c, src/job.c, src/list.c, src/main.c, src/map.c, src/match.c, src/mbyte.c, src/message.c, src/misc1.c, src/option.c, src/optionstr.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/popupwin.c, src/profiler.c, src/quickfix.c, src/scriptfile.c, src/search.c, src/session.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, src/testing.c, src/textprop.c, src/typval.c, src/userfunc.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/vim9script.c Patch 8.2.3968 Problem: Build failure. Solution: Add missing changes. Files: src/strings.c, src/vim9compile.c Patch 8.2.3969 Problem: Value of MAXCOL not available in Vim script. Solution: Add v:maxcol. (Naohiro Ono, closes #9451) Files: runtime/doc/builtin.txt, runtime/doc/eval.txt, src/evalvars.c, src/testdir/test_cursor_func.vim, src/testdir/test_normal.vim, src/testdir/test_put.vim, src/vim.h Patch 8.2.3970 Problem: Error messages are spread out. Solution: Move more errors to errors.h. Files: src/errors.h, src/globals.h, src/buffer.c, src/bufwrite.c, src/clientserver.c, src/cmdhist.c, src/dict.c, src/edit.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/gui_w32.c, src/gui_x11.c, src/if_xcmdsrv.c, src/insexpand.c, src/json.c, src/match.c, src/menu.c, src/option.c, src/optionstr.c, src/os_mswin.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c, src/scriptfile.c, src/sign.c, src/spellfile.c, src/undo.c, src/userfunc.c, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c, src/vim9expr.c, src/window.c Patch 8.2.3971 Problem: Build fails. Solution: Use the right error message name. Files: src/typval.c Patch 8.2.3972 Problem: Error messages are spread out. Solution: Move the last errors from globals.h to errors.h. Files: src/errors.h, src/globals.h, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_eval.c, src/list.c, src/match.c, src/menu.c, src/popupmenu.c, src/search.c, src/vim9cmds.c, src/vim9expr.c Patch 8.2.3973 Problem: Tiny build fails. Solution: Adjust #ifdefs Files: src/errors.h Patch 8.2.3974 Problem: Vim9: LISTAPPEND instruction does not check for a locked list. Solution: Check whether the list is locked. (closes #9452) Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3975 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/clientserver.c, src/fileio.c, src/gui.c, src/gui_beval.c, src/gui_w32.c, src/gui_x11.c, src/if_cscope.c, src/if_xcmdsrv.c, src/os_mswin.c, src/sign.c, src/viminfo.c, src/window.c Patch 8.2.3976 Problem: FEARG_LAST is never used. (Dominique Pellé) Solution: Remove FEARG_LAST and the related code. Files: src/evalfunc.c Patch 8.2.3977 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/change.c, src/clientserver.c, src/eval.c, src/gui_xim.c, src/if_cscope.c, src/if_py_both.h, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/main.c, src/mark.c, src/match.c, src/memfile.c, src/memline.c, src/terminal.c, src/textprop.c, src/userfunc.c Patch 8.2.3978 Problem: Build error when using dynamically loaded Python 3. Solution: Adjust #ifdef. Files: src/errors.h Patch 8.2.3979 Problem: Vim9: the feature is not mentioned in the right places. Solution: Add +vim9script to the help and :version output. Files: runtime/doc/builtin.txt, runtime/doc/various.txt, src/version.c Patch 8.2.3980 Problem: If 'operatorfunc' invokes an operator the remembered Visual mode may be changed. (Naohiro Ono) Solution: Save and restore the information for redoing the Visual area. (closes #9455) Files: src/ops.c, src/testdir/test_normal.vim Patch 8.2.3981 Problem: Vim9: debugging a for loop doesn't stop before it starts. Solution: Keep the DEBUG instruction before the expression is evaluated. (closes #9456) Files: src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3982 Problem: Some lines of code not covered by tests. Solution: Add a few more test cases. (Dominique Pellé, closes #9453) Files: src/testdir/test_filter_map.vim, src/testdir/test_highlight.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3983 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/findfile.c, src/hardcopy.c, src/memfile.c, src/memline.c, src/menu.c, src/normal.c, src/regexp_bt.c Patch 8.2.3984 (after 8.2.3981) Problem: Debugger test fails. Solution: Adjust the test for modified debugging of a for loop. Files: src/testdir/test_debugger.vim Patch 8.2.3985 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/findfile.c, src/fold.c, src/hardcopy.c, src/highlight.c, src/map.c, src/message.c, src/normal.c, src/option.c, src/os_amiga.c, src/os_unix.c, src/os_win32.c, src/quickfix.c, src/regexp.c, src/register.c, src/search.c, src/syntax.c, src/tag.c, src/term.c, src/typval.c, src/undo.c, src/window.c Patch 8.2.3986 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/fold.c, src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_cscope.c, src/json.c, src/map.c, src/netbeans.c, src/popupwin.c, src/usercmd.c, src/userfunc.c Patch 8.2.3987 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/digraph.c, src/ex_eval.c, src/gui.c, src/hardcopy.c, src/if_cscope.c, src/if_tcl.c, src/if_xcmdsrv.c, src/mbyte.c, src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c, src/quickfix.c, src/regexp.c, src/tag.c, src/term.c, src/viminfo.c Patch 8.2.3988 (after 8.2.3987) Problem: Tiny build fails. Solution: Fix misplaced #ifdef. Files: src/errors.h Patch 8.2.3989 Problem: Some insert completion code is not tested. Solution: Add a few tests. Refactor thesaurus completion. (Yegappan Lakshmanan, closes #9460) Files: src/insexpand.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim Patch 8.2.3990 Problem: Testing wrong operator. Solution: Test "g@" instead of "r_". (Naohiro Ono, closes #9463) Files: src/testdir/test_normal.vim Patch 8.2.3991 Problem: Vim9: error when extending dict<any> with another type that it was initialized with. Solution: Also set the type for dict<any> if the initializer has a more specific type. (closes #9461) Files: src/vim9compile.c, src/vim9type.c, src/vim9.h, src/eval.c, src/list.c, src/vim9script.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim Patch 8.2.3992 Problem: Wrong local-additions in the help with language mix. Solution: Adjust how the local additions list is generated. (Hirohito Higashi, closes #9464) Files: src/help.c, src/testdir/test_help.vim Patch 8.2.3993 Problem: When recording a change in Select mode the first typed character appears twice. Solution: When putting the character back into typeahead remove it from recorded characters. (closes #9462) Files: src/getchar.c, src/proto/getchar.pro, src/normal.c, src/testdir/test_registers.vim Patch 8.2.3994 Problem: Vim9: extend() complains about the type even when it was not declared. Solution: Only check the list or dict type when it was declared. Files: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3995 Problem: Not all sshconfig files are detected as such. Solution: Adjust the patterns used for sshconfig detection. (David Auer, closes #9322) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3996 Problem: Vim9: type checking for list and dict lacks information about declared type. Solution: Add dv_decl_type and lv_decl_type. Refactor the type stack to store two types in each entry. Files: src/structs.h, src/dict.c, src/list.c, src/vim9type.c, src/proto/vim9type.pro, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/evalbuffer.c, src/proto/evalbuffer.pro, src/vim9expr.c, src/vim9cmds.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3997 Problem: Vim9: not enough testing for extend() and map(). Solution: Add more test cases. Fix uncovered problems. Remove unused type fields. Files: src/structs.h, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3998 Problem: Asan error for adding zero to NULL. Solution: Do not compute pointer if there are no entries. Files: src/vim9type.c Patch 8.2.3999 Problem: Redundant check for NUL byte. Solution: Remove the check for a NUL byte. (closes #9471) Files: src/ex_docmd.c Patch 8.2.4000 Problem: Coverity warns for checking for NULL pointer after using it. Solution: Remove check for NULL. Files: src/help.c Patch 8.2.4001 Problem: Insert complete code uses global variables. Solution: Make variables local to the file and use accessor functions. (Yegappan Lakshmanan, closes #9470) Files: src/edit.c, src/getchar.c, src/globals.h, src/insexpand.c, src/proto/insexpand.pro, src/search.c Patch 8.2.4002 Problem: First char typed in Select mode can be wrong. Solution: Escape special bytes in the input buffer. (closes #9469) Files: src/getchar.c, src/testdir/test_utf8.vim Patch 8.2.4003 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/channel.c, src/ex_docmd.c, src/ex_eval.c, src/gui_at_fs.c, src/hardcopy.c, src/if_cscope.c, src/menu.c, src/netbeans.c, src/optionstr.c, src/os_mswin.c, src/sign.c, src/typval.c Patch 8.2.4004 Problem: Old compiler complains about struct init with variable. Solution: Set the struct member later. (John Marriott) Files: src/evalfunc.c Patch 8.2.4005 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/dict.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/gui.c, src/gui_w32.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_python.c, src/list.c, src/misc1.c, src/normal.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/typval.c, src/userfunc.c Patch 8.2.4006 Problem: Vim9: crash when declaring variable on the command line. Solution: Use a temporary type list. (closes #9474) Files: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.4007 Problem: Session does not restore help buffer properly when "options' is missing from 'sessionoptions'. Solution: Use a ":help" command to create the help window. (closes #9475, closes #9458, closes #9472) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4008 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/diff.c, src/digraph.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/match.c, src/memline.c, src/menu.c, src/ops.c, src/profiler.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/spell.c, src/spell.h, src/spellfile.c, src/strings.c, src/syntax.c, src/typval.c, src/undo.c, src/userfunc.c Patch 8.2.4009 Problem: Reading one byte beyond the end of the line. Solution: Check for NUL byte first. Files: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.4010 Problem: Error messages are spread out. Solution: Move more error messages to errors.h. Files: src/errors.h, src/crypt.c, src/diff.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/findfile.c, src/float.c, src/gui.c, src/highlight.c, src/if_mzsch.c, src/if_py_both.h, src/if_python.c, src/if_python3.c, src/insexpand.c, src/match.c, src/memline.c, src/option.c, src/popupwin.c, src/regexp.c, src/regexp_nfa.c, src/spellfile.c, src/strings.c, src/syntax.c, src/textprop.c, src/typval.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/window.c Patch 8.2.4011 Problem: Test fails because of changed error number. Solution: Restore old duplicate error message. Files: src/errors.h, src/match.c Patch 8.2.4012 Problem: Error messages are spread out. Solution: Move the last error messages to errors.h. Files: src/errors.h, src/channel.c, src/clientserver.c, src/diff.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/gui_w32.c, src/help.c, src/if_mzsch.c, src/if_py_both.h, src/if_python.c, src/job.c, src/json.c, src/list.c, src/option.c, src/optionstr.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c, src/register.c, src/scriptfile.c, src/sign.c, src/syntax.c, src/tag.c, src/terminal.c, src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/viminfo.c Patch 8.2.4013 Problem: Build failure without the spell feature. Solution: Adjust #ifdefs. Files: src/errors.h Patch 8.2.4014 Problem: Git and gitcommit file types not properly recognized. Solution: Adjust filetype detection. (Tim Pope, closes #9477) Files: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.4015 Problem: Build failure with tiny features. (Tony Mechelynck) Solution: Adjust #ifdefs. Files: src/errors.h Patch 8.2.4016 Problem: Vim9: incorrect error for argument that is shadowing var. Solution: Ignore variable that is not in block where the function was defined. Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4017 Problem: Gcc warns for misleading indent in Athena menu code. Solution: Add curlies around the two statements. (Dominique Pellé, closes #9480) Files: src/gui_athena.c Patch 8.2.4018 Problem: ml_get error when win_execute redraws with Visual selection. Solution: Disable Visual area temporarily. (closes #9479) Files: src/evalwindow.c, src/proto/evalwindow.pro, src/structs.h, src/evalbuffer.c, src/proto/evalbuffer.pro, src/evalvars.c, src/if_py_both.h, src/evalfunc.c, src/testdir/test_execute_func.vim Patch 8.2.4019 Problem: Vim9: import mechanism is too complicated. Solution: Do not use the Javascript mechanism but a much simpler one. Files: runtime/doc/vim9.txt, src/vim9script.c, src/proto/vim9script.pro, src/errors.h, src/structs.h, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, src/vim9expr.c, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.4020 (after 8.2.4019) Problem: Debugger test fails. Solution: Fix import statement. Files: src/testdir/test_debugger.vim Patch 8.2.4021 (after 8.2.4019) Problem: Missing part of the :import changes. Solution: Add changes in vim9cmds.c. Files: src/vim9cmds.c Patch 8.2.4022 Problem: Two error messages in the wrong file. Solution: Use the error message from errors.h. Files: src/popupwin.c, src/usercmd.c Patch 8.2.4023 Problem: Using uninitialized variable. Solution: Initialize "ufunc" also when an item is not exported. Files: src/vim9script.c Patch 8.2.4024 Problem: Confusing error message if imported name is used directly. Solution: Give a better error message. Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.4025 Problem: Error for import not ending in .vim does not work for .vimrc. Solution: Check that .vim is the end. (closes #9484) Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.4026 Problem: ml_get error with specific win_execute() command. (Sean Dewar) Solution: Check cursor and Visual area are OK. Files: src/evalwindow.c, src/testdir/test_execute_func.vim Patch 8.2.4027 Problem: Import test fails on MS-Windows. Solution: Use a different directory name. Files: src/testdir/test_vim9_script.vim Patch 8.2.4028 Problem: ml_get error with :doautoall and Visual area. (Sean Dewar) Solution: Disable Visual mode while executing autocommands. Files: src/structs.h, src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.4029 Problem: Debugging NFA regexp my crash, cached indent may be wrong. Solution: Fix some debug warnings in the NFA regexp code. Make sure log_fd is set when used. Fix breakindent and indent caching. (Christian Brabandt, closes #9482) Files: src/indent.c, src/optionstr.c, src/regexp_nfa.c Patch 8.2.4030 Problem: A script local funcref is not found from a mapping. Solution: When looking for a function, also find a script-local funcref. (closes #9485) Files: src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.4031 Problem: Crash in xterm with only two lines. (Dominique Pellé) Solution: Only perform xterm compatibility test if possible. (closes #9488) Files: src/term.c, src/testdir/test_startup.vim Patch 8.2.4032 Problem: ATTRIBUTE_NORETURN is not needed. Solution: Use NORETURN(). (Ozaki Kiichi, closes #9487) Files: src/if_ruby.c, src/vim.h Patch 8.2.4033 Problem: Running filetype tests leaves directory behind. Solution: Delete the top directory. (closes #9483) Files: src/testdir/test_filetype.vim Patch 8.2.4034 Problem: Coverity warns for possibly using a NULL pointer. Solution: Check v_partial is not NULL. Files: src/vim9type.c Patch 8.2.4035 Problem: Timer triggered at the debug prompt may cause trouble. Solution: Do not trigger any timer at the debug prompt. (closes #9481) Files: src/time.c Patch 8.2.4036 Problem: Vim9: script test file is getting too long. Solution: Split the import/export functionality to a separate file. Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim, src/testdir/Make_all.mak Patch 8.2.4037 Problem: Insert mode completion is insufficiently tested. Solution: Add more tests. Fix uncovered memory leak. (Yegappan Lakshmanan, closes #9489) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.4038 Problem: Various code not used when features are disabled. Solution: Add #ifdefs. (Dominique Pellé, closes #9491) Files: src/alloc.c, src/buffer.c, src/charset.c, src/clipboard.c, src/cmdhist.c, src/crypt.c, src/edit.c, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h, src/gui_xim.c, src/hashtab.c, src/highlight.c, src/insexpand.c, src/main.c, src/mark.c, src/message.c, src/misc1.c, src/misc2.c, src/ops.c, src/option.c, src/option.h, src/optionstr.c, src/register.c, src/scriptfile.c, src/tag.c, src/term.c, src/typval.c, src/usercmd.c, src/userfunc.c, src/vim9script.c, src/vim9type.c Patch 8.2.4039 Problem: The xdiff library is linked in even when not used. Solution: Use configure to decide whether xdiff object files are included. Files: src/Makefile, src/config.mk.in, src/configure.ac, src/auto/configure, src/feature.h Patch 8.2.4040 Problem: Keeping track of allocated lines in user functions is too complicated. Solution: Instead of freeing individual lines keep them all until the end. Files: src/alloc.c, src/proto/alloc.pro, src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/message.c, src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim Patch 8.2.4041 Problem: Using uninitialized pointer. Solution: Store "ht" when variable is in another script. Files: src/evalvars.c Patch 8.2.4042 Problem: Vim9: build error. Solution: Use grow array instead of character pointer. Files: src/vim9execute.c Patch 8.2.4043 Problem: Using int for second argument of ga_init2(). Solution: Remove unnecessary type cast (int) when using sizeof(). Files: src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/findfile.c, src/fold.c, src/hardcopy.c, src/help.c, src/job.c, src/list.c, src/menu.c, src/os_win32.c, src/register.c, src/scriptfile.c, src/spellfile.c, src/spellsuggest.c, src/strings.c, src/syntax.c, src/tag.c, src/terminal.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9execute.c, src/viminfo.c, src/window.c, src/if_py_both.h Patch 8.2.4044 Problem: Vim9: no error when importing the same script twice. Solution: Give an error, unless it is a reload. Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4045 Problem: Some global functions are only used in one file. Solution: Make the functions static. (Yegappan Lakshmanan, closes #9492) Files: src/ex_getln.c, src/highlight.c, src/proto/ex_getln.pro, src/proto/highlight.pro, src/proto/vim9compile.pro, src/proto/vim9instr.pro, src/proto/window.pro, src/vim9compile.c, src/vim9instr.c, src/window.c Patch 8.2.4046 Problem: Some error messages not in the right place. Solution: Adjust the errors file. Fix typo. Files: src/errors.h, src/regexp_bt.c, src/typval.c, Patch 8.2.4047 Problem: Depending on the build features error messages are unused. Solution: Add #ifdefs. (Dominique Pellé, closes #9493) Files: src/errors.h Patch 8.2.4048 Problem: gcc complains about use of "%p" in printf. Solution: Add (void *) typecast. (Dominique Pellé, closes #9494) Files: src/if_py_both.h Patch 8.2.4049 Problem: Vim9: reading before the start of the line with "$" by itself. Solution: Do not subtract one when reporting the error. Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4050 Problem: Vim9: need to prefix every item in an autoload script. Solution: First step in supporting "vim9script autoload" and "import autoload". Files: runtime/doc/repeat.txt, runtime/doc/vim9.txt, src/structs.h, src/errors.h, src/vim9script.c, src/scriptfile.c, src/proto/scriptfile.pro, src/userfunc.c, src/eval.c, src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/testdir/test_vim9_script.vim Patch 8.2.4051 Problem: Compiler complains about possibly uninitialized variable. Solution: Add code to avoid a compiler warning. (John Marriott) Files: src/scriptfile.c Patch 8.2.4052 Problem: Not easy to resize a window from a plugin. Solution: Add win_move_separator() and win_move_statusline() functions. (Daniel Steinberg, closes #9486) Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/evalwindow.c, src/proto/evalwindow.pro, src/testdir/test_window_cmd.vim Patch 8.2.4053 Problem: Vim9: autoload mechanism doesn't fully work yet. Solution: Define functions and variables with their autoload name, add the prefix when calling a function, find the variable in the table of script variables. Files: src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.4054 (after 8.2.4053) Problem: Vim9 script test fails. Solution: Add missing change. Files: src/vim9compile.c Patch 8.2.4055 Problem: Vim9: line break in expression causes v:errmsg to be filled. (Yegappan Lakshmanan) Solution: Do not give an error when skipping over an expression. Files: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.4056 Problem: Vim9: memory leak when exporting function in autoload script. Solution: Free the name if replacing it. Files: src/scriptfile.c Patch 8.2.4057 Problem: Vim9: not fully implementing the autoload mechanism. Solution: Allow for exporting a legacy function. Improve test coverage. Files: src/vim9script.c, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4058 Problem: Vim9: import test failure in wrong line. Solution: Adjust line number. Files: src/testdir/test_vim9_import.vim Patch 8.2.4059 Problem: Vim9: an expression of a map cannot access script-local items. (Maxim Kim) Solution: Use the script ID of where the map was defined. Files: src/getchar.c, src/map.c, src/proto/map.pro, src/testdir/test_vim9_import.vim Patch 8.2.4060 Problem: win_execute() is slow on systems where getcwd() or chdir() is slow. (Rick Howe) Solution: Avoid using getcwd() and chdir() if no local directory is used and 'acd' is not set. (closes #9504) Files: src/evalwindow.c Patch 8.2.4061 Problem: Codecov bash script is deprecated. Solution: Use the codecov action. (Ozaki Kiichi, closes #9505) Files: .github/workflows/ci.yml Patch 8.2.4062 Problem: Match highlighting of tab too short. Solution: Do not stop match highlighting if on a Tab. (Christian Brabandt, closes #9507, closes #9500) Files: src/drawline.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_tab_linebreak.dump Patch 8.2.4063 Problem: Vim9: exported function in autoload script not found. (Yegappan Lakshmanan) Solution: Use the autoload prefix to search for the function. Files: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4064 Problem: Foam files are not detected. Solution: Detect the foam filetype by the path and file contents. (Mohammed Elwardi Fadeli, closes #9501) Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4065 Problem: Computation overflow with large count for :yank. Solution: Avoid an overflow. Files: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.4066 Problem: Vim9: imported autoload script loaded again. Solution: Do not create a new imported_T every time. Files: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_import.vim Patch 8.2.4067 Problem: Vim9: cannot call imported function with :call. (Drew Vogel) Solution: Translate the function name. (closes #9510) Files: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4068 (after 8.2.4066) Problem: Vim9: import test fails. Solution: Add missing change. Files: src/scriptfile.c Patch 8.2.4069 Problem: Vim9: import test fails on MS-Windows. Solution: Ignore case. Adjust test to avoid name that only differs in case. Files: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4070 Problem: Using uninitialized memory when reading empty file. Solution: Check for empty file before checking for NL. (Dominique Pellé, closes #9511) Files: src/filepath.c, src/testdir/test_eval_stuff.vim Patch 8.2.4071 Problem: Vim9: no detection of return in try/endtry. (Dominique Pellé) Solution: Check if any of the blocks inside try/endtry did not end in return. Files: src/vim9.h, src/vim9compile.c, src/vim9cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.4072 Problem: Vim9: compiling function fails when autoload script is not loaded yet. Solution: Depend on runtime loading. Files: src/vim9expr.c, src/vim9script.c, src/vim9instr.c, src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4073 Problem: Coverity warns for using NULL pointer. Solution: Bail out when running out of memory. Check for running over end of a string. Files: src/userfunc.c, Patch 8.2.4074 Problem: Going over the end of NameBuff. Solution: Check length when appending a space. Files: src/drawscreen.c, src/testdir/test_edit.vim Patch 8.2.4075 (after 8.2.4073) Problem: Test failures. Solution: Change check for NULL pointer. Files: src/userfunc.c Patch 8.2.4076 Problem: Memory leak in autoload import. Solution: Do not overwrite the autoload prefix. Files: src/vim9script.c Patch 8.2.4077 Problem: Not all Libsensors files are recognized. Solution: Add "sensors.d/*" pattern. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4078 Problem: Terminal test for current directory not used on FreeBSD. Solution: Make it work on FreeBSD. (Ozaki Kiichi, closes #9516) Add TermWait() inside Run_shell_in_terminal() as a generic solution. Files: src/testdir/test_terminal3.vim, src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_mapping.vim Patch 8.2.4079 Problem: MS-Windows: "gvim --version" didn't work when build with VIMDLL. Solution: Adjust #ifdef. (Ken Takata, closes #9517) Files: src/main.c Patch 8.2.4080 Problem: Not sufficient test coverage for xxd. Solution: Add a few more test cases. (Erki Auerswald, closes #9515) Files: src/testdir/test_xxd.vim Patch 8.2.4081 Problem: CodeQL reports problem in if_cscope causing it to fail. Solution: Use execvp() instead of execl(). Merge the header file into the source file. (Ozaki Kiichi, closes #9519) Files: Filelist, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/if_cscope.c, src/if_cscope.h, src/testdir/test_cscope.vim Patch 8.2.4082 Problem: Check for autoload file name and prefix fails. (Christian J. Robinson) Solution: Only lower case the prefix on systems where the file name is not case sensitive. Files: src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4083 Problem: Vim9: no test for "vim9script autoload" and using script variable in the same script. Solution: Add a simple test. Fix uncovered problem. Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4084 Problem: Memory leak when looking for autoload prefixed variable. Solution: Free the concatenated string. Files: src/evalvars.c Patch 8.2.4085 Problem: Vim9: no test for using import in legacy script. Solution: Add a test. Files: src/testdir/test_vim9_import.vim Patch 8.2.4086 Problem: "cctx" argument of find_func_even_dead() is unused. Solution: Remove the argument. Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/vim9instr.c, src/evalfunc.c, src/evalvars.c, src/testing.c, src/vim9execute.c, src/vim9expr.c, src/vim9script.c, src/vim9type.c Patch 8.2.4087 Problem: Cannot test items from an autoload script easily. Solution: Add the "autoload" value for test_override(). Files: runtime/doc/testing.txt, src/testing.c, src/globals.h, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4088 Problem: Xxd cannot output everything in one line. Solution: Make zero columns mean infinite columns. (Erik Auerswald, closes #9524) Files: runtime/doc/xxd.1, runtime/doc/xxd.man, src/testdir/test_xxd.vim, src/xxd/xxd.c Patch 8.2.4089 (after 8.2.4078) Problem: Terminal test for current directory fails on FreeBSD. Solution: Skip the test. Files: src/testdir/test_terminal3.vim Patch 8.2.4090 Problem: After restoring a session buffer order can be quite different. Solution: Create buffers first. (Evgeni Chasnovski, closes #9520) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4091 Problem: Virtcol is recomputed for statusline unnecessarily. Solution: Just use "w_virtcol". (closes #9523) Files: src/buffer.c, src/testdir/test_statusline.vim Patch 8.2.4092 Problem: macOS CI: unnecessarily doing "Install packages". Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, closes #9521) Files: .github/workflows/ci.yml Patch 8.2.4093 Problem: Cached breakindent values not initialized properly. Solution: Initialize and cache formatlistpat. (Christian Brabandt, closes #9526, closes #9512) Files: runtime/doc/options.txt, src/indent.c, src/option.c, src/proto/option.pro, src/testdir/test_breakindent.vim Patch 8.2.4094 Problem: 'virtualedit' is window-local but using buffer-local enum. Solution: Use window-local enum. (closes #9529) Files: src/option.h, src/optiondefs.h Patch 8.2.4095 Problem: Sed script not recognized by the first line. Solution: Recognize a sed script starting with "#n". (Doug Kearns) Files: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.4096 Problem: Linux CI: unnecessarily installing packages Solution: Only install packages for huge build. (Ozaki Kiichi, closes #9530) Files: .github/workflows/ci.yml Patch 8.2.4097 Problem: Wrong number in error message on 32 bit system. (John Paul Adrian Glaubitz) Solution: Add type cast. (closes #9527) Files: src/vim9compile.c Patch 8.2.4098 Problem: Typing "interrupt" at debug prompt may keep exception around, causing function calls to fail. Solution: Discard any exception at the toplevel. (closes #9532) Files: src/main.c Patch 8.2.4099 Problem: Vim9: cannot use Vim9 syntax in mapping. Solution: Add <ScriptCmd> to use the script context for a command. Files: runtime/doc/map.txt, src/normal.c, src/getchar.c, src/proto/getchar.pro, src/ex_getln.c, src/edit.c, src/terminal.c, src/keymap.h, src/insexpand.c, src/misc2.c, src/ops.c, src/testdir/test_vim9_import.vim Patch 8.2.4100 Problem: Early return when getting the 'formatlistpat' value. Solution: Remove the first line. (Christian Brabandt) Files: src/option.c, src/testdir/test_breakindent.vim Patch 8.2.4101 Problem: Warning for unused argument in tiny version. Solution: Add "UNUSED". Files: src/getchar.c Patch 8.2.4102 Problem: Vim9: import cannot be used after method. Solution: Recognize an imported function name. (closes #9496) Files: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4103 Problem: Vim9: variable declared in for loop not initialized. Solution: Always initialize the variable. (closes #9535) Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4104 Problem: Vim9: lower casing the autoload prefix causes problems. Solution: Always store the prefix with case preserved. Files: src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4105 Problem: Translation related comment in the wrong place. Solution: Move it back with the text. (Ken Takata, closes #9537) Files: src/errors.h, src/ex_docmd.c Patch 8.2.4106 Problem: Going over the end of the w_lines array. Solution: Break out of the loop when "idx" is too big. (issue #9540) Files: src/drawscreen.c Patch 8.2.4107 Problem: Script context not restored after using <ScriptCmd>. Solution: Also restore context when not in a script. (closes #9536) Add the 'c' flag to feedkeys() to be able to test this. Files: runtime/doc/builtin.txt, src/getchar.c, src/evalfunc.c, src/testdir/test_mapping.vim Patch 8.2.4108 Problem: Going over the end of the w_lines array. Solution: Check not going over the end and limit to Rows. (issue #9540) Files: src/drawscreen.c Patch 8.2.4109 Problem: MS-Windows: high dpi support is outdated. Solution: Improve High DPI support by using PerMonitorV2. (Ken Takata closes #9525, closes #3102) Files: src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest Patch 8.2.4110 Problem: Coverity warns for using NULL pointer. Solution: Check "evalarg" is not NULL. Skip errors when "verbose" is false. Files: src/eval.c Patch 8.2.4111 Problem: Potential problem when map is deleted while executing. Solution: Reset last used map pointer when deleting a mapping. Files: src/map.c Patch 8.2.4112 Problem: Function not deleted at end of test. Solution: Delete the function. Files: src/testdir/test_diffmode.vim Patch 8.2.4113 Problem: Typo on DOCMD_RANGEOK results in not recognizing command. Solution: Correct the typo. (closes #9539) Files: src/vim.h, src/testdir/test_mapping.vim Patch 8.2.4114 Problem: Vim9: type checking for a funcref does not work for when it is used in a method. Solution: Pass the base to where the type is checked. Files: src/vim9type.c, src/proto/vim9type.pro, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.4115 Problem: Cannot use a method with a complex expression. Solution: Evaluate the expression after "->" and use the result. Files: src/eval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.4116 Problem: Vim9: cannot use a method with a complex expression in a :def function. Solution: Implement compiling the expression. Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4117 Problem: Vim9: wrong white space error after using imported item. Solution: Don't skip over white space. (closes #9544) Files: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4118 Problem: Using UNUSED for argument that is used. Solution: Remove UNUSED. Files: src/usercmd.c Patch 8.2.4119 Problem: Build failure when disabling the channel feature. Solution: Adjust #ifdef. (Dominique Pellé, closes #9545) Files: src/misc2.c Patch 8.2.4120 Problem: Block insert goes over the end of the line. Solution: Handle invalid byte better. Fix inserting the wrong text. Files: src/ops.c, src/testdir/test_visual.vim Patch 8.2.4121 Problem: Visual test fails on MS-Windows. Solution: Set 'isprint' so that the character used is not printable. Files: src/testdir/test_visual.vim Patch 8.2.4122 Problem: ":command Cmd" does not show custom completion argument. Solution: Show the completion argument when using ":verbose". Files: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.4123 Problem: Complete function cannot be import.Name. Solution: Dereference the function name if needed. Also: do not see "import.Name" as a builtin function. (closes #9541) Files: src/userfunc.c, src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4124 Problem: Vim9: method in compiled function may not see script item. Solution: Make sure not to skip to the next line. (closes #9496) Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4125 Problem: Completion tests fail. Solution: Disable error messages while dereferencing the function name. Files: src/eval.c Patch 8.2.4126 Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) Solution: Only call Tcl_Finalize() when initialized. (closes #9546) Files: src/if_tcl.c Patch 8.2.4127 Problem: Build failure without the +eval feature. Solution: Add #ifdef. Files: src/usercmd.c Patch 8.2.4128 Problem: Crash when method cannot be found. (Christian J. Robinson) Solution: Don't mix up pointer names. Files: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.4129 Problem: Building with +sound but without +eval fails. (Dominique Pellé) Solution: Disable canberra in tiny and small build. (closes #9548) Files: src/configure.ac, src/auto/configure Patch 8.2.4130 Problem: MS-Windows: MSVC build may have libraries duplicated. Solution: Improve the MSVC Makefile. (Ken Takata, closes #9547) Files: src/Make_mvc.mak Patch 8.2.4131 Problem: Vim9: calling function in autoload import does not work in a :def function. Solution: When a variable is not found and a PCALL follows use a funcref. (closes #9550) Files: src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4132 Problem: Vim9: wrong error message when autoload script can't be found. Solution: Correct check for using autoload with wrong name. Files: src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4133 Problem: output of ":scriptnames" goes into the message history, while this does not happen for other commands, such as ":ls". Solution: Use msg_outtrans() instead of smsg(). (closes #9551) Files: src/scriptfile.c, src/testdir/test_scriptnames.vim Patch 8.2.4134 Problem: MS-Windows: test for import with absolute path fails. Solution: Handle path starting with slash as an absolute path. Files: src/vim9script.c Patch 8.2.4135 Problem: Vim9: ":scriptnames" shows unloaded imported autoload script. Solution: Mark the unloaded script with "A". (closes #9552) Files: runtime/doc/repeat.txt, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4136 Problem: Vim9: the "autoload" argument of ":vim9script" is not useful. Solution: Remove the argument. (closes #9555) Files: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4137 Problem: Vim9: calling import with and without method is inconsistent. Solution: Set a flag that a parenthesis follows to compile_load_scriptvar(). Add some more tests. Improve error message. Files: src/vim9expr.c, src/vim9execute.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4138 Problem: Vim9: no error for return with argument when the function does not return anything. Solution: Give an error for the invalid argument. (issue #9497) Files: src/vim9cmds.c, src/testdir/test_vim9_func.vim Patch 8.2.4139 Problem: Using freed memory if an expression abbreviation deletes the abbreviation. Solution: Do not access the pointer after evaluating the expression. Files: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4140 Problem: maparg() does not indicate the type of script where it was defined. Solution: Add "scriptversion". Files: runtime/doc/builtin.txt, src/map.c, src/testdir/test_maparg.vim Patch 8.2.4141 (after 8.2.4140) Problem: Vim9 builtin functions test fails. Solution: Add "scriptversion" item to maparg() result. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.4142 Problem: Build failure with normal features without persistent undo. Solution: Adjust #ifdef. (closes #9557) Files: src/fileio.c Patch 8.2.4143 Problem: MS-Windows: IME support for Win9x is obsolete. Solution: Remove the Win9x code. (Ken Takata, closes #9559) Files: src/gui_w32.c Patch 8.2.4144 Problem: Cannot load libsodium dynamically. Solution: Support dynamic loading on MS-Windows. (Ken Takata, closes #9554) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/buffer.c, src/crypt.c, src/memline.c, src/proto/crypt.pro Patch 8.2.4145 Problem: Confusing error when using name of import for a function. Solution: Pass a flag to trans_function_name(). Files: src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4146 Problem: Vim9: shadowed function can be used in compiled function but not at script level. Solution: Also give an error in a compiled function. (closes #9563) Files: src/vim9expr.c Patch 8.2.4147 Problem: E464 does not always include the offending command. Solution: Add another error message with "%s". (closes #9564) Files: src/errors.h, src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.4148 Problem: Deleting any mapping may cause <ScriptCmd> to not set the script context. Solution: Only reset last_used_map if it is the deleted mapping. (closes #9568) Files: src/map.c, src/getchar.c, src/proto/getchar.pro, src/testdir/test_mapping.vim Patch 8.2.4149 Problem: Test override not restored, autocommand left behind. Solution: Correct restoring test override. Delete autocommand afterwards. Files: src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim Patch 8.2.4150 Problem: Coverity warns for using pointer after free. Solution: Swap statements, even though using the pointer is no problem. Files: src/map.c Patch 8.2.4151 Problem: Reading beyond the end of a line. Solution: For block insert only use the offset for correcting the length. Files: src/ops.c, src/testdir/test_visual.vim Patch 8.2.4152 Problem: Block insert with double wide character fails. Solution: Adjust the expected output. Files: src/testdir/test_utf8.vim Patch 8.2.4153 Problem: MS-Windows: Global IME is no longer supported. Solution: Remove the Global IME implementation. (Ken Takata, closes #9562) Files: Filelist, runtime/doc/mbyte.txt, src/Make_mvc.mak, src/dimm.idl, src/glbl_ime.cpp, src/glbl_ime.h, src/gui_w32.c, src/vim.h Patch 8.2.4154 Problem: ml_get error when exchanging windows in Visual mode. Solution: Correct end of Visual area when entering another buffer. Files: src/window.c, src/testdir/test_visual.vim Patch 8.2.4155 Problem: Translating strftime() argument results in check error. Solution: Add gettext comment. Files: src/time.c Patch 8.2.4156 Problem: Fileinfo message overwrites echo'ed message. Solution: Reset need_fileinfo when displaying a message. (Rob Pilling, closes #9569) Files: src/message.c, src/testdir/test_messages.vim, src/testdir/dumps/Test_fileinfo_after_echo.dump Patch 8.2.4157 Problem: Terminal test fails because Windows sets the title. Solution: Add the "vterm_title" testing override and use it in the test. (Ozaki Kiichi, closes #9556) Files: runtime/doc/testing.txt, src/globals.h, src/terminal.c, src/testing.c, src/testdir/test_terminal.vim Patch 8.2.4158 Problem: MS-Windows: memory leak in :browse. Solution: Free stuff before returning. (Ken Takata, closes #9574) Files: src/gui_w32.c Patch 8.2.4159 Problem: MS-Windows: _WndProc() is very long. Solution: Move code to separate functions. (Ken Takata, closes #9573) Files: src/gui_w32.c Patch 8.2.4160 Problem: Cannot change the register used for Select mode delete. Solution: Make CTRL-R set the register to be used when deleting text for Select mode. (Shougo Matsushita, closes #9531) Files: runtime/doc/visual.txt, src/globals.h, src/normal.c, src/ops.c, src/testdir/test_selectmode.vim Patch 8.2.4161 Problem: Vim9: warning for missing white space after imported variable. Solution: Do not skip white space. (closes #9567) Files: src/vim9expr.c, src/testdir/test_vim9_import.vim Patch 8.2.4162 Problem: Vim9: no error for redefining function with export. Solution: Check for existing function with/without prefix. (closes #9577) Files: src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4163 Problem: No error for omitting function name after autoload prefix. Solution: Check for missing function name. (issue #9577) Files: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4164 (after 8.2.4162) Problem: Error in legacy code for function shadowing variable. Solution: Only give the error in Vim9 script. Files: src/userfunc.c Patch 8.2.4165 Problem: The nv_g_cmd() function is too long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes #9576) Files: src/normal.c Patch 8.2.4166 Problem: Undo synced when switching buffer in another window. Solution: Do not sync undo when not needed. (closes #9575) Files: src/buffer.c, src/testdir/test_timers.vim Patch 8.2.4167 Problem: Vim9: error message for old style import. Solution: Use another error message. Add a test. Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4168 (after 8.2.4163) Problem: Disallowing empty function name breaks existing plugins. Solution: Allow empty function name in legacy script. Files: src/userfunc.c, src/testdir/test_autoload.vim, src/testdir/sautest/autoload/foo.vim Patch 8.2.4169 Problem: MS-Windows: unnecessary casts and other minor things. Solution: Clean up the MS-Windows code. (Ken Takata, closes #9583) Files: src/gui_w32.c Patch 8.2.4170 Problem: MS-Windows: still using old message API calls. Solution: Call the "W" functions directly. (Ken Takata, closes #9582) Files: src/gui_w32.c, src/os_mswin.c, src/os_win32.c, src/os_win32.h Patch 8.2.4171 Problem: Cannot invoke option function using autoload import. Solution: Expand the import to an autoload function name. (closes #9578) Files: src/userfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/option.c, src/testdir/test_vim9_import.vim Patch 8.2.4172 Problem: Filetype detection for BASIC is not optimal. Solution: Improve BASIC filetype detection. (Doug Kearns) Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4173 Problem: Cannot use an import in 'foldexpr'. Solution: Set the script context to where 'foldexpr' was set. (closes #9584) Fix that the script context was not set for all buffers. Files: src/eval.c, src/proto/eval.pro, src/fold.c, src/structs.h, src/option.c, src/testdir/test_vim9_import.vim Patch 8.2.4174 Problem: Vim9: can use an autoload name in normal script. Solution: Disallow using an autoload name. Files: src/userfunc.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4175 Problem: MS-Windows: runtime check for multi-line balloon is obsolete. Solution: Remove the obsolete code. (Ken Takata, closes #9592) Files: src/evalfunc.c, src/gui_w32.c, src/proto/gui_w32.pro Patch 8.2.4176 Problem: Vim9: cannot use imported function with call(). Solution: Translate the function name. (closes #9590) Files: src/evalfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4177 Problem: Vim9: autoload script not loaded after "vim9script noclear". Solution: Check IMP_FLAGS_AUTOLOAD properly. (closes #9593) Files: src/vim9compile.c, src/testdir/test_vim9_import.vim Patch 8.2.4178 Problem: Vim9: invalid error for return type of lambda when debugging. Solution: Do not check the return type of a lambda. (closes #9589) Files: src/vim9cmds.c Patch 8.2.4179 Problem: 'foldtext' is evaluated in the current script context. Solution: Use the script context where the option was set. Files: src/fold.c, src/buffer.c, src/eval.c, src/proto/eval.pro, src/findfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4180 Problem: 'balloonexpr' is evaluated in the current script context. Solution: Use the script context where the option was set. Files: src/beval.c, src/option.c, src/proto/option.pro, src/testdir/test_balloon.vim, src/testdir/dumps/Test_balloon_eval_term_01.dump, src/testdir/dumps/Test_balloon_eval_term_01a.dump, src/testdir/dumps/Test_balloon_eval_term_02.dump Patch 8.2.4181 Problem: Vim9: cannot use an import in 'diffexpr'. Solution: Set the script context when evaluating 'diffexpr'. Do not require 'diffexpr' to return a bool, it was ignored anyway. Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4182 (after 8.2.4182) Problem: Memory leak when evaluating 'diffexpr'. Solution: Use free_tv() instead of clear_tv(). Files: src/evalvars.c Patch 8.2.4183 Problem: Cannot use an import in 'formatexpr'. Solution: Set the script context when evaluating 'formatexpr'. Files: src/textformat.c, src/testdir/test_vim9_import.vim Patch 8.2.4184 Problem: Cannot use an import in 'includeexpr'. Solution: Set the script context when evaluating 'includeexpr' Files: src/findfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4185 Problem: Cannot use an import in 'indentexpr'. Solution: Set the script context when evaluating 'indentexpr' Files: src/indent.c, src/testdir/test_vim9_import.vim Patch 8.2.4186 Problem: Cannot use an import in 'patchexpr'. Solution: Set the script context when evaluating 'patchexpr'. Do not require 'patchexpr' to return a bool, it was ignored anyway. Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4187 Problem: Gnuplot file not recognized. Solution: Recognize ".gnuplot". (closes #9588) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4188 Problem: Not all gitconfig files are recognized. Solution: Add a few more patterns. (Tim Pope, closes #9597) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4189 Problem: MS-Windows: code for "old look" is obsolete. Solution: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, closes #9596) Files: src/gui_w32.c Patch 8.2.4190 Problem: All conceal tests are skipped without the screendumps feature. Solution: Only skip the tests that use screendumps. (closes #9599) Files: src/testdir/test_conceal.vim Patch 8.2.4191 Problem: json5 files are not recognized. Solution: Add a pattern for json5 files. (closes #9601) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4192 Problem: Cannot use an import in 'printexpr'. Solution: Set the script context when evaluating 'printexpr'. Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4193 Problem: Cannot use an import in 'charconvert'. Solution: Set the script context when evaluating 'charconvert'. Also expand script-local functions in 'charconvert'. Files: src/evalvars.c, src/optionstr.c, src/testdir/test_vim9_import.vim Patch 8.2.4194 Problem: MS-Windows: code for calculating font size is duplicated. Solution: Move the code to a function. (Ken Takata, closes #9603) Files: src/gui_w32.c Patch 8.2.4195 Problem: Resizing terminal may cause to behave like CTRL-Z. Solution: Set "got_tstp" only when in_mch_suspend is set. (Dorian Bivolaru, closes #9602, closes #9586) Files: src/os_unix.c Patch 8.2.4196 Problem: Various file types not recognized. Solution: Add patterns to recognize more file types (closes #9607) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4197 Problem: Cannot use an import in the "expr" part of 'spellsuggest'. Solution: Set the script context when evaluating "expr" of 'spellsuggest'. Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4198 Problem: Vim9: the switch for executing instructions is too long. Solution: Move some code to separate functions. Files: src/vim9execute.c Patch 8.2.4199 Problem: MS-Windows: Support for MSVC before 2003 is not useful. Solution: Remove the exceptions for MSVC 6.0. (Ken Takata, closes #9616) Files: src/GvimExt/gvimext.h, src/ex_docmd.c, src/feature.h, src/gui_w32.c, src/if_cscope.c, src/if_ole.cpp, src/if_ruby.c, src/macros.h, src/os_mswin.c, src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro, src/time.c, src/vim.h Patch 8.2.4200 Problem: Some tests do not clean up properly. Solution: Delete created files. (Yegappan Lakshmanan, closes #9611) Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, src/testdir/test_vim9_import.vim Patch 8.2.4201 Problem: When using the GUI CTRL-Z does not stop gvim. Solution: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, closes #9570) Files: src/os_unix.c Patch 8.2.4202 Problem: Vim9: cannot export function that exists globally. Solution: When checking if a function already exists only check for script-local functions. (closes #9615) Files: src/userfunc.c, src/proto/userfunc.pro, src/vim.h, src/vim9compile.c, src/vim9instr.c, src/testdir/test_vim9_import.vim Patch 8.2.4203 Problem: Entering a character with CTRL-V may include modifiers. Solution: Reset "mod_mask" when entering a character with digits after CTRL-V. (closes #9610) Files: src/edit.c, src/testdir/test_edit.vim Patch 8.2.4204 Problem: screenpos() has non-zero row for invisible text. Solution: Only add the window row when the text is visible. (closes #9618) Files: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.4205 Problem: The normal_cmd() function is too long. Solution: Move parts to separate functions. (Yegappan Lakshmanan, closes #9608) Files: src/normal.c Patch 8.2.4206 Problem: Condition with many "(" causes a crash. Solution: Limit recursion to 1000. Files: src/errors.h, src/eval.c, src/testdir/test_eval_stuff.vim Patch 8.2.4207 (after 8.2.4206) Problem: Recursion test fails with MSVC. Solution: Use a smaller limit for MSVC. Files: src/eval.c Patch 8.2.4208 Problem: Using setbufvar() may change the window title. Solution: Do not redraw when creating the autocommand window. (closes #9613) Files: src/autocmd.c, src/testdir/test_functions.vim Patch 8.2.4209 Problem: partial in 'opfunc' cannot use an imported function. Solution: Also expand the function name in a partial. (closes #9614) Files: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4210 (after 8.2.4208) Problem: Window title test fails in some configurations. Solution: Only run the test if the title can be obtained. Files: src/testdir/test_functions.vim Patch 8.2.4211 (after 8.2.4208) Problem: Window title test still fails in some configurations. Solution: Use WaitForAssert(). Files: src/testdir/test_functions.vim Patch 8.2.4212 (after 8.2.4208) Problem: Window title test still fails in some configurations. Solution: Explicitly set the 'title' option. Files: src/testdir/test_functions.vim Patch 8.2.4213 Problem: Too much code for supporting old MSVC versions. Solution: Remove MSVC 2003 support. (Ken Takata, closes #9623) Files: Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c, src/msvcsetup.bat, src/os_win32.c Patch 8.2.4214 Problem: Illegal memory access with large 'tabstop' in Ex mode. Solution: Allocate enough memory. Files: src/ex_getln.c, src/testdir/test_ex_mode.vim Patch 8.2.4215 Problem: Illegal memory access when copying lines in Visual mode. Solution: Adjust the Visual position after copying lines. Files: src/ex_cmds.c, src/testdir/test_visual.vim Patch 8.2.4216 Problem: Vim9: cannot use a function from an autoload import directly. Solution: Add the AUTOLOAD instruction to figure out at runtime. (closes #9620) Files: src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4217 Problem: Illegal memory access when undo makes Visual area invalid. Solution: Correct the Visual area after undo. Files: src/undo.c, src/testdir/test_visual.vim Patch 8.2.4218 Problem: Illegal memory access with bracketed paste in Ex mode. Solution: Reserve space for the trailing NUL. Files: src/edit.c, src/testdir/test_paste.vim Patch 8.2.4219 Problem: Reading before the start of the line. Solution: Check boundary before trying to read the character. Files: src/register.c, src/testdir/test_visual.vim Patch 8.2.4220 Problem: MS-Windows: some old compiler support remains. Solution: Remove obsolete compiler support. (Ken Takata, closes #9627) Files: src/Make_mvc.mak, src/vim.h Patch 8.2.4221 Problem: Some functions in normal.c are very long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes #9628) Files: src/normal.c Patch 8.2.4222 Problem: MS-Windows: clumsy way to suppress progress on CI. Solution: Check for "$CI" in the Makefile itself. (Ken Takata, closes #9631) Files: .github/workflows/ci.yml, ci/appveyor.bat, src/Make_mvc.mak Patch 8.2.4223 Problem: Long/int compiler warnings; function arguments swapped. Solution: Add type casts. Swap arguments. (Ken Takata, closes #9632) Files: src/alloc.c, src/eval.c, src/vim9script.c Patch 8.2.4224 Problem: Vim9: no error when using a number for map() second argument Solution: Disallow number to string conversion. (closes #9630) Files: src/eval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4225 Problem: Vim9: depth argument of :lockvar not parsed in :def function. Solution: Parse the optional depth argument. (closes #9629) Fix that locking doesn't work for a non-materialize list. Files: src/vim9cmds.c, src/evalvars.c, src/structs.h, src/evalfunc.c, src/errors.h, src/vim9execute.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4226 (after 8.2.4224) Problem: Filter-map test fails. Solution: Only reject number argument in Vim9 script. Files: src/eval.c Patch 8.2.4227 Problem: Vim9: using "lockvar!" in :def function does not work. Solution: Add "!" instead of "-1". (closes #9634) Files: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4228 Problem: No tests for clicking in the GUI tabline. Solution: Add test functions to generate the events. Add tests using the functions. (Yegappan Lakshmanan, closes #9638) Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/normal.c, src/proto/testing.pro, src/testdir/test_diffmode.vim, src/testdir/test_gui.vim, src/testdir/test_normal.vim, src/testing.c Patch 8.2.4229 Problem: Possible crash when invoking timer callback fails. Solution: Initialize the typval. Give an error for an empty callback. (closes #9636) Files: src/time.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4230 Problem: MS-Windows: set_guifontwide() is included but won't work. Solution: Include set_guifontwide() only for X11. (Ken Takata, closes #9640) Files: src/gui.c Patch 8.2.4231 Problem: Vim9: map() gives type error when type was not declared. Solution: Only check the type when it was declared, like extend() does. (closes #9635) Files: src/list.c, src/evalfunc.c, src/vim9instr.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4232 (after 8.2.4231) Problem: Some compilers don't like a goto label without statement. Solution: Return instead of using a goto. Files: src/list.c Patch 8.2.4233 Problem: Crash when recording and using Select mode. Solution: When deleting the last recorded character check there is something to delete. Files: src/getchar.c, src/testdir/test_registers.vim Patch 8.2.4234 Problem: test_garbagecollect_now() does not check v:testing as documented. Solution: Give an error if v:testing is not set. Files: src/testing.c, src/errors.h, src/testdir/test_functions.vim Patch 8.2.4235 Problem: Invalid check for NULL pointer. Solution: Remove the check. Files: src/getchar.c Patch 8.2.4236 Problem: Accessing freed memory. Solution: Set the bh_curr pointer to NULL. Files: src/getchar.c Patch 8.2.4237 Problem: Record buffer wrong if character in Select mode was not typed. Solution: Only delete the tail from the record buffer if the character was typed. (closes #9650) Files: src/normal.c, src/testdir/test_registers.vim Patch 8.2.4238 Problem: *.tf file could be filetype "tf" or "terraform". Solution: Detect the type from the file contents. (closes #9642) Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4239 Problem: Build fails with unusual configuration. Solution: Adjust #ifdef. (closes #9651) Files: src/testing.c Patch 8.2.4240 Problem: Error for using flatten() in Vim9 script is unclear. Solution: Add a remark to use flattennew(). Files: src/errors.h Patch 8.2.4241 Problem: Some type casts are redundant. Solution: Remove the type casts. (closes #9643) Files: src/blob.c, src/buffer.c, src/channel.c, src/clientserver.c, src/clipboard.c, src/drawline.c, src/drawscreen.c, src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/fold.c, src/if_cscope.c, src/json.c, src/match.c, src/memline.c, src/message.c, src/misc1.c, src/normal.c, src/ops.c, src/option.c, src/optionstr.c, src/os_unix.c, src/register.c, src/sign.c, src/spellfile.c, src/tag.c, src/ui.c, src/undo.c, src/window.c Patch 8.2.4242 Problem: Put in Visual mode cannot be repeated. Solution: Use "P" to put without yanking the deleted text into the unnamed register. (Shougo Matsushita, closes #9591) Files: runtime/doc/visual.txt, src/normal.c, src/register.c, src/testdir/test_visual.vim Patch 8.2.4243 Problem: Lua tests fail with Lua 5.4.4. Solution: Check messages like before Lua 5.4.3. (Jakub Kulík, closes #9652) Files: src/testdir/test_lua.vim Patch 8.2.4244 Problem: MS-Windows: warning from MSVC on debug build. Solution: Adjust "/opt" options. Remove unused variables. Make variables uppercase for consistency. (Ken Takata, closes #9647) Files: src/Make_mvc.mak Patch 8.2.4245 Problem: ":retab 0" may cause illegal memory access. Solution: Limit the value of 'tabstop' to 10000. Files: src/option.c, src/vim.h, src/indent.c, src/testdir/test_options.vim Patch 8.2.4246 Problem: One error message not in errors.h. (Antonio Colombo) Solution: Move the message and rename. Files: src/errors.h, src/if_perl.xs Patch 8.2.4247 Problem: Stack corruption when looking for spell suggestions. Solution: Prevent the depth increased too much. Add a five second time limit to finding suggestions. Files: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4248 Problem: No proper test for moving the window separator. Solution: Add a test. Add comment in code. (closes #9656) Files: src/window.c, src/testdir/test_window_cmd.vim Patch 8.2.4249 Problem: The timeout limit for spell suggestions is always 5000 milli seconds. Solution: Add the "timeout" entry to 'spellsuggest'. Files: runtime/doc/options.txt, src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4250 Problem: Channel out callback test is flaky on Mac. Solution: Assign high priority to the test process. (Ozaki Kiichi, closes #9653) Files: src/testdir/test_channel_pipe.py, src/testdir/thread_util.py Patch 8.2.4251 Problem: Vala files are not recognized. Solution: Add the *.vala pattern. (closes #9654) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4252 Problem: Generating the normal command table at runtime is inefficient. Solution: Generate the table with a Vim script and put it in a header file. (Yegappan Lakshmanan, closes #9648) Files: Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.vim, src/evalfunc.c, src/main.c, src/normal.c, src/nv_cmdidxs.h, src/proto/normal.pro Patch 8.2.4253 Problem: Using freed memory when substitute uses a recursive function call. Solution: Make a copy of the substitute text. Files: src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.4254 Problem: Using short instead of int. Solution: Use int. (closes #9658) Files: src/if_cscope.c Patch 8.2.4255 Problem: Theoretical computation overflow. Solution: Perform multiplication in a wider type. (closes #9657) Files: src/alloc.c, src/drawline.c, src/eval.c, src/evalfunc.c, src/ex_docmd.c, src/hardcopy.c, src/list.c, src/memfile.c, src/memline.c, src/popupwin.c Patch 8.2.4256 Problem: MS-Windows: compiler warnings when compiled with /W4. Solution: Small adjustments to the code. (Ken Takata, closes #9659) Files: src/gui_w32.c, src/os_win32.c Patch 8.2.4257 Problem: Vim9: finding global function without g: prefix but not finding global variable is inconsistent. Solution: Require using g: for a global function. Change the vim9.vim script into a Vim9 script with exports. Fix that import in legacy script does not work. Files: src/vim9expr.c, src/evalfunc.c, src/eval.c, src/userfunc.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim, src/testdir/test_blob.vim, src/testdir/test_execute_func.vim, src/testdir/test_debugger.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_highlight.vim, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_listdict.vim, src/testdir/test_mapping.vim, src/testdir/test_normal.vim, src/testdir/test_popupwin.vim, src/testdir/test_profile.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim, src/testdir/test_textprop.vim, src/testdir/test_usercommands.vim Patch 8.2.4258 Problem: Coverity warns for array overrun. Solution: Restrict depth to MAXWLEN - 1. Files: src/spellsuggest.c Patch 8.2.4259 Problem: Number of test functions for GUI events is growing. Solution: Use one function with a dictionary. (Yegappan Lakshmanan, closes #9660) Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.4260 Problem: Vim9: can still use a global function without g: at the script level. Solution: Also check for g: at the script level. (issue #9637) Files: src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, src/vim9expr.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_11.dump, src/testdir/dumps/Test_popupwin_scroll_12.dump Patch 8.2.4261 Problem: Accessing invalid memory when a regular expression checks the Visual area while matching in a string. Solution: Do not try matching the Visual area in a string. Files: src/regexp.c, src/testdir/test_help.vim Patch 8.2.4262 (after 8.2.4261) Problem: Some search tests fail. Solution: Use a better way to reject searching for the Visual area. Files: src/regexp.c Patch 8.2.4263 Problem: No test for the GUI find/replace dialog. Solution: Add a test function and a test. (Yegappan Lakshmanan, closes #9662) Files: runtime/doc/testing.txt, src/testdir/test_gui.vim, src/testing.c Patch 8.2.4264 Problem: Vim9: can use old style autoload function name. Solution: Give an error for old style autoload function name. Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.4265 (after 8.2.4264) Problem: Autoload tests fails. Solution: Use export instead of name with #. Files: src/testdir/sautest/autoload/auto9.vim, src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim Patch 8.2.4266 Problem: Compiler warning for uninitialized variable. Solution: Initialize saved_did_emsg. Files: src/userfunc.c Patch 8.2.4267 Problem: Unused entry in keymap enum. Solution: Remove the entry. Files: src/keymap.h Patch 8.2.4268 Problem: CI log output is long. Solution: Group output in sections. (Ozaki Kiichi, closes #9670) Files: .github/workflows/ci.yml Patch 8.2.4269 Problem: Coverity warns for using a NULL pointer. Solution: Check for "name" to not be NULL. Files: src/userfunc.c Patch 8.2.4270 Problem: Generating nv_cmdidxs.h requires building Vim twice. Solution: Move the table into a separate file and use a separate executable to extract the command characters. (Ozaki Kiichi, closes #9669) Files: src/normal.c, src/nv_cmds.h, Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.c, src/create_nvcmdidxs.vim, src/evalfunc.c, src/proto/normal.pro Patch 8.2.4271 Problem: MS-Windows: cannot build with Ruby 3.1.0. Solution: Adjust the DLL name and include directory. (Ken Takata, closes #9666) Files: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.4272 Problem: Vim9 expr test fails without the channel feature. (Dominique Pellé) Solution: Remove "g:" before "CheckFeature". (closes #9671) Files: src/testdir/test_vim9_expr.vim Patch 8.2.4273 Problem: The EBCDIC support is outdated. Solution: Remove the EBCDIC support. Files: src/ascii.h, src/charset.c, src/cindent.c, src/digraph.c, src/edit.c, src/eval.c, src/evalfunc.c, src/ex_cmds.c, src/feature.h, src/filepath.c, src/findfile.c, src/getchar.c, src/gui.c, src/gui_motif.c, src/hardcopy.c, src/help.c, src/macros.h, src/map.c, src/mark.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/optiondefs.h, src/os_unix.c, src/proto/evalfunc.pro, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/screen.c, src/spell.c, src/strings.c, src/structs.h, src/term.c, src/version.c, src/viminfo.c, src/testdir/test_edit.vim, src/testdir/test_exec_while_if.vim, src/testdir/test_expr.vim, src/testdir/test_gf.vim, src/testdir/test_regexp_utf8.vim Patch 8.2.4274 Problem: Basic and form filetype detection is incomplete. Solution: Add a separate function for .frm files. (Doug Kearns, closes #9675) Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4275 Problem: Cannot use an autoload function from a package under start. Solution: Also look in the "start" package directory. (Bjorn Linse, closes #7193) Files: src/scriptfile.c, src/testdir/test_packadd.vim Patch 8.2.4276 Problem: Separate test function for the GUI scrollbar. Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes #9674) Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testing.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4277 Problem: Vim9: an import does not shadow a command modifier. Solution: Do not accept a command modifier followed by a dot. Files: src/ex_docmd.c, src/testdir/test_vim9_import.vim Patch 8.2.4278 Problem: Build with Athena GUI fails. (Elimar Riesebieter) Solution: Add #ifdef. Files: src/testing.c Patch 8.2.4279 Problem: Vim9: cannot change item type with map() after range(). Solution: Split the return type in current type and declared type. (closes #9665) Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.4280 (after 8.2.4279) Problem: list-dict test crashes. Solution: Check declared type for add(). Files: src/vim9expr.vim Patch 8.2.4281 Problem: Using freed memory with :lopen and :bwipe. Solution: Do not use a wiped out buffer. Files: src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.4282 Problem: Restricted mode requires the -Z command line option. Solution: Use restricted mode when $SHELL ends in "nologin" or "false". (closes #9681) Files: runtime/doc/starting.txt, src/option.c, src/testdir/test_restricted.vim Patch 8.2.4283 Problem: Using a variable for the return value is not needed. Solution: Return the value directly. (closes #9687) Files: src/ex_docmd.c, src/misc2.c Patch 8.2.4284 Problem: Old mac resources files are no longer used. Solution: Delete the unused files. (Ozaki Kiichi, closes #9688) Files: Filelist, src/Makefile, src/dehqx.py, src/infplist.xml, src/os_mac.rsr.hqx, src/os_mac_rsrc/app.icns, src/os_mac_rsrc/doc-txt.icns, src/os_mac_rsrc/doc.icns Patch 8.2.4285 Problem: Vim9: type of item in for loop not checked properly. Solution: Adjust the type checking. (closes #9683) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.4286 Problem: Vim9: strict type checking after copy() and deepcopy(). Solution: Allow type to change after making a copy. (closes #9644) Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/proto/dict.pro, src/list.c, src/proto/list.pro, src/evalfunc.c, src/vim9execute.c, src/vim9type.c, src/proto/vim9type.pro, src/evalvars.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4287 Problem: Cannot assign empty list with any list type to variable with specific list type. Solution: Use unknown list type for empty list if the specified type is any. Files: src/vim9type.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.4288 Problem: Preprocessor indents are inconsistent. Solution: Fix preprocessor indents. (Ken Takata, closes #9691) Files: src/arglist.c, src/change.c, src/ex_cmds.c, src/gui.c, src/hashtab.c, src/indent.c, src/ops.c, src/os_win32.c Patch 8.2.4289 Problem: Warnings reported by MSVC. Solution: Rename variables and other fixes. (Ken Takata, closes #9689) Files: src/cmdexpand.c, src/drawscreen.c, src/filepath.c, src/getchar.c, src/menu.c, src/os_win32.c, src/version.c Patch 8.2.4290 Problem: MS-Windows: using type casts for timer IDs. Solution: Remove type casts and use the right type. (Ken Takata, closes #9690) Remove old debug comments. Rename variables and functions. Files: src/gui_w32.c Patch 8.2.4291 Problem: Error number used twice. Solution: Renumber the errors. Files: src/errors.h Patch 8.2.4292 (after 8.2.4291) Problem: Test fails. Solution: Adjust the expected error number. Files: src/testdir/test_vim9_cmd.vim Patch 8.2.4293 Problem: Vim9: when copying a list it gets type list<any> even when the original list did not have a type. Solution: Only set the type when the original list has a type. (closes #9692) Files: src/list.c, src/testdir/test_vim9_expr.vim Patch 8.2.4294 Problem: MS-Windows: #ifdefs for Cygwin are too complicated. Solution: Simplify the conditions. (Ken Takata, closes #9693) Files: src/evalfunc.c, src/main.c, src/os_unix.c, src/os_win32.c, src/os_win32.h Patch 8.2.4295 Problem: Vim9: concatenating two lists may result in wrong type. Solution: Remove the type instead of using list<any>. (closes #9692) Files: src/list.c, src/testdir/test_vim9_expr.vim Patch 8.2.4296 Problem: Vim9: not all code covered by tests. Solution: Add a few more tests for corner cases. Fix hang when single quote is missing. Files: src/vim9expr.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4297 Problem: Vim9: not all code covered by tests. Solution: Add a couple more tests. Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4298 Problem: Divide by zero with huge tabstop value. Solution: Reject tabstop value that overflows to zero. Files: src/indent.c, src/testdir/test_vartabs.vim Patch 8.2.4299 Problem: SafeState autocommand interferes with debugging. Solution: Do not trigger SafeState while debugging. (closes #9697) Files: src/main.c Patch 8.2.4300 (after 8.2.4299) Problem: Cannot build tiny version. (Tony Mechelynck) Solution: Add #ifdef. Files: src/main.c Patch 8.2.4301 Problem: Vim9: type error for copy of dict. Solution: Do not use dict<any> but no type. (closes #9696) Files: src/dict.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4302 Problem: Vim9: return type of getline() is too strict. Solution: Make the declared type list<any>. Also do this for other functions returning a list of a specific type. Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4303 Problem: A few messages should not be translated. Solution: Remove _(). (Dominique Pellé, closes #9702) Files: src/syntax.c Patch 8.2.4304 Problem: Vim9: slice() makes a copy but doesn't change the type. Solution: Change the declared type like copy(). (closes #9696) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4305 Problem: Tex filetype detection fails. Solution: Check value to be positive. (closes #9704) Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4306 Problem: No test for fixed perl filetype check. Solution: Add a test. Sort test functions. Files: src/testdir/test_filetype.vim Patch 8.2.4307 Problem: A few more messages should not be translated. Solution: Remove _(). Files: src/syntax.c Patch 8.2.4308 Problem: Vim9: cannot list autoload function. Solution: Don't give an error for using # when listing a function. (closes #9703) Files: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4309 Problem: Vim9: crash when using a partial in the wrong context. Solution: Don't use an NULL outer pointer. (closes #9706) Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.4310 Problem: Vim9: constant list and dict get a declaration type other than "any". Solution: A constant list and dict have a declared member type "any". (closes #9701) Files: src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.4311 Problem: Vim9: changing script variable type not caught at compile time. Solution: Set the declared type. Files: src/vim9instr.c, src/testdir/test_vim9_assign.vim Patch 8.2.4312 Problem: No error for using :vim9script in a :def function. Solution: Give an error when compiling. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4313 Problem: Vim9: cannot change type of list after making a slice. Solution: Adjust the declared member type. (closes #9696) Files: src/vim9expr.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4314 (after 8.2.4312) Problem: Test fails where lines are skipped. Solution: Only give an error when not skipping commands. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4315 Problem: Put in Visual mode not fully tested. Solution: Add a few more test cases. (closes #9708) Files: src/testdir/test_visual.vim Patch 8.2.4316 Problem: __CYGWIN32__ is not defined on 64 bit systems. Solution: Update #ifdefs. (Ken Takata, closes #9709) Files: src/main.c, src/os_unix.c, src/pty.c, src/vim.h Patch 8.2.4317 Problem: MS-Windows: Vim exits when Python 3 initialisation fails. Solution: Hook into the exit() function to recover from the failure. (Ken Takata, closes #9710) Files: runtime/doc/if_pyth.txt, src/if_python3.c, src/os_win32.c, src/errors.h, src/proto/os_win32.pro Patch 8.2.4318 Problem: Various comment and indent mistakes, returning wrong zero. Solution: Fix the mistakes. Return NULL instead of FAIL. Files: src/clientserver.c, src/eval.c, src/evalvars.c, src/vim9cmds.c, src/window.c Patch 8.2.4319 Problem: :put does not work properly in compiled function. (John Beckett) Solution: Adjust the direction when using line zero. Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4320 Problem: Athena and Motif: when maximized scrollbar position is wrong. Solution: Implement the scrollbar padding functions. (closes #9712) Files: src/gui_athena.c, src/gui_motif.c Patch 8.2.4321 Problem: Vim9: crash when using a funcref to a closure. Solution: Copy pt_outer to the new partial. (closes #9714) Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4322 Problem: Vim9: crash when using funcref with closure. Solution: Keep a reference to the funcref that has the outer context. (closes #9716) Files: src/evalfunc.c, src/structs.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.4323 Problem: Vim9: nested function name can start with "_". Solution: Use same rule for function name for nested functions. (closes #9713) Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4324 Problem: Vim9: script-local function name can start with "_". Solution: Check for leading capital after "s:". Correct error message. Files: src/userfunc.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4325 Problem: 'wildmenu' only shows few matches. Solution: Add the "pum" option: use a popup menu to show the matches. (Yegappan Lakshmanan et al., closes #9707) Files: runtime/doc/options.txt, src/vim.h, src/cmdexpand.c, src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h, src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_01.dump, src/testdir/dumps/Test_wildmenu_pum_02.dump, src/testdir/dumps/Test_wildmenu_pum_03.dump, src/testdir/dumps/Test_wildmenu_pum_04.dump, src/testdir/dumps/Test_wildmenu_pum_05.dump, src/testdir/dumps/Test_wildmenu_pum_06.dump, src/testdir/dumps/Test_wildmenu_pum_07.dump, src/testdir/dumps/Test_wildmenu_pum_08.dump, src/testdir/dumps/Test_wildmenu_pum_09.dump, src/testdir/dumps/Test_wildmenu_pum_10.dump, src/testdir/dumps/Test_wildmenu_pum_11.dump, src/testdir/dumps/Test_wildmenu_pum_12.dump, src/testdir/dumps/Test_wildmenu_pum_13.dump, src/testdir/dumps/Test_wildmenu_pum_14.dump, src/testdir/dumps/Test_wildmenu_pum_15.dump, src/testdir/dumps/Test_wildmenu_pum_16.dump, src/testdir/dumps/Test_wildmenu_pum_17.dump, src/testdir/dumps/Test_wildmenu_pum_18.dump, src/testdir/dumps/Test_wildmenu_pum_19.dump, src/testdir/dumps/Test_wildmenu_pum_20.dump, src/testdir/dumps/Test_wildmenu_pum_21.dump, src/testdir/dumps/Test_wildmenu_pum_22.dump, src/testdir/dumps/Test_wildmenu_pum_23.dump, src/testdir/dumps/Test_wildmenu_pum_24.dump, src/testdir/dumps/Test_wildmenu_pum_25.dump, src/testdir/dumps/Test_wildmenu_pum_26.dump, src/testdir/dumps/Test_wildmenu_pum_27.dump, src/testdir/dumps/Test_wildmenu_pum_28.dump, src/testdir/dumps/Test_wildmenu_pum_29.dump Patch 8.2.4326 Problem: "o" and "O" copying comment not sufficiently tested. Solution: Add a test case. (closes #9718) Files: src/testdir/test_textformat.vim Patch 8.2.4327 Problem: May end up with no current buffer. Solution: When deleting the current buffer to not pick a quickfix buffer as the new current buffer. Files: src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.4328 Problem: Command line complete matches cleared when typing character. (Dominique Pellé) Solution: Only remove a popup menu if there is one. Files: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_30.dump, src/testdir/dumps/Test_wildmenu_pum_31.dump Patch 8.2.4329 Problem: No support for end line number and column in 'errorformat'. Solution: Add %e and %k. (closes #9624) Files: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.4330 Problem: Vim9: no error if script imports itself. Solution: Give an error when a script imports itself. Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4331 Problem: Vim9: no test for existing script variable in block. Solution: Add a test. Files: src/testdir/test_vim9_func.vim Patch 8.2.4332 Problem: Vim9: incomplete test for existing script variable in block. Solution: Add a couple more tests. Fix uncovered problem. Files: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4333 Problem: cstack not always passed to where it is needed. Solution: Pass cstack through functions. Files: src/eval.c, src/vim9expr.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.4334 Problem: Command line popup menu not positioned correctly. Solution: Also use vim_strsize() on the existing text. (Naruhiko Nishino, closes #9727) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_32.dump Patch 8.2.4335 Problem: No autocommand event triggered before changing directory. (Ronnie Magatti) Solution: Add DirChangedPre. (closes #9721) Files: runtime/doc/autocmd.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/autocmd.c, src/misc2.c, src/testdir/test_autocmd.vim Patch 8.2.4336 Problem: Using :filter for :scriptnames does not work. (Ben Jackson) Solution: Call message_filtered(). (closes #9720) Files: src/scriptfile.c, src/testdir/test_filter_cmd.vim Patch 8.2.4337 Problem: Part of condition is always true. Solution: Remove that part of the condition. (closes #9729) Files: src/filepath.c Patch 8.2.4338 Problem: An error from an expression mapping messes up the display. Solution: When the expression results in an empty string return K_IGNORE. In cmdline mode redraw the command line. (closes #9726) Files: src/getchar.c, src/testdir/test_mapping.vim, src/testdir/dumps/Test_map_expr_2.dump, src/testdir/dumps/Test_map_expr_3.dump, src/testdir/dumps/Test_map_expr_4.dump Patch 8.2.4339 Problem: CTRL-A does not work properly with the cmdline popup menu. Solution: Fix issues with CTRL-A. Add more tests for the cmdline popup menu. Remove TermWait() before VeriryScreenDump(). Refactor the cmdline popup code. (Yegappan Lakshmanan, closes #9735) Files: src/cmdexpand.c, src/ex_getln.c, src/popupmenu.c, src/testdir/screendump.vim, src/testdir/test_bufline.vim, src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim, src/testdir/test_display.vim, src/testdir/test_highlight.vim, src/testdir/test_match.vim, src/testdir/test_popup.vim, src/testdir/test_search_stat.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/dumps/Test_wildmenu_pum_33.dump, src/testdir/dumps/Test_wildmenu_pum_34.dump, src/testdir/dumps/Test_wildmenu_pum_35.dump, src/testdir/dumps/Test_wildmenu_pum_36.dump, src/testdir/dumps/Test_wildmenu_pum_37.dump Patch 8.2.4340 Problem: Amiga: mch_can_exe() is not implemented. Solution: Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731) Files: src/os_amiga.c Patch 8.2.4341 Problem: Command line not redrawn when finishing popup menu and the screen has scrolled up. Solution: Redraw the command line after updating the screen. (closes #9722) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_38.dump Patch 8.2.4342 Problem: CI will soon switch to other windows version. Solution: Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi, closes #9740) Files: .github/workflows/ci.yml Patch 8.2.4343 Problem: When reloading not all properties are detected. Solution: Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579) Files: runtime/doc/editing.txt, runtime/doc/eval.txt, src/fileio.c, src/proto/fileio.pro, src/message.c, src/spellfile.c, src/testdir/test_filechanged.vim Patch 8.2.4344 Problem: Amiga: header file included twice. Solution: Remove #include. (Ola Söder, closes #9733) Files: src/memfile.c Patch 8.2.4345 Problem: <amatch> is expanded like a file name for DirChangedPre. Solution: Do not expand <amatch>. (closes #9742) Also for the User event. Files: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.4346 Problem: A custom statusline may cause Esc to work like Enter on the command line when the popup menu is displayed. Solution: Save and restore KeyTyped. (closes #9749) Files: src/drawscreen.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_39.dump Patch 8.2.4347 Problem: In some build setups UNUSED is not defined. Solution: Change the logic of how UNUSED is defined. (Ola Söder, closes #9734) Files: src/vim.h Patch 8.2.4348 Problem: "legacy exe cmd" does not do what one would expect. Solution: Apply the "legacy" and "vim9script" command modifiers to the argument of ":execute". Files: runtime/doc/vim9.txt, src/globals.h, src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4349 Problem: FileChangedShell test fails on MS-Windows. Solution: Skip the test on MS-Windows. Files: src/testdir/test_filechanged.vim Patch 8.2.4350 Problem: FEAT_GUI_ENABLED defined but never used. Solution: Remove the #define. (Ola Söder, closes #9732) Files: src/vim.h Patch 8.2.4351 Problem: No coverage is measured on MS-Windows CI. Solution: Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750) Files: .github/workflows/ci.yml Patch 8.2.4352 Problem: ReScript files are not recognized. Solution: Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4353 Problem: CI does not use the latest Lua and Python. Solution: Use Lua 5.4.2 and Python 3.10. (closes #9744) Files: .github/workflows/ci.yml Patch 8.2.4354 Problem: Dynamic loading of libsodium not handled properly. Solution: Fix has() and :version. Show an error message when loading fails. Fix memory leaks. (Ken Takata, closes #9754) Files: src/crypt.c, src/evalfunc.c, src/gui_dwrite.cpp, src/if_cscope.c, src/os_win32.c, src/proto/crypt.pro, src/proto/os_win32.pro, src/version.c Patch 8.2.4355 Problem: Unnecessary call to check_colorcolumn(). Solution: Remove the call. (Sean Dewar, closes #9748) Files: src/option.c, src/window.c Patch 8.2.4356 Problem: Command line completion functions are very long. Solution: Refactor into multiple functions. (Yegappan Lakshmanan, closes #9753) Files: src/cmdexpand.c Patch 8.2.4357 (after 8.2.4348) Problem: sticky command modifiers are too sticky. Solution: Do not apply command modifiers to a sourced script. (closes #9751) Files: src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4358 Problem: Vim9: line number of exception is not set. Solution: Set the line number before throwing an exception. (closes #9755) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.4359 Problem: crash when repeatedly using :retab. Solution: Bail out when the line is getting too long. Files: src/indent.c, src/testdir/test_retab.vim Patch 8.2.4360 Problem: Vim9: allowing use of "s:" leads to inconsistencies. Solution: Disallow using "s:" in Vim9 script at the script level. Files: src/userfunc.c, src/proto/userfunc.pro, src/errors.h, src/vim9compile.c, src/eval.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4361 (after 8.2.4360) Problem: Vim9: some tests fail. Solution: Fix the tests, mostly by removing "s:". Files: src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tagfunc.vim Patch 8.2.4362 Problem: :retab may allocate too much memory. Solution: Bail out when allocating more than MAXCOL bytes. Files: src/indent.c Patch 8.2.4363 Problem: MS-Windows: running out of memory for a very long line. Solution: Use a 32 bit value for MAXCOL also when ints are 64 bits. Files: src/vim.h Patch 8.2.4364 Problem: MS-Windows: still running out of memory for a very long line. Solution: Check for negative length. Files: src/indent.c Patch 8.2.4365 (after 8.2.4348) Problem: sticky command modifiers are too sticky. Solution: Do not apply command modifiers to a called function. (closes #9751) Files: src/userfunc.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4366 Problem: Not enough tests for command line completion. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9760) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim Patch 8.2.4367 Problem: Calling in_vim9script() multiple times. Solution: Call it once and keep the result. Files: src/userfunc.c, src/eval.c Patch 8.2.4368 Problem: Amiga: a few compiler warnings. Solution: Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756, closes #9757) Files: src/term.c, src/os_amiga.c Patch 8.2.4369 Problem: Redundant #ifdef argument. Solution: Remove unused MSWIN. (Ola Söder, closes #9758) Files: src/feature.h Patch 8.2.4370 Problem: MS-Windows: libsodium.dll not included with the installer. Solution: Add the file to the installer if it exists. (Christian Brabandt, closes #9762) Files: nsis/gvim.nsi Patch 8.2.4371 Problem: Vim9: can create a script variable from a legacy function. Solution: Disallow creating a script variable from a function. Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.4372 Problem: Filetype detection from file contents is in legacy script. Solution: Use a compiled function for filetype detection. Files: runtime/scripts.vim, runtime/autoload/dist/script.vim Patch 8.2.4373 Problem: Expression test fails. Solution: Make the test work with latest Vim9 syntax. Files: src/testdir/test_expr.vim Patch 8.2.4374 Problem: Unreachable code. Solution: Remove outdated code lines. Files: src/vim9compile.c Patch 8.2.4375 Problem: ctx_imports is not used. Solution: Delete ctx_imports. Add missing dependency. Files: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/evalfunc.c, src/evalvars.c, src/userfunc.c, src/vim9expr.c, src/vim9script.c, src/Makefile Patch 8.2.4376 Problem: Not enough tests for command line completion. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9771) Files: src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim Patch 8.2.4377 Problem: CI steps for Windows are a bit unorganized. Solution: Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764) Files: .github/workflows/ci.yml Patch 8.2.4378 Problem: Incsearch highlight broken when calling searchcount() in 'tabLine' function. (Mirko Palmer) Solution: Save and restore the incsearch state. (Christian Brabandt, closes #9763, closes #9633) Files: src/search.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstat_inc_1.dump, src/testdir/dumps/Test_searchstat_inc_2.dump, src/testdir/dumps/Test_searchstat_inc_3.dump Patch 8.2.4379 Problem: An empty change is reported to a listener. Solution: Do not report an empty change. (closes #9768) Remove unused return value. Files: src/undo.c, src/change.c, src/testdir/test_listener.vim Patch 8.2.4380 Problem: Small differences between Chinese translation files. Solution: Add rule for converting UTF-8 to gb2312. (closes #9773) Files: src/po/Makefile, src/po/Make_all.mak Patch 8.2.4381 (after 8.2.4380) Problem: Translation file listed twice. Solution: Remove one entry. Files: src/po/Make_all.mak Patch 8.2.4382 (after 8.2.4346) Problem: A custom 'tabline' may cause Esc to work like Enter on the command line when the popup menu is displayed. Solution: Save and restore KeyTyped. (closes #9776) Files: src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_40.dump Patch 8.2.4383 Problem: Vim9: unused code lines. Solution: Rely on either "cctx" or "cstack" to not be NULL. Files: src/vim9compile.c Patch 8.2.4384 Problem: Vim9: error message not tested, some code not tested. Solution: Add a couple of test cases. Give an error for a command modifier without a command. Files: src/errors.h, src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4385 (after 8.2.4384) Problem: Cannot build tiny version. Solution: Adjust #ifdefs. Files: src/errors.h Patch 8.2.4386 (after 8.2.4384) Problem: Still cannot build tiny version. Solution: Adjust #ifdefs. Files: src/ex_docmd.c Patch 8.2.4387 Problem: Command line completion doesn't always work properly. Solution: Adjust triggering after a "|". Add more tests. (Yegappan Lakshmanan, closes #9779) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4388 Problem: Dead code in op_insert(). Solution: Remove condition and else block. (closes #9782) Files: src/ops.c Patch 8.2.4389 Problem: screenpos() does not handle a position in a closed fold. Solution: Check if the position is inside a closed fold. (closes #9778) Files: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.4390 Problem: Vim9: list from declaration with inferred type does not set the type on the value. Solution: When inferring the type in a variable declaration also set the type of the list or dictionary. (closes #9705) Do not set the type when the member is "any". Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4391 Problem: Command line executed when typing Esc in the GUI. Solution: Move saving/restoring KeyTyped to build_stl_str_hl(). (closes #9783) Files: src/buffer.c, src/screen.c Patch 8.2.4392 (after 8.2.4002) Problem: MS-Windows with VIMDLL: Escaping CSI is wrong. Solution: Put back #ifdef. (Ken Takata, closes #9769) Files: src/getchar.c Patch 8.2.4393 Problem: Possible number overflow with nested folds. Solution: Avoid a negative line number. Files: src/fold.c Patch 8.2.4394 (after 8.2.4392) Problem: UTF8 select mode test fails on MS-Windows. Solution: Revert the #ifdef change. Files: src/getchar.c Patch 8.2.4395 Problem: Some code lines not covered by tests. Solution: Add a few more test cases. Fix getting more than one error for invalid assignment. Files: src/evalvars.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim Patch 8.2.4396 (after 8.2.4395) Problem: Python3 test fails. Solution: Remove "let". Files: src/testdir/test_vim9_func.vim Patch 8.2.4397 Problem: Crash when using many composing characters in error message. Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). Files: src/testing.c, src/testdir/test_assert.vim Patch 8.2.4398 Problem: Some command completion functions are too long. Solution: Refactor code into separate functions. Add a few more tests. (Yegappan Lakshmanan, closes #9785) Files: src/cmdexpand.c, src/ex_getln.c, src/usercmd.c, src/proto/usercmd.pro, src/testdir/test_cmdline.vim Patch 8.2.4399 Problem: Crash after ml_get error. Solution: When returning "???" flush the line and set ml_line_lnum. Files: src/memline.c Patch 8.2.4400 (after 8.2.4394) Problem: MS-Windows: cannot use the mouse in the console with VIMDLL. Solution: use add_char2buf() instead of fix_input_buffer(). (closes #9784, closes #9769) Files: src/getchar.c Patch 8.2.4401 Problem: Map listing does not clear the rest of the command line. Solution: Call msg_clear_eos(). (closes #5623, closes #5962) Files: src/map.c, src/testdir/test_mapping.vim, src/testdir/dumps/Test_map_list_1.dump Patch 8.2.4402 Problem: Missing parenthesis may cause unexpected problems. Solution: Add more parenthesis is macros. (closes #9788) Files: src/autocmd.c, src/charset.c, src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/fileio.c, src/fold.c, src/getchar.c, src/highlight.c, src/memline.c, src/normal.c, src/quickfix.c, src/regexp.c, src/search.c, src/sha256.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/window.c Patch 8.2.4403 Problem: ml_get error with nested folds and deleting lines. Solution: Correct the last line number before calling hasFoldingWin(). Files: src/change.c Patch 8.2.4404 Problem: Vim9: some code not covered by tests. Solution: Add a few specific test cases. Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim Patch 8.2.4405 Problem: Compiler warning for unused variable without the +folding feature. (Tony Mechelynck) Solution: Add #ifdef. Files: src/change.c Patch 8.2.4406 Problem: Expand functions use confusing argument names. Solution: Rename "file" to "match". Refactor some completion code. Add a few more tests. (Yegappan Lakshmanan, closes #9790) Files: src/cmdexpand.c, src/testdir/test_usercommands.vim Patch 8.2.4407 Problem: Vim9: some code not covered by tests. Solution: Add more tests. Avoid giving two errors. Remove dead code. Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim Patch 8.2.4408 Problem: Vim9: some code not covered by tests. Solution: Add a few more tests. Correct error message. Allow unlet on dict with a number key. Files: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.4409 Problem: Vim9: some code not covered by tests. Solution: Add a few more tests. Fix reported line number. Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4410 Problem: Vim9: some code not covered by tests. Solution: Add a few more tests. Remove dead code. Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.4411 Problem: Bicep files are not recognized. Solution: Match *.bicep files. (Dundar Goc, closes #9791) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4412 Problem: Translation cleanup script does not remove empty lines at end. Solution: Remove empty lines at the end. (Ken Takata, closes #9794) Files: src/po/cleanup.vim Patch 8.2.4413 Problem: Vim9: Coverity warns for using NULL pointer. Solution: Give an internal error when funcref function can't be found. Files: src/vim9execute.c Patch 8.2.4414 Problem: Solidity files are not recognized. Solution: Add the *.sol pattern. (Dundar Goc, closes #9792) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4415 Problem: Function argument name conflicts with C++ keyword. Solution: Rename the argument. Files: src/usercmd.c, src/proto/usercmd.pro Patch 8.2.4416 Problem: Vim9: using a script-local function requires using "s:" when setting 'completefunc'. Solution: Do not require "s:" in Vim9 script. (closes #9796) Files: runtime/doc/options.txt, src/userfunc.c, src/testdir/test_ins_complete.vim Patch 8.2.4417 (after 8.2.4416) Problem: Using NULL pointer. Solution: Set offset after checking for NULL pointer. Files: src/userfunc.c Patch 8.2.4418 Problem: Crash when using special multi-byte character. Solution: Don't use isalpha() for an arbitrary character. Files: src/charset.c, src/proto/charset.pro, src/filepath.c, src/testdir/test_autochdir.vim Patch 8.2.4419 Problem: Illegal memory access when using exactly 20 highlights. Solution: Add one more item in the array. (Brandon Richardson, closes #9800) Files: src/buffer.c, src/testdir/test_tabline.vim Patch 8.2.4420 Problem: Menu translations are inconsistent. Solution: Add a Makefile to convert between encodings. (Ada (Haowen) Yu, closes #9801) Files: runtime/lang/Makefile, runtime/lang/menu_af_af.latin1.vim, runtime/lang/menu_ca_es.latin1.vim, runtime/lang/menu_chinese_gb.936.vim, runtime/lang/menu_chinese_taiwan.950.vim, runtime/lang/menu_cs_cz.iso_8859-2.vim, runtime/lang/menu_cs_cz.utf-8.vim, runtime/lang/menu_czech_czech_republic.1250.vim, runtime/lang/menu_czech_czech_republic.ascii.vim, runtime/lang/menu_da.utf-8.vim, runtime/lang/menu_de_de.latin1.vim, runtime/lang/menu_eo.utf-8.vim, runtime/lang/menu_es_es.latin1.vim, runtime/lang/menu_fi_fi.latin1.vim, runtime/lang/menu_fr_fr.latin1.vim, runtime/lang/menu_hu_hu.iso_8859-2.vim, runtime/lang/menu_hu_hu.utf-8.vim, runtime/lang/menu_is_is.latin1.vim, runtime/lang/menu_it_it.latin1.vim, runtime/lang/menu_ja_jp.euc-jp.vim, runtime/lang/menu_ja_jp.utf-8.vim, runtime/lang/menu_japanese_japan.932.vim, runtime/lang/menu_ko_kr.euckr.vim, runtime/lang/menu_ko_kr.utf-8.vim, runtime/lang/menu_nl_nl.latin1.vim, runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pl_pl.iso_8859-2.vim, runtime/lang/menu_pl_pl.utf-8.vim, runtime/lang/menu_polish_poland.1250.vim, runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim, runtime/lang/menu_ru.utf-8.vim, runtime/lang/menu_ru_ru.koi8-r.vim, runtime/lang/menu_ru_ru.utf-8.vim, runtime/lang/menu_ru_ru.vim, runtime/lang/menu_sk_sk.iso_8859-2.vim, runtime/lang/menu_sl_si.cp1250.vim, runtime/lang/menu_sl_si.latin2.vim, runtime/lang/menu_sl_si.utf-8.vim, runtime/lang/menu_slovak_slovak_republic.1250.vim, runtime/lang/menu_sr_rs.ascii.vim, runtime/lang/menu_sr_rs.iso_8859-2.vim, runtime/lang/menu_sr_rs.iso_8859-5.vim, runtime/lang/menu_sr_rs.utf-8.vim, runtime/lang/menu_sv_se.latin1.vim, runtime/lang/menu_tr_tr.cp1254.vim, runtime/lang/menu_tr_tr.iso_8859-9.vim, runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_uk_ua.cp1251.vim, runtime/lang/menu_uk_ua.koi8-u.vim, runtime/lang/menu_uk_ua.utf-8.vim, runtime/lang/menu_vi_vn.vim, runtime/lang/menu_zh_cn.utf-8.vim, runtime/lang/menu_zh_tw.utf-8.vim Patch 8.2.4421 Problem: Some installed files and directories have wrong permissions. Solution: Adjust the Makefile and shell to set permissions. (closes #9793) Files: src/Makefile, src/installman.sh Patch 8.2.4422 Problem: Autochdir test fails on MS-Windows. Solution: Expect another error on MS-Windows. Files: src/testdir/test_autochdir.vim Patch 8.2.4423 Problem: "make nvcmdidxs" fails. Solution: Use "-S" instead of "-u" to source the script. Files: src/Makefile Patch 8.2.4424 Problem: ".gts" and ".gjs" files are not recognized. Solution: Recognize Glimmer flavored typescript and javascript. (closes #9799) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4425 Problem: map() function does not check function arguments at compile time. Solution: Give an error if the arguments of a map() function are wrong. Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim Patch 8.2.4426 Problem: map() function on string and blob does not check argument types at compile time. Solution: Check string and blob argument types. Support "0z1234->func()". Files: src/vim9compile.c, src/evalfunc.c, src/ex_docmd.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4427 Problem: getchar() may return modifiers if no character is available. Solution: Do not process modifiers when there is no character. (closes #9806) Files: src/getchar.c, src/testdir/test_functions.vim Patch 8.2.4428 Problem: Crash when switching tabpage while in the cmdline window. Solution: Disallow switching tabpage when in the cmdline window. Files: src/window.c, src/proto/window.pro, src/evalvars.c, src/evalvars.c, src/usercmd.c Patch 8.2.4429 Problem: Using script-local function from the wrong script when using a partial. (Yegappan Lakshmanan) 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 warns 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 completion 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 substitute 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 configurable. 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 modifier ":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_termcodes.vim Patch 8.2.4552 Problem: In a :def function "put = expr" does not work. Solution: Skip over white space. (closes #9936) Files: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4553 Problem: Linear tag search is a bit slow. Solution: Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937) Files: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.4554 Problem: Vim9: using null values not sufficiently tested. Solution: Add more tests. Fix uncovered problem. Files: src/vim9type.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.4555 Problem: getmousepos() returns the wrong column. (Ernie Rael) Solution: Limit to the text size, not the number of bytes. Files: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4556 Problem: Test fails without the +job or +channel feature. (Dominique Pellé) Solution: Adjust #ifdefs. Pass on skip flag. (closes #9942) Files: src/eval.c, src/vim9compile.c Patch 8.2.4557 Problem: Confusing comment about 'cursorlineopt'. Solution: Adjust comment. (closes #9939) Add parenthesis around logical OR. Files: src/drawline.c Patch 8.2.4558 Problem: Motif: using default colors does not work as expected. Solution: Do not try to store the default colors, use the resources. (closes #9933) Files: src/gui_motif.c, src/gui.h Patch 8.2.4559 (after 8.24555) Problem: getmousepos() returns the screen column. (Ernie Rael) Solution: Return the text column, as documented. Files: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4560 Problem: Suspending with CTRL-Z does not work on DragonFlyBSD. Solution: Adjust #ifdef. (Ozaki Kiichi, closes #9943) Files: src/os_unix.c Patch 8.2.4561 Problem: Build failure with some combination of features. (John Marriott) Solution: Adjust #ifdef. Files: src/mouse.c Patch 8.2.4562 Problem: Linear tag search is not optimal. Solution: Improve linear tag search performance. (Yegappan Lakshmanan, closes #9944) Files: src/tag.c Patch 8.2.4563 Problem: "z=" in Visual mode may go beyond the end of the line. Solution: Adjust "badlen". Files: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4564 Problem: Running test leaves file behind. (Dominique Pellé) Solution: Run the profiling in a separate Vim instance. (closes #9952) Files: src/testdir/test_vim9_script.vim Patch 8.2.4565 Problem: No command line completion for :breakadd and :breakdel. Solution: Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan, closes #9950) Files: runtime/doc/builtin.txt, src/cmdexpand.c, src/spellsuggest.c, src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/test_writefile.vim Patch 8.2.4566 Problem: Check for existing buffer in session file does not work for files in the home directory. Solution: Use fnamemodify(). (James Cherti, closes #9945) Add a test. Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4567 Problem: Bracketed paste doesn't work well in Visual linewise mode. Solution: Handle linewise Visual mode differently. (closes #9947) Files: src/normal.c, src/testdir/test_paste.vim Patch 8.2.4568 Problem: getmousepos() does not compute the column below the last line. Solution: Also compute the column when the mouse is below the last line. (Sean Dewar, closes #9946) Files: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4569 Problem: Coverity warning for not using a return value. Solution: Add "(void)". Files: src/popupwin.c Patch 8.2.4570 Problem: No command line completion for :profile and :profdel. Solution: Implement completion. (Yegappan Lakshmanan, closes #9955) Files: src/cmdexpand.c, src/profiler.c, src/testdir/test_cmdline.vim, src/testdir/test_profile.vim Patch 8.2.4571 Problem: Not all gdb files are recognized. Solution: Add a few more patterns for gdb. (Jade Lovelace, closes #9956) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4572 Problem: Vim9: return type "any" is sometimes changed to first returned type. (Virginia Senioria) Solution: Do not change the return type if declared as "any". (closes #9949) Files: src/vim9cmds.c, src/testdir/test_vim9_func.vim Patch 8.2.4573 Problem: A nested function (closure) is compiled for debugging without context. Solution: Check if a nested function is marked for debugging before compiling it. Give an error when trying to compile a closure without its context. (closes #9951) Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/vim9expr.c, src/errors.h Patch 8.2.4574 Problem: Vim9: test for profiling fails. Solution: Mark function for profiling earlier to avoid E1271. Files: src/testdir/test_vim9_script.vim Patch 8.2.4575 Problem: Vim9: test for profiling still fails. Solution: Update flags for profiling and breakpoints when obtaining the compile type. Do not set the FC_CLOSURE flag for a toplevel function. Files: src/vim.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/vim9.h Patch 8.2.4576 Problem: Vim9: error for comparing with null can be annoying. Solution: Allow comparing anything with null. (closes #9948) Files: src/vim9instr.c, src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.4577 Problem: Message test is flaky. (Elimar Riesebieter) Solution: Trigger the autocommand event only after startup is finished. Files: src/testdir/test_messages.vim Patch 8.2.4578 Problem: No warning when an autoload script for completion function has an error. Solution: Do not ignore errors when a function name is given with a dot or '#' character. (closes #9958) Files: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.4579 Problem: Cannot use page-up and page-down in the command line completion popup menu. Solution: Check for to page-up and page-down keys. (Yegappan Lakshmanan, closes #9960) Files: src/cmdexpand.c, src/ex_getln.c, src/spellsuggest.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_42.dump, src/testdir/dumps/Test_wildmenu_pum_43.dump, src/testdir/dumps/Test_wildmenu_pum_44.dump, src/testdir/dumps/Test_wildmenu_pum_45.dump, src/testdir/dumps/Test_wildmenu_pum_46.dump, src/testdir/dumps/Test_wildmenu_pum_47.dump, src/testdir/dumps/Test_wildmenu_pum_48.dump, src/testdir/dumps/Test_wildmenu_pum_49.dump, src/testdir/dumps/Test_wildmenu_pum_50.dump Patch 8.2.4580 Problem: Vim9: incorrect error for shadowing variable. Solution: Do not pass the context when compiling a referenced function. Files: src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4581 Problem: Null types not fully tested. Solution: Add some more tests using null types. Files: src/testdir/test_vim9_expr.vim Patch 8.2.4582 Problem: Useless code handling a type declaration. Solution: Remove the code and give an error. Files: src/eval.c, src/errors.h, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_misplaced_type.dump Patch 8.2.4583 (after 8.2.4582) Problem: Screendump test fails. Solution: Check that making a screendump is possible. Files: src/testdir/test_vim9_script.vim Patch 8.2.4584 (after 8.2.4578) Problem: Error for using autoload function in custom completion. Solution: Do not check for errors when using an autoload function. (closes #9962) Files: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.4585 Problem: Cannot use keypad page-up/down for completion menu. Solution: Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963) Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4586 Problem: Vim9: no error for using lower case name for "func" argument. (Ernie Rael) Solution: Check the name as soon as the type is known. Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4587 Problem: Vim9: double free after unpacking a list. Solution: Make a copy of the value instead of moving it. (closes #9968) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.4588 Problem: Mapping with key code after other matching mapping does not work. Solution: Change ">" to ">=". (closes #9903) Files: src/getchar.c, src/testdir/test_termcodes.vim Patch 8.2.4589 Problem: Cannot index the g: dictionary. Solution: Recognize using "g:[key]". (closes #9969) Files: src/ex_docmd.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4590 Problem: Vim9: range type check has wrong offset. Solution: Adjust offset for CHECKTYPE. Remove other type check. Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4591 Problem: Cursor line not updated when a callback moves the cursor. Solution: Check if the cursor moved. (closes #9970) Files: src/main.c, src/drawscreen.c, src/proto/drawscreen.pro, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_callback_1.dump Patch 8.2.4592 Problem: Search continues after giving E1204. Solution: Return failure after giving E1204. (closes #9972) Files: src/regexp_nfa.c Patch 8.2.4593 Problem: Unnecessary call to redraw_later(). Solution: Remove the call to redraw_later() in op_yank(). (closes #9971) Files: src/register.c Patch 8.2.4594 Problem: Need to write script to a file to be able to source them. Solution: Make ":source" use lines from the current buffer. (Yegappan Lakshmanan et al., closes #9967) Files: runtime/doc/repeat.txt, runtime/doc/todo.txt, src/alloc.c, src/digraph.c, src/eval.c, src/ex_cmds.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/testdir/test_source.vim Patch 8.2.4595 Problem: X11: using --remote-wait may keep the CPU busy. Solution: Set the timeout for select() on every call. (Jacopo Secchiero, closes #9973) Files: src/if_xcmdsrv.c Patch 8.2.4596 Problem: Installing tutor binary may fail. Solution: Fix the dependency. (Sergei Trofimovich, closes #9978) Files: src/Makefile Patch 8.2.4597 Problem: LuaV_debug() not covered by tests. Solution: Add a test. (Dominique Pellé, closes #9980) Files: src/testdir/test_lua.vim Patch 8.2.4598 Problem: Profile completion test sometimes fails. Solution: Delete the .res file before running tests. Files: src/testdir/runtest.vim Patch 8.2.4599 Problem: GTK: get assertion errors when scrolling a split window. Solution: Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982) Files: src/gui_gtk.c Patch 8.2.4600 Problem: Vim9: not enough test coverage for executing :def function. Solution: Add a few more tests. Fix inconsistencies. Files: src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4601 Problem: Vim9: not enough test coverage for executing :def function. Solution: Add a few more tests. Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4602 Problem: Vim9: not enough test coverage for executing :def function. Solution: Add a few more tests. Fix uncovered problem. Remove dead code. Files: src/vim9execute.c, src/vim9.h, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4603 Problem: Sourcing buffer lines is too complicated. Solution: Simplify the code. Make it possible to source Vim9 script lines. (Yegappan Lakshmanan, closes #9974) Files: runtime/doc/repeat.txt, src/ex_docmd.c, src/proto/scriptfile.pro, src/scriptfile.c, src/structs.h, src/testdir/test_source.vim Patch 8.2.4604 Problem: Error for redefining a script item may be confusing. Solution: Put quotes around the name. Files: src/errors.h Patch 8.2.4605 Problem: Error for arguments of remote_expr() even when the +clientserver feature is not included. Solution: Move #ifdef. Files: src/clientserver.c Patch 8.2.4606 (after 8.2.4605) Problem: Test fails because of changed error message. Solution: Update the expected error message Files: src/testdir/test_vim9_import.vim Patch 8.2.4607 Problem: Sourcing buffer lines may lead to errors for conflicts. Solution: Add the ++clear argument. (Yegappan Lakshmanan, closes #9991) Files: runtime/doc/repeat.txt, src/scriptfile.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_source.vim Patch 8.2.4608 Problem: getcompletion() does not work properly when 'wildoptions' contains "fuzzy". Solution: Do not use addstar(). (Yegappan Lakshmanan, closes #9992, closes #9986) Files: runtime/doc/builtin.txt, src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4609 Problem: :unhide does not check for failing to close a window. Solution: When closing a window fails continue with the next one. Do not try closing the autocmd window. (closes #9984) Files: src/buffer.c, src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim Patch 8.2.4610 Problem: Some conditions are always true. Solution: Remove the useless conditions. (closes #9993) Files: src/clientserver.c, src/drawline.c, src/drawscreen.c, src/ex_cmds.c, src/fileio.c, src/message.c, src/misc2.c, src/ops.c, src/sign.c, src/spell.c, src/vim9cmds.c, src/window.c Patch 8.2.4611 Problem: Typos in tests; one lua line not covered by test. Solution: Fix typos. Add test case. (Dominique Pellé, closes #9994) Files: src/testdir/test_breakindent.vim, src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim, src/testdir/test_digraph.vim, src/testdir/test_gui.vim, src/testdir/test_lua.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_signals.vim, src/testdir/test_spell.vim, src/testdir/test_statusline.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim Patch 8.2.4612 Problem: Vim9: cannot use a recursive call in a nested function. (Sergey Vlasov) Solution: Define the funcref before compiling the function. (closes #9989) Files: src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4613 Problem: Return type of swapfile_unchanged() is wrong. Solution: Use "int". (closes #10000 Yeah!) Files: src/memline.c Patch 8.2.4614 Problem: Redrawing too much when 'cursorline' is set and jumping around. Solution: Rely on win_update() to redraw the current and previous cursor line, do not mark lines as modified. (closes #9996) Files: src/drawline.c, src/drawscreen.c, src/move.c, src/proto/move.pro, src/option.c Patch 8.2.4615 Problem: Mapping with escaped bar does not work in :def function. (Sergey Vlasov) Solution: Do not remove the backslash. (closes #10002) Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/syntax.c, src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4616 Problem: Vim9: Declarations in a {} block of a user command do not use Vim9 rules if defined in a legacy script. (Yegappan Lakshmanan) Solution: Pretend the script is Vim9 script. Files: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.4617 Problem: No completion for :scriptnames. Solution: Implement :scriptnames completion. (Yegappan Lakshmanan, closes #10005) Files: runtime/doc/builtin.txt, src/cmdexpand.c, src/ex_cmds.h, src/scriptfile.c, src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/test_quickfix.vim Patch 8.2.4618 Problem: Command line completion does not recognize single letter commands. Solution: Use the condition from find_ex_command(). Files: src/ex_docmd.c Patch 8.2.4619 Problem: Mapping is cancelled when mouse moves and popup is visible. Solution: Only generate mouse moved events when a popup may use them. (closes #10004) Files: src/gui.c, src/globals.h, src/popupwin.c Patch 8.2.4620 (after 8.2.4618) Problem: Two letter substitute commands don't work. (Yegappan Lakshmanan) Solution: Invert condition. Files: src/ex_docmd.c Patch 8.2.4621 Problem: Crash when using the tabline right-click menu. Solution: Use XtPointer for XmNuserData. (closes #10009) Files: src/gui_motif.c Patch 8.2.4622 Problem: Vim9: Crash with :execute and :finish. (Sergey Vlasov) Solution: Check for NULL. (closes #10011) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4623 Problem: Coverity warns for using uninitialized field. Solution: Initialize the field to zero. Files: src/ex_docmd.c Patch 8.2.4624 Problem: Old Coverity warning for resource leak. Solution: Close the file if memory allocation fails. Files: src/diff.c Patch 8.2.4625 Problem: Old Coverity warning for resource leak. Solution: Call FreeWild() if expanding matches did not fail. Files: src/help.c Patch 8.2.4626 Problem: Visual area not fully updated when removing sign in Visual mode while scrolling. Solution: Adjust check for topline. (closes #10017) Files: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_scroll_update_visual.dump Patch 8.2.4627 Problem: flatten() does not use maxdepth correctly. Solution: Use a recursive implementation. (closes #10020) Files: src/list.c, src/testdir/test_flatten.vim Patch 8.2.4628 Problem: Not enough testing for 2/3 letter substitute commands. Solution: Add more tests. (Yegappan Lakshmanan, closes #10019) Files: src/testdir/test_cmdline.vim, src/testdir/test_substitute.vim Patch 8.2.4629 Problem: flattennew() makes a deep copy unnecessarily. Solution: Use a shallow copy. (issue #10012) Files: src/list.c Patch 8.2.4630 Problem: 'cursorline' not always updated with 'cursorlineopt' is "screenline". Solution: Call check_redraw_cursorline() more often. (closes #10013) Files: src/normal.c, src/edit.c, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_screenline_1.dump, src/testdir/dumps/Test_cursorline_screenline_2.dump Patch 8.2.4631 Problem: Crash when switching window in BufWipeout autocommand. Solution: Put any buffer in the window to avoid it being NULL. (closes #10024) Files: src/window.c, src/buffer.c, src/testdir/test_autocmd.vim Patch 8.2.4632 Problem: Using freed memory in flatten(). Solution: Clear typval after recursing into list. Files: src/list.c Patch 8.2.4633 Problem: Visual range does not work before command modifiers. Solution: Move Visual range to after command modifiers. Files: src/ex_docmd.c, src/testdir/test_source.vim Patch 8.2.4634 Problem: Vim9: cannot initialize a variable to null_list. Solution: Give negative count to NEWLIST. (closes #10027) Also fix inconsistencies in comparing with null values. Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9.h, src/vim9compile.c, src/vim9expr.c, src/vim9execute.c, src/evalvars.c, src/typval.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4635 (after 8.2.4634) Problem: Tests using null list or dict fail. Solution: Only use the new rules for Vim9 script. Files: src/evalvars.c Patch 8.2.4636 (after 8.2.4633) Problem: Not using Visual range. Solution: Put the command pointer back to the range. Files: src/ex_docmd.c Patch 8.2.4637 Problem: Warning for using uninitialized variable. (Tony Mechelynck) Solution: Initialize it. Files: src/ex_docmd.c Patch 8.2.4638 Problem: Superfluous check if a redraw is needed for 'cursorline'. Solution: Remove check_redraw_cursorline(). (closes #10030, closes #10029) Files: src/drawscreen.c, src/proto/drawscreen.pro, src/edit.c, src/main.c, src/normal.c, src/move.c, src/testdir/dumps/Test_cursorcolumn_callback_1.dump, src/testdir/dumps/Test_relativenumber_callback_1.dump, src/testdir/test_highlight.vim, src/testdir/test_number.vim Patch 8.2.4639 Problem: Not sufficient parenthesis in preprocessor macros. Solution: Add more parenthesis. (closes #10031) Files: src/globals.h, src/gui.h, src/if_py_both.h, src/macros.h, src/option.h, src/regexp.h, src/spell.h, src/structs.h, src/vim.h, src/vim9.h Patch 8.2.4640 Problem: Some boolean options use "long" instead of "int". Solution: Adjust the type. (James McCoy, closes #10033) Files: src/option.h Patch 8.2.4641 Problem: May mark the wrong window for redrawing. Solution: Use redraw_win_later(). (closes #10032) Files: src/move.c Patch 8.2.4642 Problem: Vim9: in :def function script var cannot be null. Solution: Only initialize a script variable when not set to a null value. (closes #10034) Files: src/vim9execute.c, src/vim9type.c, src/globals.h, src/evalvars.c, src/vim.h, src/vim9script.c, src/testdir/test_vim9_expr.vim Patch 8.2.4643 Problem: Vim9: variable may be locked unintentionally. Solution: Clear "v_lock". (closes #10036) Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4644 Problem: Redrawing too often when 'relativenumber' is set. Solution: Only redraw when the cursor line changed. (Lewis Russell, closes #10040) Files: src/change.c, src/drawscreen.c, src/structs.h Patch 8.2.4645 Problem: 'shortmess' changed when session does not store options. Solution: Save and restore 'shortmess' if needed. (James Cherti, closes #10037) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4646 Problem: Using buffer line after it has been freed in old regexp engine. Solution: After getting mark get the line again. Files: src/regexp_bt.c, src/testdir/test_regexp_latin.vim Patch 8.2.4647 Problem: "source" can read past end of copied line. Solution: Add a terminating NUL. Files: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.4648 Problem: Handling LSP messages is a bit slow. Solution: Included support for LSP messages. (Yegappan Lakshmanan, closes #10025) Files: runtime/doc/channel.txt, src/channel.c, src/job.c, src/json.c, src/proto/json.pro, src/structs.h, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4649 Problem: Various formatting problems. Solution: Improve the code formatting. Files: src/mark.c, src/quickfix.c, src/regexp_nfa.c, src/register.c, src/testdir/test_filechanged.vim, src/gui_athena.c, src/gui_motif.c, src/os_unix.c Patch 8.2.4650 Problem: "import autoload" only works with using 'runtimepath'. Solution: Also support a relative and absolute file name. Files: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4651 (after 8.2.4650) Problem: Test fails because path differs. Solution: Only compare the tail of the path. Files: src/testdir/test_vim9_disassemble.vim Patch 8.2.4652 (after 8.2.4650) Problem: Leaking memory if assignment fails. Solution: Clear assigned value on failure. Files: src/vim9execute.c Patch 8.2.4653 Problem: "import autoload" does not check the file name. Solution: Give an error if the file is not readable. (closes #10049) Files: src/filepath.c, src/proto/filepath.pro, src/errors.h, src/ex_cmds.c, src/ex_docmd.c, src/spellfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4654 (after 8.2.4653) Problem: Missing changes for import check. Solution: Add missing changes. Files: src/vim9script.c Patch 8.2.4655 Problem: Command line completion popup menu positioned wrong when using a terminal window. Solution: Position the popup menu differently when editing the command line. (Yegappan Lakshmanan, closes #10050, closes #10035) Files: src/popupmenu.c, src/testdir/test_cmdline.vim, src/testdir/test_terminal.vim, src/testdir/dumps/Test_wildmenu_pum_term_01.dump Patch 8.2.4656 Problem: Vim9: can't use items from "import autoload" with autoload directory name. Solution: Let sn_autoload_prefix overrule sn_import_autoload. (closes #10054) Files: src/structs.h, src/vim9instr.c, src/vim9expr.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4657 Problem: Errors for functions are sometimes hard to read. Solution: Use printable_func_name() in more places. Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9expr.c, src/eval.c, src/vim9instr.c, src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.4658 Problem: Org-mode files are not recognized. Solution: Add patterns to recognize "org" files. (closes #10046) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4659 Problem: Invalid memory access when using printable function name. Solution: Adjust copied name length. Files: src/userfunc.c Patch 8.2.4660 Problem: Cursorcolumn is sometimes not correct. Solution: Recompute the cursor column when entering Insert mode and the cursor is on a character wider than a screen cell. (closes #10057) Files: src/edit.c, src/testdir/test_highlight.vim, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump Patch 8.2.4661 Problem: Coverity warning for using uninitialized variable. Solution: Initialize variable to NULL. Files: src/vim9expr.c Patch 8.2.4662 Problem: No error for using out of range list index. Solution: Check list index at script level like in compiled function. (closes #10051) Files: src/vim.h, src/evalvars.c, src/list.c, src/proto/list.pro, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4663 Problem: Occasional crash when running the GUI tests. Solution: Check that the line index is not too high. (closes #8681) Files: src/screen.c Patch 8.2.4664 Problem: Elvish files are not recognized. Solution: Recognize .elv files. (Bruno Roque, closes #10058) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4665 Problem: Popup with "minwidth" and scrollbar not updated properly. Solution: Adjust the computation if the window width. (closes #10061) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_previewpopup_4.dump, src/testdir/dumps/Test_popupwin_previewpopup_5.dump, src/testdir/dumps/Test_popupwin_previewpopup_7.dump, src/testdir/dumps/Test_popupwin_previewpopup_8.dump, src/testdir/dumps/Test_popupwin_previewpopup_9.dump, src/testdir/dumps/Test_popupwin_previewpopup_10.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_1.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_2.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_3.dump Patch 8.2.4666 Problem: Vim9: assignment not recognized in skipped block. Solution: When skipping assume identifier exists. (closes #10059) Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.4667 Problem: expandcmd() fails on an error. Solution: On failure return the command unmodified. (Yegappan Lakshmanan, closes #10063) Files: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_expand.vim Patch 8.2.4668 Problem: Buffer allocation failures insufficiently tested. Solution: Add tests for memory allocation failures. (Yegappan Lakshmanan, closes #10064) Files: src/alloc.h, src/buffer.c, src/popupwin.c, src/window.c, src/testdir/test_buffer.vim, src/testdir/test_swap.vim Patch 8.2.4669 Problem: In compiled code len('string') is not inlined. Solution: Compute the length at compile time if possible. (closes #10065) Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9expr.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.4670 Problem: Memory allocation failures for new tab page not tested. Solution: Add tests with failing memory allocation. (Yegappan Lakshmanan, closes #10067) Files: src/alloc.h, src/blob.c, src/buffer.c, src/window.c, src/testdir/test_blob.vim, src/testdir/test_buffer.vim, src/testdir/test_tabpage.vim, src/testdir/test_window_cmd.vim Patch 8.2.4671 Problem: 'wildignorecase' is sometimes not used for glob(). Solution: Also use 'wildignorecase' when there are no wildcards. (closes #10066, closes #8350) Files: src/filepath.c, src/testdir/test_functions.vim Patch 8.2.4672 Problem: Using :normal with Ex mode may make :substitute hang. Solution: When getting an empty line behave like 'q' was typed. (closes #10070) Files: src/ex_cmds.c, src/testdir/test_normal.vim Patch 8.2.4673 Problem: Redrawing a vertically split window is slow when using CTRL-F and CTRL-B. Solution: When deciding on USE_REDRAW bail out if scrolling more than three lines. (issue #8002) Files: src/screen.c Patch 8.2.4674 Problem: Cannot force getting MouseMove events. Solution: Add the 'mousemoveevent' option with implementation for the GUI. (Ernie Rael, closes #10044) Files: runtime/doc/gui.txt, runtime/doc/options.txt, runtime/doc/testing.txt, src/gui.c, src/option.h, src/optiondefs.h, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4675 Problem: No error for missing expression after :elseif. (Ernie Rael) Solution: Check for missing expression. (closes #10068) Files: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4676 (after 8.2.4675) Problem: Test fails with different error. Solution: Add argument to :elseif. Files: src/testdir/test_vimscript.vim Patch 8.2.4677 Problem: The Athena GUI support is outdated. Solution: Remove the Athena GUI code. Files: Filelist, src/Makefile, src/proto.h, src/clipboard.c, src/gui_athena.c, src/proto/gui_athena.pro, src/gui_at_sb.c, src/gui_at_sb.h, src/gui_at_fs.c, src/gui_motif.c, src/evalfunc.c, src/gui.c, src/gui_beval.c, src/gui_x11.c, src/if_mzsch.c, src/main.c, src/menu.c, src/mouse.c, src/version.c, src/feature.h, src/gui.h, src/structs.h, src/vim.h, src/testdir/gui_init.vim, src/testdir/setup_gui.vim, src/testdir/test_clientserver.vim, src/testdir/test_edit.vim, src/testdir/test_gui.vim, src/testdir/test_highlight.vim, src/testdir/test_quotestar.vim, src/testdir/test_startup.vim, runtime/doc/gui.txt, runtime/doc/gui_x11.txt Patch 8.2.4678 Problem: Vim9: not all code is tested. Solution: Add a few more tests. Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4679 Problem: Cannot have expandcmd() give an error message for mistakes. Solution: Add an optional argument to give errors. Fix memory leak when expanding files fails. (Yegappan Lakshmanan, closes #10071) Files: runtime/doc/builtin.txt, src/evalfunc.c, src/filepath.c, src/testdir/test_expand.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4680 Problem: Build failure without +postscript. Solution: Use another error message. Files: src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4681 Problem: Build fails with a combination of features. Solution: Remove #ifdef for alloc_clear_id(). (John Marriott) Files: src/alloc.c Patch 8.2.4682 Problem: Vim9: can use :unlockvar for const variable. (Ernie Rael) Solution: Check whether the variable is a const. Files: src/ex_docmd.c, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/userfunc.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4683 Problem: Verbose check with dict_find() to see if a key is present. Solution: Add dict_has_key(). (Yegappan Lakshmanan, closes #10074) Files: src/channel.c, src/dict.c, src/evalwindow.c, src/filepath.c, src/highlight.c, src/json.c, src/match.c, src/popupwin.c, src/proto/dict.pro, src/quickfix.c, src/search.c, src/sign.c, src/tag.c, src/terminal.c, src/testing.c, src/textprop.c, src/time.c Patch 8.2.4684 Problem: Cannot open a channel on a Unix domain socket. Solution: Add Unix domain socket support. (closes #10062) Files: runtime/doc/channel.txt, src/channel.c, src/testdir/check.vim, src/testdir/shared.vim, src/testdir/test_channel.py, src/testdir/test_channel.vim, src/testdir/test_channel_unix.py, src/testdir/test_cmdline.vim Patch 8.2.4685 Problem: When a swap file is found for a popup there is no dialog and the buffer is loaded anyway. Solution: Silently load the buffer read-only. (closes #10073) Files: runtime/doc/popup.txt, src/memline.c, src/popupwin.c, src/vim.h, src/buffer.c, src/testdir/test_popupwin.vim Patch 8.2.4686 Problem: Configure doesn't find the Motif library with Cygwin. Solution: Check for libXm.dll.a. (Kelvin Lee, closes #10077) Files: src/configure.ac, src/auto/configure Patch 8.2.4687 Problem: "vimgrep /\%v/ *" may cause a crash. Solution: When compiling the pattern with the old engine fails, restore the regprog of the new engine instead of leaving it NULL. (closes #10079) Files: src/regexp.c Patch 8.2.4688 Problem: New regexp engine does not give an error for "\%v". Solution: Check for a value argument. (issue #10079) Files: src/regexp_nfa.c, src/errors.h, src/regexp_bt.c, src/testdir/test_regexp_latin.vim Patch 8.2.4689 Problem: Using <Cmd> in a mapping does not work for mouse keys in Insert mode. (Sergey Vlasov) Solution: When reading the <Cmd> argument do not use the stuff buffer. (closes #10080) Files: src/getchar.c Patch 8.2.4690 Problem: Channel tests fail on MS-Windows. Solution: Check if the AF_UNIX attribute exists. (closes #10083) Files: src/testdir/test_channel.py, src/testdir/test_channel_unix.py Patch 8.2.4691 (after 8.2.4689) Problem: Solution for <Cmd> in a mapping causes trouble. Solution: Use another solution: put back CTRL-O after reading the <Cmd> sequence. Files: src/getchar.c Patch 8.2.4692 Problem: No test for what 8.2.4691 fixes. Solution: Add a test. Use a more generic solution. (closes #10090) Files: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim Patch 8.2.4693 (after 8.2.4688) Problem: new regexp does not accept pattern "\%>0v". Solution: Do accept digit zero. Files: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.4694 Problem: Avoidance of #elif causes more preproc nesting. Solution: Use #elif where it is useful. (Ozaki Kiichi, closes #10081) Files: src/option.c, src/optiondefs.h, src/optionstr.c, src/version.c Patch 8.2.4695 Problem: JSON encoding could be faster. Solution: Optimize encoding JSON strings. (closes #10086) Files: src/json.c, src/testdir/test_json.vim Patch 8.2.4696 Problem: delete() with "rf" argument does not report a failure. Solution: Return -1 if the directory could not be removed. (closes #10078) Files: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.4697 Problem: Vim9: crash when adding a duplicate key to a dictionary. Solution: Clear the stack item when it has been moved into the dictionary. (closes #10087) Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.4698 Problem: Vim9: script variable has no flag that it was set. Solution: Add a flag that it was set, to avoid giving it a value when used. (closes #10088) Files: src/structs.h, src/vim9script.c, src/vim9execute.c, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4699 Problem: Hard to reproduce hang when reading from a channel. Solution: Check for readahead before starting to wait. (closes #10093, closes #7781, closes #6364) Files: src/channel.c Patch 8.2.4700 Problem: Buffer remains active if a WinClosed event throws an exception. Solution: Ignore aborting() when closing the buffer. (closes #10097) Files: src/window.c, src/testdir/test_autocmd.vim Patch 8.2.4701 Problem: Kuka Robot Language files not recognized. Solution: Recognize *.src and *.dat files. (Patrick Meiser-Knosowski, closes #10096) Files: runtime/filetype.vim, src/testdir/test_filetype.vim, runtime/autoload/dist/ft.vim Patch 8.2.4702 Problem: C++ scope labels are hard-coded. Solution: Add 'cinscopedecls' to define the labels. (Rom Praschan, closes #10109) Files: runtime/doc/indent.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/buffer.c, src/cindent.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/structs.h, src/testdir/test_cindent.vim Patch 8.2.4703 (after 8.2.4702) Problem: Memory leak in handling 'cinscopedecls'. Solution: Free the memory before returning. Files: src/cindent.c Patch 8.2.4704 Problem: Using "else" after return or break increases indent. Solution: Remove "else" and reduce indent. (Goc Dundar, closes #10099) Files: src/fileio.c, src/memline.c, src/option.c, src/syntax.c Patch 8.2.4705 Problem: reg_executing may not be cleared. Solution: Reset reg_executing later. (closes #10111, closes #10110) Files: src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h, src/testdir/test_registers.vim Patch 8.2.4706 Problem: Buffer remains active if a WinClosed event throws an exception when there are multiple tabpages. Solution: Ignore aborting() when closing the buffer. (closes #10101) Files: src/window.c, src/testdir/test_autocmd.vim Patch 8.2.4707 Problem: Redrawing could be a bit more efficient. Solution: Optimize redrawing. (closes #10105) Files: src/change.c, src/edit.c, src/testdir/test_highlight.vim, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_3.dump Patch 8.2.4708 Problem: PHP test files are not recognized. Solution: Add the *.phpt pattern. (Julien Voisin, closes #10112) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4709 Problem: After :redraw the statusline highlight might be used. Solution: Clear the screen attribute after redrawing the screen. (closes #10108) Files: src/ex_docmd.c Patch 8.2.4710 Problem: Smart indenting does not work after completion. Solution: Set "can_si". (Christian Brabandt, closes #10113, closes #558) Files: src/edit.c, src/testdir/test_ins_complete.vim Patch 8.2.4711 Problem: When 'insermode' is set :edit from <Cmd> mapping misbehaves. Solution: Don't set "need_start_insertmode" when already in Insert mode. (closes #10116) Files: src/ex_cmds.c, src/testdir/test_edit.vim Patch 8.2.4712 Problem: Only get profiling information after exiting. Solution: Add "profile dump" and "profile stop". (Marco Hinz, Yegappan Lakshmanan, closes #10107) Files: runtime/doc/repeat.txt, src/profiler.c, src/testdir/test_profile.vim Patch 8.2.4713 Problem: Plugins cannot track text scrolling. Solution: Add the WinScrolled event. (closes #10102) Files: runtime/doc/autocmd.txt, src/autocmd.c, src/proto/autocmd.pro, src/edit.c, src/gui.c, src/main.c, src/structs.h, src/vim.h, src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim Patch 8.2.4714 Problem: Using g:filetype_dat and g:filetype_src not tested. Solution: Add a test. (Patrick Meiser-Knosowski, closes #10117) Files: src/testdir/test_filetype.vim Patch 8.2.4715 Problem: Vagrantfile not recognized. Solution: Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4716 Problem: Memory allocation failure not tested when defining a function. Solution: Add a test. (Yegappan Lakshmanan, closes #10127) Files: src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim Patch 8.2.4717 Problem: For TextYankPost v:event does not contain information about the operation being inclusive or not. Solution: Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan, closes #10125) Files: runtime/doc/autocmd.txt, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.4718 Problem: @@@ in the last line sometimes drawn in the wrong place. Solution: Make sure the column is valid. (closes #10130) Files: src/drawscreen.c, src/screen.c, src/testdir/test_display.vim src/testdir/dumps/Test_display_lastline_1.dump, src/testdir/dumps/Test_display_lastline_2.dump, src/testdir/dumps/Test_display_lastline_3.dump, src/testdir/dumps/Test_display_lastline_4.dump Patch 8.2.4719 Problem: ">" marker sometimes not displayed in the jumplist. Solution: If the buffer no longer exists show "-invalid-". (Christian Brabandt, closes #10131, closes #10100) Files: runtime/doc/motion.txt, src/mark.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_jumplist.vim, src/testdir/test_jumps.vim Patch 8.2.4720 Problem: ABB Rapid files are not recognized properly. Solution: Add checks for ABB Rapid files. (Patrick Meiser-Knosowski, closes #10104) Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4721 Problem: Cooklang files are not recognized. Solution: recognize *.cook files. (Goc Dundar, closes #10120) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4722 Problem: When a recording is ended with a mapped key that key is also recorded. Solution: Remember the previous last_recorded_len. (closes #10122) Files: src/getchar.c, src/testdir/test_registers.vim Patch 8.2.4723 Problem: The ModeChanged autocmd event is inefficient. Solution: Avoid allocating memory. (closes #10134) Rename trigger_modechanged() to may_trigger_modechanged(). Files: src/misc1.c, src/proto/misc1.pro, src/edit.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/normal.c, src/terminal.c, src/autocmd.c Patch 8.2.4724 Problem: Current instance of last search pattern not easily spotted. Solution: Add CurSearch highlighting. (closes #10133) Files: runtime/doc/options.txt, runtime/doc/syntax.txt, src/highlight.c, src/match.c, src/normal.c, src/optiondefs.h, src/structs.h, src/vim.h, src/normal.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_3.dump Patch 8.2.4725 (after 8.2.4724) Problem: Unused variable in tiny build. Solution: Add #ifdef. Files: src/normal.c Patch 8.2.4726 Problem: Cannot use expand() to get the script name. Solution: Support expand('<script>'). (closes #10121) Files: runtime/doc/cmdline.txt, src/errors.h, src/ex_docmd.c, src/scriptfile.c, src/vim.h, src/testdir/test_expand.vim Patch 8.2.4727 Problem: Unused code. Solution: Remove code and add #ifdefs. (Dominique Pellé, closes #10136) Files: runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/vim9.txt, src/errors.h, src/option.c, src/search.c, src/proto/search.pro Patch 8.2.4728 Problem: No test that v:event cannot be modified. Solution: Add a test. (closes #10139) Files: src/testdir/test_autocmd.vim Patch 8.2.4729 Problem: HEEx and Surface templates do not need a separate filetype. Solution: Use Elixir for the similar filetypes. (Aaron Tinio, closes #10124) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4730 Problem: MS-Windows GUI: cannot use CTRL-/. Solution: Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141) Files: src/gui_w32.c Patch 8.2.4731 Problem: The changelist index is not remembered per buffer. Solution: Keep the changelist index per window and buffer. (closes #10135, closes #2173) Files: src/buffer.c, src/evalfunc.c, src/structs.h, src/testdir/test_changelist.vim Patch 8.2.4732 Problem: Duplicate code to free fuzzy matches. Solution: Bring back fuzmatch_str_free(). Files: src/search.c, src/proto/search.pro, src/cmdexpand.c Patch 8.2.4733 (after 8.2.4729) Problem: HEEx and Surface do need a separate filetype. Solution: Revert 8.2.4729. (closes #10147) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4734 Problem: getcharpos() may change a mark position. Solution: Copy the mark position. (closes #10148) Files: src/eval.c, src/testdir/test_cursor_func.vim Patch 8.2.4735 Problem: Quickfix tests can be a bit hard to read. Solution: Use heredoc instead of strings and line continuation. (Yegappan Lakshmanan, closes #10145) Files: src/testdir/test_quickfix.vim Patch 8.2.4736 Problem: Build problem for Cygwin with Motif. Solution: Undefine ControlMask. (Kelvin Lee, closes #10152) Files: src/mbyte.c Patch 8.2.4737 Problem: // in JavaScript string recognized as comment. Solution: Only check for linecomment if 'cindent' is set. (closes #10151) Files: src/change.c, src/testdir/test_textformat.vim Patch 8.2.4738 Problem: Esc on commandline executes command instead of abandoning it. Solution: Save and restore KeyTyped when removing the popup menu. (closes #10154) Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_1.dump, src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_2.dump Patch 8.2.4739 Problem: Accessing freed memory after WinScrolled autocmd event. Solution: Check the window pointer is still valid. (closes #10156) Remove the argument from may_trigger_winscrolled(). Files: src/window.c, src/proto/window.pro, src/edit.c, src/gui.c, src/main.c, src/testdir/test_autocmd.vim Patch 8.2.4740 Problem: When expand() fails there is no error message. Solution: When 'verbose' is set give an error message. Files: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_expand.vim Patch 8.2.4741 (after 8.2.4740) Problem: Startup test fails. Solution: Avoid an error for verbose expansion. Fix that the "0verbose" command modifier doesn't work. Files: runtime/syntax/syntax.vim, runtime/syntax/synload.vim, src/structs.h, src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.4742 Problem: There is no way to start logging very early in startup. Solution: Add the --log argument. Include the date in the start message in the log file. Avoid a duplicate message when forking. Log an executed shell command. Files: runtime/doc/starting.txt, runtime/doc/channel.txt, src/main.c, src/channel.c, src/os_unix.c, src/os_win32.c, src/testdir/test_startup.vim Patch 8.2.4743 Problem: Clang 14 is available on CI. Solution: Switch from clang 13 to 14. (closes #10157) Files: .github/workflows/ci.yml Patch 8.2.4744 Problem: A terminal window can't use the bell. Solution: Add bell support for the terminal window. (closes #10178) Files: runtime/doc/options.txt, src/gui_w32.c, src/option.h, src/optionstr.c, src/terminal.c Patch 8.2.4745 (after 8.2.4744) Problem: Using wrong flag for using bell in the terminal. Solution: Change to use BO_TERM. Files: src/terminal.c, src/misc1.c Patch 8.2.4746 Problem: Supercollider filetype not recognized. Solution: Match file extensions and check file contents to detect supercollider. (closes #10142) Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4747 Problem: No filetype override for .sys files. Solution: Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181) Files: runtime/doc/filetype.txt, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4748 Problem: Cannot use an imported function in a mapping. Solution: Recognize <SID>name.Func. Files: runtime/doc/vim9.txt, src/term.c, src/vim9execute.c, src/proto/vim9execute.pro, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4749 Problem: <script> is not expanded in autocmd context. Solution: Add the context to the pattern struct. (closes #10144) Rename AutoPatCmd to AutoPatCmd_T. Files: src/autocmd.c, src/proto/autocmd.pro, src/scriptfile.c, src/structs.h, src/testdir/test_expand.vim Patch 8.2.4750 Problem: Small pieces of dead code. Solution: Remove the dead code. (Goc Dundar, closes #10190) Rename the qftf_cb struct member to avoid confusion. Files: src/ex_cmds.c, src/misc1.c, src/optionstr.c, src/quickfix.c Patch 8.2.4751 (after 8.2.4748) Problem: Mapping <SID>name.Func does not work for script in autoload directory. Solution: Use the # form for a script in the autoload directory. (closes #10186) Files: src/term.c, src/testdir/test_vim9_import.vim Patch 8.2.4752 Problem: Wrong 'statusline' value can cause illegal memory access. Solution: Properly check the value. (closes #10192) Files: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.4753 Problem: Error from setting an option is silently ignored. Solution: Handle option value errors better. Fix uses of N_(). Files: src/option.c, src/proto/option.pro, src/optionstr.c, src/channel.c, src/crypt.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c, src/help.c, src/highlight.c, src/if_tcl.c, src/main.c, src/memline.c, src/message_test.c, src/popupmenu.c, src/quickfix.c, src/scriptfile.c, src/spell.c, src/spellfile.c, src/term.c, src/undo.c, src/vim9script.c Patch 8.2.4754 Problem: Still using cached values after unsetting some known environment variables. Solution: Take care of the side effects. (closes #10194) Files: src/evalfunc.c, src/evalvars.c, src/misc1.c, src/proto/misc1.pro, src/vim9execute.c, src/optionstr.c, src/testdir/test_environ.vim Patch 8.2.4755 Problem: Cannot use <SID>FuncRef in completion spec. Solution: Dereference a function name in another way. (closes #10197) Files: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4756 (after 8.2.4754) Problem: Build error without the +eval feature. Solution: Adjust #ifdefs. Files: src/misc1.c Patch 8.2.4757 Problem: List of libraries to suppress lsan errors is outdated. Solution: Add another library. (closes #10201) Files: src/testdir/lsan-suppress.txt Patch 8.2.4758 Problem: When using an LSP channel want to get the message ID. Solution: Have ch_sendexpr() return the ID. (Yegappan Lakshmanan, closes #10202) Files: runtime/doc/channel.txt, src/channel.c, src/evalfunc.c, src/testdir/test_channel.vim Patch 8.2.4759 Problem: CurSearch highlight does not work for multi-line match. Solution: Check cursor position before adjusting columns. (closes #10133) Files: src/structs.h, src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_3.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_4.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_5.dump Patch 8.2.4760 Problem: Using matchfuzzy() on a long list can take a while. Solution: Add a limit to the number of matches. (Yasuhiro Matsumoto, closes #10189) Files: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.4761 Problem: Documentation for using LSP messages is incomplete. Solution: Update the documentation. (Yegappan Lakshmanan, closes #10206) Files: runtime/doc/channel.txt Patch 8.2.4762 Problem: Using freed memory when using synstack() and synID() in WinEnter. Solution: Check using the syntax window. (closes #10204) Files: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.4763 Problem: Using invalid pointer with "V:" in Ex mode. Solution: Correctly handle the command being changed to "+". Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.4764 Problem: CI uses an older gcc version. Solution: Use GCC 11. (closes #10185) Files: .github/workflows/ci.yml, src/testdir/lsan-suppress.txt Patch 8.2.4765 Problem: Function matchfuzzy() sorts too many items. Solution: Only put matches in the array. (Yegappan Lakshmanan, closes #10208) Files: src/search.c Patch 8.2.4766 Problem: KRL files using "deffct" not recognized. Solution: Adjust the pattern used for matching. (Patrick Meiser-Knosowski, closes #10200) Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4767 Problem: Openscad files are not recognized. Solution: Add a filetype pattern. (Niklas Adam, closes #10199) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4768 Problem: CI: codecov upload sometimes does not work. Solution: Use action v3 instead of v2. (closes #10209) Files: .github/workflows/ci.yml Patch 8.2.4769 Problem: Build warning with UCRT. Solution: Adjust #ifdef for _wenviron. (John Marriott) Files: src/evalfunc.c Patch 8.2.4770 Problem: Cannot easily mix expression and heredoc. Solution: Support `=expr` in heredoc. (Yegappan Lakshmanan, closes #10138) Files: runtime/doc/eval.txt, src/evalvars.c, src/userfunc.c, src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4771 Problem: Coverity warns for not checking return value. Solution: Check return value of rettv_dict_alloc(). Files: src/channel.c Patch 8.2.4772 Problem: Old Coverity warning for not checking ftell() return value. Solution: Check return value of fseek() and ftell(). Files: src/misc1.c Patch 8.2.4773 Problem: Build failure without the +eval feature. Solution: Use other error message. Avoid warnings. Files: src/misc1.c, src/cindent.c, src/term.c Patch 8.2.4774 Problem: Crash when using a number for lambda name. Solution: Check the type of the lambda reference. Files: src/eval.c, src/errors.h, src/testdir/test_lambda.vim Patch 8.2.4775 Problem: SpellBad highlighting does not work in Konsole. Solution: Do not keep t_8u defined for Konsole. Redraw when t_8u is reset. (closes #10177) Files: src/term.c Patch 8.2.4776 Problem: GTK: 'lines' and 'columns' may change during startup. Solution: Ignore stale GTK resize events. (Ernie Rael, closes #10179) Files: src/gui_gtk_x11.c Patch 8.2.4777 (after 8.2.4775) Problem: Screendump tests fail because of a redraw. Solution: Do not output t_8u before receiving termresponse. Redraw only when t_8u is not reset and termresponse is received. Files: src/term.c Patch 8.2.4778 Problem: Pacman files use dosini filetype. Solution: Use conf instead. (Chaoren Lin, closes #10213) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4779 Problem: lsan suppression is too version specific. Solution: Leave out the version number. (Christian Brabandt, closes #10214) Files: src/testdir/lsan-suppress.txt Patch 8.2.4780 Problem: Parsing an LSP message fails when it is split. Solution: Collapse the received data before parsing. (Yegappan Lakshmanan, closes #10215) Files: runtime/doc/channel.txt, src/channel.c, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4781 Problem: Maxima files are not recognized. Solution: Add patterns to detect Maxima files. (Doron Behar, closes #10211) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4782 Problem: Accessing freed memory. Solution: Clear evalarg after checking for trailing characters. (issue #10218) Files: src/userfunc.c, src/testdir/test_lambda.vim Patch 8.2.4783 Problem: Coverity warns for leaking memory. Solution: Use another strategy freeing "theline". Files: src/evalvars.c Patch 8.2.4784 Problem: Lamba test with timer is flaky. Solution: Adjust sleep time on retry. Files: src/testdir/test_lambda.vim Patch 8.2.4785 Problem: Visual mode not stopped early enough if win_gotoid() goes to another buffer. (Sergey Vlasov) Solution: Stop Visual mode before jumping to another buffer. (closes #10217) Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, src/testdir/dumps/Test_win_gotoid_1.dump, src/testdir/dumps/Test_win_gotoid_2.dump, src/testdir/dumps/Test_win_gotoid_3.dump Patch 8.2.4786 (after 8.2.4785) Problem: Test for win_gotoid() in Visual mode fails on Mac. Solution: Skip the test on MacOS. Files: src/testdir/test_vim9_builtin.vim Patch 8.2.4787 Problem: prop_find() does not find the right property. Solution: Fix the scan order. (closes #10220) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.4788 Problem: Large payload for LSP message not tested. Solution: Add a test with a large LSP payload. (Yegappan Lakshmanan, closes #10223) Files: src/channel.c, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4789 Problem: The cursor may be in the in wrong place when using :redraw while editing the cmdline. Solution: When editing the command line let :redraw update the command line too. (closes #10210) Files: src/ex_docmd.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_redraw_in_autocmd_1.dump, src/testdir/dumps/Test_redraw_in_autocmd_2.dump Patch 8.2.4790 Problem: Lilypond filetype not recognized. Solution: Add patterns for lilypond. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4791 Problem: Autocmd events triggered in different order when reusing an empty buffer. Solution: Call buff_freeall() earlier. (Charlie Groves, closes #10198) Files: src/buffer.c, src/testdir/test_autocmd.vim Patch 8.2.4792 Problem: Indent operator creates an undo entry for every line. Solution: Create one undo entry for all lines. (closes #10227) Files: src/indent.c, src/testdir/test_indent.vim Patch 8.2.4793 Problem: Recognizing Maxima filetype even though it might be another. Solution: Remove *.mc and *.dem patterns from Maxima files Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4794 Problem: Compiler warning for not initialized variable. Solution: Initialize the variable. (John Marriott) Files: src/indent.c Patch 8.2.4795 Problem: 'cursorbind' scrolling depends on whether 'cursorline' is set. Solution: Always call validate_cursor(). (Christian Brabandt, closes #10230, closes #10014) Files: src/move.c, src/testdir/README.txt, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_hor_scroll_1.dump, src/testdir/dumps/Test_hor_scroll_2.dump, src/testdir/dumps/Test_hor_scroll_3.dump, src/testdir/dumps/Test_hor_scroll_4.dump Patch 8.2.4796 (after 8.2.4795) Problem: File left behind after running cursorline tests. Solution: Uncomment the line that deletes the file. Files: src/testdir/test_cursorline.vim Patch 8.2.4797 Problem: getwininfo() may get outdated values. Solution: Make sure w_botline is up-to-date. (closes #10226) Files: src/evalwindow.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.4798 Problem: t_8u option was reset even when set by the user. Solution: Only reset t_8u when using the default value. (closes #10239) Files: src/term.c Patch 8.2.4799 Problem: Popup does not use correct topline. Solution: Also add one when firstline is negative. (closes #10229) Files: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.4800 (after 8.2.4798) Problem: Missing test update for adjusted t_8u behavior. Solution: Update and extend the test. Files: src/testdir/test_termcodes.vim Patch 8.2.4801 (after 8.2.4795) Problem: Fix for cursorbind fix not fully tested. Solution: Add another test case. (Christian Brabandt, closes #10240) Files: src/testdir/test_cursorline.vim, src/testdir/dumps/Test_hor_scroll_5.dump Patch 8.2.4802 Problem: Test is not cleaned up. Solution: Make test clean up after itself. Avoid NUL. (closes #10233) Files: src/testdir/test_autocmd.vim Patch 8.2.4803 Problem: WinScrolled not always triggered when scrolling with the mouse. Solution: Add calls to may_trigger_winscrolled(). (closes #10246) Files: src/mouse.c, src/testdir/test_autocmd.vim Patch 8.2.4804 Problem: Expression in heredoc doesn't work for compiled function. Solution: Implement compiling the heredoc expressions. (Yegappan Lakshmanan, closes #10232) Files: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, src/ex_getln.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_assign.vim Patch 8.2.4805 Problem: CurSearch used for all matches in current line. Solution: Don't use the non-zero line count. (closes #10247) Files: src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump Patch 8.2.4806 Problem: A mapping using <LeftDrag> does not start Select mode. Solution: When checking for starting select mode with the mouse also do this when there is typeahead. (closes #10249) Files: src/normal.c Patch 8.2.4807 Problem: Processing key events in Win32 GUI is not ideal. Solution: Improve processing of key events. (closes #10155) Files: src/gui_w32.c Patch 8.2.4808 Problem: Unused item in engine struct. Solution: Remove "expr". Add comment with tags. Files: src/regexp.h Patch 8.2.4809 Problem: Various things not properly tested. Solution: Add various test cases. (Yegappan Lakshmanan, closes #10259) Files: src/testdir/test_blob.vim, src/testdir/test_debugger.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4810 (after 8.2.4808) Problem: Missing changes in one file. Solution: Also change the struct initializers. Files: src/regexp.c Patch 8.2.4811 (after 8.2.4807) Problem: Win32 GUI: caps lock doesn't work. Solution: Handle VK_CAPITAL. (closes #10260, closes #10258) Files: src/gui_w32.c Patch 8.2.4812 Problem: Unused struct item. Solution: Remove "lines" match_T. Simplify the code. (closes #10256) Files: src/match.c, src/structs.h Patch 8.2.4813 Problem: Pasting text while indent folding may mess up folds. Solution: Adjust the way folds are split. (Brandon Simmons, closes #10254) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4814 Problem: Possible to leave a popup window with win_gotoid(). Solution: Give an error when trying to leave a popup window with win_gotoid(). (closes #10253) Files: src/evalwindow.c, src/testdir/test_terminal3.vim Patch 8.2.4815 (after 8.2.4776) Problem: Cannot build with older GTK version. Solution: Use gtk_window_get_size() instead of gdk_window_get_width() and gdk_window_get_height(). (Ernie Rael, closes #10257) Files: src/gui_gtk_x11.c Patch 8.2.4816 Problem: Still using older codecov app in some places of CI. Solution: Use v3.1.0. (closes #10209) Files: .github/workflows/ci.yml Patch 8.2.4817 Problem: Win32 GUI: modifiers are not always used. Solution: Handle more modifiers. (closes #10269) Files: src/gui_w32.c Patch 8.2.4818 (after 8.2 4806) Problem: No test for what 8.2.4806 fixes. Solution: Add a test. (closes #10272) Files: src/testdir/test_mapping.vim Patch 8.2.4819 Problem: Unmapping simplified keys also deletes other mapping. Solution: Only unmap a mapping with m_simplified set. (closes #10270) Files: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4820 Problem: No simple programmatic way to find a specific mapping. Solution: Add getmappings(). (Ernie Rael, closes #10273) Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim Patch 8.2.4821 Problem: Crash when imported autoload script was deleted. Solution: Initialize local variable. (closes #10274) Give a more meaningful error message. Files: src/eval.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4822 Problem: Setting ufunc to NULL twice. Solution: Set ufunc to NULL in find_exported(). (closes #19275) Files: src/eval.c, src/vim9script.c Patch 8.2.4823 Problem: Concatenating more than 2 strings in a :def function is inefficient. Solution: Add a count to the CONCAT instruction. (closes #10276) Files: src/vim9.h, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/proto/vim9instr.pro, src/testdir/test_vim9_disassemble.vim Patch 8.2.4824 Problem: Expression is evaluated multiple times. Solution: Evaluate expression once and store the result. (closes #10278) Files: src/map.c Patch 8.2.4825 Problem: Can only get a list of mappings. Solution: Add the optional {abbr} argument. (Ernie Rael, closes #10277) Rename to maplist(). Rename test file. Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim, src/testdir/test_map_functions.vim, src/testdir/Make_all.mak Patch 8.2.4826 Problem: .cshtml files are not recognized. Solution: Use html filetype for .cshtml files. (Julien Voisin, closes #10212) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4827 Problem: Typo in variable name. (Gabriel Dupras) Solution: Rename the variable. Files: src/map.c Patch 8.2.4828 Problem: Fix for unmapping simplified key not fully tested. Solution: Add a test case. (closes #10292) Files: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4829 Problem: A key may be simplified to NUL. Solution: Use K_ZERO instead. Use macros instead of hard coded values. (closes #10290) Files: src/getchar.c, src/misc2.c, src/testdir/test_termcodes.vim Patch 8.2.4830 Problem: Possible endless loop if there is unused typeahead. Solution: Only loop when the typeahead changed. Files: src/channel.c Patch 8.2.4831 Problem: Crash when using maparg() and unmapping simplified keys. Solution: Do not keep a mapblock pointer. (closes #10294) Files: src/map.c, src/testdir/test_map_functions.vim Patch 8.2.4832 Problem: Passing zero instead of NULL to a pointer argument. Solution: Use NULL. (closes #10296) Files: src/getchar.c, src/term.c Patch 8.2.4833 Problem: Failure of mapping not checked for. Solution: Check return value of ins_typebuf(). (closes #10299) Files: src/getchar.c, src/term.c, src/testdir/test_termcodes.vim Patch 8.2.4834 Problem: Vim9: some lines not covered by tests. Solution: Add a few more tests. Remove dead code. Files: src/vim9execute.c, src/vim9instr.c, src/vim9.h, src/testdir/test_vim9_expr.vim Patch 8.2.4835 Problem: Vim9: some lines not covered by tests. Solution: Add a few more tests. Fix disassemble output. Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4836 Problem: Vim9: some lines not covered by tests. Solution: Remove dead code. Add disassemble tests. Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.4837 (after patch 8.2.0919) Problem: Modifiers not simplified when timed out or using feedkeys() with 'n" flag. Solution: Adjust how mapped flag and timeout are used. (closes #10305) Files: src/getchar.c, src/testdir/test_paste.vim, src/testdir/test_termcodes.vim Patch 8.2.4838 Problem: Checking for absolute path is not trivial. Solution: Add isabsolutepath(). (closes #10303) Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.4839 Problem: Compiler warning for unused argument. Solution: Add "UNUSED". Files: src/gui_gtk_x11.c Patch 8.2.4840 Problem: Heredoc expression evaluated even when skipping. Solution: Don't evaluate when "skip" is set. (closes #10306) Files: src/evalvars.c, src/testdir/test_let.vim Patch 8.2.4841 Problem: Empty string considered an error for expand() when 'verbose' is set. (Christian Brabandt) Solution: Do not give an error for an empty result. (closes #10307) Files: src/evalfunc.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/filepath.c, src/testdir/test_expand_func.vim Patch 8.2.4842 (after 8.2.4841) Problem: expand("%:p") is not empty when there is no buffer name. Solution: When ignoring errors still return NULL. (closes #10311) Files: src/ex_docmd.c, src/testdir/test_expand_func.vim Patch 8.2.4843 (after 8.2.4807) Problem: Win32 GUI: Treating CTRL + ALT as AltGr is not backwards compatible. (Axel Bender) Solution: Make a difference between left and right menu keys. (closes #10308) Files: src/gui_w32.c Patch 8.2.4844 Problem: <C-S-I> is simplified to <S-Tab>. Solution: Do not simplify CTRL if there is also SHIFT. (closes #10313) Files: src/getchar.c, src/testdir/test_gui.vim Patch 8.2.4845 Problem: Duplicate code. Solution: Move code below if/else. (closes #10314) Files: src/misc1.c Patch 8.2.4846 (after 8.2.4844) Problem: Termcodes test fails. Solution: use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316) Files: runtime/doc/cmdline.txt, src/edit.c, src/getchar.c, src/testdir/test_gui.vim Patch 8.2.4847 Problem: Crash when using uninitialized function pointer. Solution: Check for NULL pointer. (closes #10319, closes #10319) Files: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4848 Problem: Local completion with mappings and simplification not working. Solution: Fix local completion <C-N>/<C-P> mappings not ignored if keys are not simplified. (closes #10323) Files: src/getchar.c, src/testdir/test_popup.vim Patch 8.2.4849 Problem: Gleam filetype not detected. Solution: Add a pattern for Gleam files. (Mathias Jean Johansen, closes #10326) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4850 Problem: Mksession mixes up "tabpages" and "curdir" arguments. Solution: Correct logic for storing tabpage in session. (closes #10312) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4851 Problem: Compiler warning for uninitialized variable. Solution: Use another variable to decide to restore option values. Files: src/session.c Patch 8.2.4852 Problem: ANSI color index to RGB value not correct. Solution: Convert the cterm index to ANSI index. (closes #10321, closes #9836) Files: src/term.c Patch 8.2.4853 Problem: CI with FreeBSD is a bit outdated. Solution: Use 12.3 instead of 12.1. (closes #10333) Files: .cirrus.yml Patch 8.2.4854 Problem: Array size does not match usage. Solution: Make array size 3 instead of 4. (Christian Brabandt, closes #10336) Files: src/term.c Patch 8.2.4855 Problem: Robot files are not recognized. Solution: Add patterns for robot files. (Zoe Roux, closes #10339) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4856 Problem: MinGW compiler complains about unknown escape sequence. Solution: Avoid using a backslash in path. (Christian Brabandt, closes #10337) Files: .github/workflows/ci.yml Patch 8.2.4857 Problem: Yaml indent for multiline is wrong. Solution: Adjust patterns. (closes #10328, closes #8740) Files: runtime/indent/yaml.vim, runtime/indent/testdir/yaml.in, runtime/indent/testdir/yaml.ok Patch 8.2.4858 Problem: K_SPECIAL may be escaped twice. Solution: Avoid double escaping. (closes #10340) Files: src/highlight.c, src/misc2.c, src/proto/misc2.pro, src/term.c, src/typval.c, src/testdir/test_eval_stuff.vim, src/testdir/test_feedkeys.vim, src/testdir/test_functions.vim, src/testdir/test_mapping.vim Patch 8.2.4859 Problem: wget2 files are not recognized. Solution: Add patterns to recognize wget2. (Doug Kearns) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4860 Problem: MS-Windows: always uses current directory for executables. Solution: Check the NoDefaultCurrentDirectoryInExePath environment variable. (Yasuhiro Matsumoto, closes #10341) Files: runtime/doc/builtin.txt, src/os_win32.c, src/testdir/test_functions.vim Patch 8.2.4861 Problem: It is not easy to restore saved mappings. Solution: Make mapset() accept a dict argument. (Ernie Rael, closes #10295) Files: runtime/doc/builtin.txt, src/errors.h, src/evalfunc.c, src/map.c, src/typval.c, src/proto/typval.pro, src/testdir/test_map_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4862 Problem: Vim9: test may fail when run with valgrind. Solution: Wait longer for callback if needed. Files: src/testdir/test_vim9_script.vim Patch 8.2.4863 Problem: Accessing freed memory in test without the +channel feature. (Dominique Pellé) Solution: Do not generate PUSHCHANNEL or PUSHJOB if they are not implemented. (closes #10350) Files: src/vim9instr.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4864 (after 8.2.4863) Problem: Vim9: script test fails. Solution: Remove "if" around declaration. Files: src/testdir/test_vim9_script.vim Patch 8.2.4865 Problem: :startinsert right after :stopinsert does not work when popup menu is still visible. Solution: Use ins_compl_active() instead of pum_visible(). (closes #10352) Files: src/edit.c, src/testdir/test_ins_complete.vim Patch 8.2.4866 Problem: Duplicate code in "get" functions. Solution: Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar() and getbufvar(). (closes #10335) Files: src/evalvars.c Patch 8.2.4867 Problem: Listing of mapping with K_SPECIAL is wrong. Solution: Adjust escaping of special characters. (closes #10351) Files: src/map.c, src/message.c, src/testdir/test_mapping.vim Patch 8.2.4868 Problem: When closing help window autocmds triggered for the wrong window. Solution: Figure out the new current window earlier. (closes #10348) Files: src/window.c, src/testdir/test_help.vim Patch 8.2.4869 Problem: Expression in command block does not look after NL. Solution: Skip over NL to check what follows. (closes #10358) Files: src/eval.c, src/proto/eval.pro, src/vim9script.c, src/testdir/test_usercommands.vim Patch 8.2.4870 Problem: Vim9: expression in :substitute is not compiled. Solution: Use an INSTR instruction if possible. (closes #10334) Files: src/evalfunc.c, src/regexp.c, src/vim9execute.c, src/vim9expr.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4871 Problem: Vim9: in :def function no error for using a range with a command that does not accept one. Solution: Check for the command to accept a range. (closes #10330) Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4872 Problem: Vim9: no error for using an expression only at the script level when followed by an empty line. Solution: Do not check the line number but whether something follows. (closes #10357) Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4873 Problem: Vim9: using "else" differs from using "endif/if !cond". Solution: Leave the block and enter another one. (closes #10320) Files: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4874 Problem: Win32 GUI: horizontal scroll wheel not handled properly. Solution: Also handle WM_MOUSEHWHEEL. (closes #10309) Files: src/gui_w32.c Patch 8.2.4875 Problem: MS-Windows: some .exe files are not recognized. Solution: Parse APPEXECLINK junctions. (closes #10302) Files: src/os_mswin.c, src/proto/os_mswin.pro, src/os_win32.c, src/os_win32.h, src/testdir/test_functions.vim Patch 8.2.4876 Problem: MS-Windows: Shift-BS results in strange character in powershell. Solution: Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279) Files: src/edit.c, src/keymap.h, src/term.c, src/testdir/shared.vim, src/testdir/test_edit.vim Patch 8.2.4877 Problem: MS-Windows: Using Normal colors for termguicolors causes problems. Solution: Do not use Normal colors to set sg_gui_fg and sg_gui_bg. (Christian Brabandt, closes #10317, closes #10241) Files: src/highlight.c Patch 8.2.4878 Problem: Valgrind warning for using uninitialized variable. Solution: Initialize the type of newtv. Files: src/strings.c Patch 8.2.4879 Problem: Screendump test may fail when using valgrind. Solution: Wait longer for the first screendump. Files: src/testdir/test_vim9_builtin.vim, src/testdir/screendump.vim Patch 8.2.4880 Problem: Vim9: misplaced elseif causes invalid memory access. Solution: Check cs_idx not to be negative. Files: src/ex_eval.c Patch 8.2.4881 Problem: "P" in Visual mode still changes some registers. Solution: Make "P" in Visual mode not change any register. (Shougo Matsushita, closes #10349) Files: runtime/doc/change.txt, runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c, src/testdir/test_visual.vim Patch 8.2.4882 Problem: Cannot make 'breakindent' use a specific column. Solution: Add the "column" entry in 'breakindentopt'. (Christian Brabandt, closes #10362, closes #10325) Files: runtime/doc/options.txt, src/indent.c, src/structs.h, src/testdir/test_breakindent.vim Patch 8.2.4883 Problem: String interpolation only works in heredoc. Solution: Support interpolated strings. Use syntax for heredoc consistent with strings, similar to C#. (closes #10327) Files: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/typval.c, src/proto/typval.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/testdir/test_debugger.vim, src/testdir/test_expr.vim, src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4884 Problem: Test fails without the job/channel feature. (Dominique Pellé) Solution: Add condition. Files: src/testdir/test_vim9_script.vim Patch 8.2.4885 (after 8.2.4884) Problem: Test fails with the job/channel feature. Solution: Move check for job/channel separately. Files: src/testdir/test_vim9_script.vim Patch 8.2.4886 Problem: Vim9: redir in skipped block seen as assignment. Solution: Check for valid assignment. Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.4887 Problem: Channel log does not show invoking a timer callback. Solution: Add a ch_log() call. Files: src/time.c Patch 8.2.4888 Problem: Line number of lambda ignores line continuation. Solution: Use the line number of where the arguments are. Avoid outputting "..." twice. (closes #10364) Files: src/userfunc.c Patch 8.2.4889 Problem: CI only tests with FreeBSD 12. Solution: Also test with FreeBSD 13. (closes #10366) Files: .cirrus.yml Patch 8.2.4890 Problem: Inconsistent capitalization in error messages. Solution: Make capitalization consistent. (Doug Kearns) Files: src/errors.h Patch 8.2.4891 Problem: Vim help presentation could be better. Solution: Add an imported file for extra Vim help support. Show highlight names in the color they have. Files: Filelist, runtime/import/dist/vimhelp.vim Patch 8.2.4892 Problem: Test failures because of changed error messages. Solution: Adjust the expected error messages. Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_expand.vim, src/testdir/test_tcl.vim, src/testdir/test_vimscript.vim Patch 8.2.4893 (after 8.2.4891) Problem: Distributed import files are not installed. Solution: Add rules to Makefile and NSIS. Files: src/Makefile, nsis/gvim.nsi Patch 8.2.4894 Problem: MS-Windows: not using italics. Solution: Use italics. Simplify the code. (closes #10359) Files: src/term.c Patch 8.2.4895 Problem: Buffer overflow with invalid command with composing chars. Solution: Check that the whole character fits in the buffer. Files: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.4896 (after 8.2.4869) Problem: Expression in command block does not look after NL when command is typed. Solution: Skip over NL also when not in a script. (closes #10358) Files: src/eval.c, src/testdir/test_usercommands.vim Patch 8.2.4897 Problem: Comment inside an expression in lambda ignores the rest of the expression. Solution: Truncate the line at the comment. (closes #10367) Files: src/eval.c, src/testdir/test_lambda.vim Patch 8.2.4898 Problem: Coverity complains about pointer usage. Solution: Move code for increment/decrement. Files: src/vim9compile.c Patch 8.2.4899 Problem: With latin1 encoding CTRL-W might go before the start of the command line. Solution: Check already being at the start of the command line. Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4900 Problem: Vim9 expression test fails without the job feature. Solution: Add a check for the job feature. (Dominique Pellé, closes #10373) Files: src/testdir/test_vim9_expr.vim Patch 8.2.4901 Problem: NULL pointer access when using invalid pattern. Solution: Check for failed regexp program. Files: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4902 Problem: Mouse wheel scrolling is inconsistent. Solution: Use the MS-Windows system setting. (closes #10368) Files: runtime/doc/scroll.txt, src/gui_w32.c, src/mouse.c, src/proto/mouse.pro, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4903 Problem: Cannot get the current cmdline completion type and position. Solution: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, closes #10344) Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/cmdexpand.c, src/proto/cmdexpand.pro, src/evalfunc.c, src/ex_getln.c, src/proto/ex_getln.pro, src/usercmd.c, src/proto/usercmd.pro, src/testdir/test_cmdline.vim Patch 8.2.4904 Problem: codecov includes MS-Windows install files. Solution: Ignore dosinst.c and uninstall.c. Files: .codecov.yml Patch 8.2.4905 Problem: codecov includes MS-Windows install header file. Solution: Ignore dosinst.h. Files: .codecov.yml Patch 8.2.4906 Problem: MS-Windows: cannot use transparent background. Solution: Make transparent background work with 'termguicolors' and NONE background color. (Yasuhiro Matsumoto, closes #10310, closes #7162) Files: runtime/doc/options.txt, src/os_win32.c, src/term.c Patch 8.2.4907 Problem: Some users do not want a line comment always inserted. Solution: Add the '/' flag to 'formatoptions' to not repeat the comment leader after a statement when using "o". Files: runtime/doc/change.txt, src/option.h, src/change.c, src/testdir/test_textformat.vim Patch 8.2.4908 Problem: No text formatting for // comment after a statement. Solution: format a comment when the 'c' flag is in 'formatoptions'. Files: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.4909 Problem: MODE_ enum entries names are too generic. Solution: use CH_MODE_. Files: src/structs.h, src/channel.c, src/job.c, src/terminal.c Patch 8.2.4910 Problem: Imperfect coding. Solution: Make code nicer. Files: src/ex_getln.c Patch 8.2.4911 Problem: The mode #defines are not clearly named. Solution: Prepend MODE_. Renumber them to put the mapped modes first. Files: src/vim.h, src/autocmd.c, src/buffer.c, src/change.c, src/charset.c, src/cindent.c, src/clipboard.c, src/debugger.c, src/digraph.c, src/drawline.c, src/drawscreen.c, src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/fold.c, src/getchar.c, src/globals.h, src/gui.c, src/gui_gtk.c, src/gui_w32.c, src/gui_xim.c, src/indent.c, src/insexpand.c, src/macros.h, src/main.c, src/map.c, src/menu.c, src/message.c, src/misc1.c, src/misc2.c, src/mouse.c, src/netbeans.c, src/normal.c, src/ops.c, src/option.c, src/os_unix.c, src/os_win32.c, src/popupmenu.c, src/search.c, src/tag.c, src/screen.c, src/term.c, src/terminal.c, src/textformat.c, src/window.c Patch 8.2.4912 Problem: Using execute() to define a lambda doesn't work. (Ernie Rael) Solution: Put the getline function in evalarg. (closes #10375) Files: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.4913 Problem: Popup_hide() does not always have effect. Solution: Add the POPF_HIDDEN_FORCE flag. (closes #10376) Files: src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popup_prop_not_visible_01a.dump, src/testdir/dumps/Test_popup_prop_not_visible_01b.dump Patch 8.2.4914 Problem: String interpolation in :def function may fail. Solution: Do not terminate the expression. (closes #10377) Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.4915 Problem: Sometimes the cursor is in the wrong position. Solution: When the cursor moved to another line, recompute w_botline. (closes #9736) Files: src/move.c Patch 8.2.4916 (after 8.2.4915) Problem: Mouse in Insert mode test fails. Solution: Fix the test and check relevant positions. Files: src/testdir/test_edit.vim Patch 8.2.4917 Problem: Fuzzy expansion of option names is not right. Solution: Pass the fuzzy flag down the call chain. (Christian Brabandt, closes #10380, closes #10318) Files: src/cmdexpand.c, src/option.c, src/proto/option.pro, src/testdir/test_options.vim Patch 8.2.4918 Problem: Conceal character from matchadd() displayed too many times. Solution: Check the syntax flag. (closes #10381, closes #7268) Files: src/drawline.c, src/testdir/test_matchadd_conceal.vim Patch 8.2.4919 Problem: Can add invalid bytes with :spellgood. Solution: Check for a valid word string. Files: src/mbyte.c, src/spellfile.c, src/errors.h, src/testdir/test_spell_utf8.vim Patch 8.2.4920 (after 8.2.4902) Problem: MS-Windows GUI: unused variables. Solution: Delete the variables. (John Marriott) Files: src/gui_w32.c Patch 8.2.4921 Problem: Spell test fails because of new illegal byte check. Solution: Remove the test. Files: src/testdir/test_spell.vim Patch 8.2.4922 (after 8.2.4916) Problem: Mouse test fails on MS-Windows. Solution: Set 'mousemodel' to "extend". Files: src/testdir/test_edit.vim Patch 8.2.4923 Problem: Test checks for terminal feature unnecessarily. Solution: Remove CheckRunVimInTerminal. (closes #10383) Files: src/testdir/test_matchadd_conceal.vim Patch 8.2.4924 Problem: maparg() may return a string that cannot be reused. Solution: use msg_outtrans_special() instead of str2special(). (closes #10384) Files: src/message.c, src/option.c, src/testdir/test_map_functions.vim, src/testdir/test_mapping.vim, src/testdir/test_options.vim Patch 8.2.4925 Problem: Trailing backslash may cause reading past end of line. Solution: Check for NUL after backslash. Files: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.4926 Problem: #ifdef for crypt feature around too many lines. Solution: Move code outside of #ifdef. (closes #10388) Files: src/option.c Patch 8.2.4927 Problem: Return type of remove() incorrect when using three arguments. Solution: Use first argument type when there are three arguments. (closes #10387) Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4928 Problem: Various white space and cosmetic mistakes. Solution: Change spaces to tabs, improve comments. Files: src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c, src/debugger.c, src/digraph.c, src/edit.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui.c, src/highlight.c, src/indent.c, src/insexpand.c, src/job.c, src/keymap.h, src/macros.h, src/menu.c, src/misc1.c, src/misc2.c, src/mouse.c, src/move.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/search.c, src/session.c, src/spellsuggest.c, src/structs.h, src/tag.c, src/term.c, src/terminal.c, src/textformat.c, src/typval.c, src/ui.c, src/userfunc.c, src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/window.c, src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c, src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c, src/os_vms.c, src/os_vms_conf.h Patch 8.2.4929 Problem: Off-by-one error in statusline item. Solution: Subtrace one less. (closes #10394, closes #5599) Files: src/buffer.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_hl.dump Patch 8.2.4930 Problem: Interpolated string expression requires escaping. Solution: Do not require escaping in the expression. Files: runtime/doc/eval.txt, src/typval.c, src/proto/typval.pro, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/vim9instr.c, src/alloc.c, src/proto/alloc.pro, src/testdir/test_expr.vim, src/testdir/test_let.vim Patch 8.2.4931 Problem: Crash with sequence of Perl commands. Solution: Move PUTBACK to another line. (closes #10386) Files: src/if_perl.xs Patch 8.2.4932 Problem: Not easy to filter the output of maplist(). Solution: Add mode_bits to the dictionary. (Ernie Rael, closes #10356) Files: runtime/doc/builtin.txt, src/map.c, src/testdir/test_map_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4933 Problem: A few more capitalization mistakes in error messages. Solution: Adjust capitalization. (Doug Kearns) Files: src/errors.h Patch 8.2.4934 Problem: String interpolation fails when not evaluating. Solution: Skip the expression when not evaluating. (closes #10398) Files: src/typval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_expr.vim Patch 8.2.4935 Problem: With 'foldmethod' "indent" some lines are not included in the fold. (Oleg Koshovetc) Solution: Fix it. (Brandon Simmons, closes #10399, closes #3214) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4936 Problem: MS-Windows: mouse coordinates for scroll event are wrong. Solution: Convert coordinates to the text area coordinates. (closes #10400) Files: src/gui_w32.c Patch 8.2.4937 (after 8.2.4931) Problem: No test for what 8.2.4931 fixes. Solution: Add a test that triggers a valgrind error. Files: src/testdir/test_perl.vim Patch 8.2.4938 Problem: Crash when matching buffer with invalid pattern. Solution: Check for NULL regprog. Files: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4939 Problem: matchfuzzypos() with "matchseq" does not have all positions. Solution: Also add a position for white space. (closes #10404) Files: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.4940 Problem: Some code is never used. Solution: Remove dead code. Add a few more test cases. Files: src/vim9expr.c, src/proto/vim9expr.pro, src/vim9compile.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4941 Problem: '[ and '] marks may be wrong after undo. Solution: Adjust the '[ and '] marks if needed. (closes #10407, closes #1281) Files: src/undo.c, src/testdir/test_undo.vim Patch 8.2.4942 Problem: Error when setting 'filetype' in help file again. Solution: Deal with text property type already existing. (closes #10409) Files: runtime/import/dist/vimhelp.vim Patch 8.2.4943 Problem: Changing 'switchbuf' may have no effect. Solution: Handle 'switchbuf' in didset_string_options(). (Sean Dewar, closes #10406) Files: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.4944 Problem: Text properties are wrong after "cc". (Axel Forsman) Solution: Pass the deleted byte count to inserted_bytes(). (closes #10412, closes #7737, closes #5763) Files: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4945 Problem: Inconsistent use of white space. Solution: Use Tabs and Spaces consistently. Files: src/os_amiga.c, src/if_py_both.h, src/os_win32.c, src/os_mswin.c, src/os_vms.c, src/os_vms_conf.h Patch 8.2.4946 Problem: Vim9: some code not covered by tests. Solution: Add a few more test cases. Remove dead code. Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4947 Problem: Text properties not adjusted when accepting spell suggestion. Solution: Adjust text properties when text changes. (closes #10414) Files: src/spell.c, src/spellsuggest.c, src/testdir/test_textprop.vim Patch 8.2.4948 Problem: Cannot use Perl heredoc in nested :def function. (Virginia Senioria) Solution: Only concatenate heredoc lines when not in a nested function. (closes #10415) Files: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4949 Problem: Vim9: some code not covered by tests. Solution: Add a few more test cases. Fix double error message. Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4950 Problem: Text properties position wrong after shifting text. Solution: Adjust the text properties when shifting a block of text. (closes #10418) Files: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.4951 Problem: Smart indenting done when not enabled. Solution: Check option values before setting can_si. (closes #10420) Files: src/indent.c, src/proto/indent.pro, src/change.c, src/edit.c, src/ops.c, src/testdir/test_smartindent.vim Patch 8.2.4952 Problem: GUI test will fail if color scheme changes. Solution: Reduce the test for now. Files: src/testdir/test_gui.vim Patch 8.2.4953 Problem: With 'smartindent' inserting '}' after completion goes wrong. Solution: Check the cursor is in indent. (closes #10420) Files: src/indent.c, src/testdir/test_smartindent.vim Patch 8.2.4954 Problem: Inserting line breaks text property spanning more than one line. Solution: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423) Files: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.4955 Problem: Text property in wrong position after auto-indent. Solution: Adjust text property columns. (closes #10422, closes #7719) Files: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4956 Problem: Reading past end of line with "gf" in Visual block mode. Solution: Do not include the NUL in the length. Files: src/normal.c, src/testdir/test_gf.vim Patch 8.2.4957 Problem: Text properties in a wrong position after a block change. Solution: Adjust the properties columns. (closes #10427) Files: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.4958 Problem: A couple conditions are always true. Solution: Remove the conditions. (Goc Dundar, closes #10428) Files: src/evalfunc.c, src/quickfix.c Patch 8.2.4959 Problem: Using NULL regexp program. Solution: Check for regexp program becoming NULL in more places. Files: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4960 Problem: Text properties that cross line boundary are not correctly updated for a deleted line. Solution: Correct computing location of text property entry. (Paul Ollis, closes #10431, closes #10430) Files: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.4961 Problem: Build error with a certain combination of features. Solution: Adjust #if. (John Marriott) Files: src/memline.c Patch 8.2.4962 Problem: Files show up in git status. Solution: Adjust the list of ignored files. Clean up more test files. (Shane xb Qian, closes #9929) Files: .gitignore, src/testdir/Makefile Patch 8.2.4963 Problem: Expanding path with "/**" may overrun end of buffer. Solution: Use vim_snprintf(). Files: src/filepath.c Patch 8.2.4964 Problem: MS-Windows GUI: mouse event test is flaky. Solution: Add a short delay after generating a mouse event. Files: src/testdir/test_gui.vim Patch 8.2.4965 Problem: GUI: testing mouse move event depends on screen cell size. Solution: Multiply the row and column with the screen cell size. Files: runtime/doc/testing.txt, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4966 Problem: MS-Windows GUI: mouse event test gets extra event. Solution: Ignore one move event. Files: src/testdir/test_gui.vim Patch 8.2.4967 (after 8.2.4966) Problem: MS-Windows GUI: mouse event test sometimes fails. Solution: Ignore one move event only if there is an extra event. Files: src/testdir/test_gui.vim Patch 8.2.4968 Problem: Reading past end of the line when C-indenting. Solution: Check for NUL. Files: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.4969 Problem: Changing text in Visual mode may cause invalid memory access. Solution: Check the Visual position after making a change. Files: src/change.c, src/edit.c, src/misc2.c, src/proto/misc2.pro, src/testdir/test_visual.vim Patch 8.2.4970 Problem: "eval 123" gives an error, "eval 'abc'" does not. Solution: Also give an error when evaluating only a string. (closes #10434) Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4971 Problem: Vim9: interpolated string seen as range. Solution: Recognize an interpolated string at the start of a command line. (closes #10434) Files: src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.4972 Problem: Vim9: compilation fails when using dict member when skipping. Solution: Do not generate ISN_USEDICT when skipping. (closes #10433) Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4973 Problem: Vim9: type error for list unpack mentions argument. Solution: Mention variable. (close #10435) Files: src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4974 Problem: ":so" command may read after end of buffer. Solution: Compute length of text properly. Files: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.4975 Problem: Recursive command line loop may cause a crash. Solution: Limit recursion of getcmdline(). Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4976 Problem: Coverity complains about not restoring a saved value. Solution: Restore value before handling error. Files: src/vim9execute.c Patch 8.2.4977 Problem: Memory access error when substitute expression changes window. Solution: Disallow changing window in substitute expression. Files: src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.4978 Problem: No error if engine selection atom is not at the start. Solution: Give an error. (Christian Brabandt, closes #10439) Files: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.4979 Problem: Accessing freed memory when line is flushed. Solution: Make a copy of the pattern to search for. Files: src/window.c, src/testdir/test_tagjump.vim Patch 8.2.4980 Problem: When 'shortmess' contains 'A' loading a session may still warn for an existing swap file. (Melker Österberg) Solution: Keep the 'A' flag to 'shortmess' in the session file. (closes #10443) Files: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4981 Problem: It is not possible to manipulate autocommands. Solution: Add functions to add, get and set autocommands. (Yegappan Lakshmanan, closes #10291) Files: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/autocmd.c, src/evalfunc.c, src/proto/autocmd.pro, src/testdir/test_autocmd.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4982 Problem: Colors in terminal window are not 100% correct. Solution: Use g:terminal_ansi_colors as documented. (closes #10429, closes #7227 closes #10347) Files: src/job.c, src/option.c, src/proto/term.pro, src/terminal.c, src/proto/terminal.pro, src/term.c, src/testdir/test_functions.vim, src/testdir/test_terminal.vim Patch 8.2.4983 (after 8.2.4982) Problem: Colors test fails in the GUI. Solution: Reset g:terminal_ansi_colors. Files: src/testdir/test_functions.vim Patch 8.2.4984 Problem: Dragging statusline fails for window with winbar. Solution: Fix off-by-one error. (closes #10448) Files: src/mouse.c, src/testdir/test_winbar.vim Patch 8.2.4985 Problem: PVS warns for possible array underrun. Solution: Add a check for a positive value. (Goc Dundar, closes #10451) Files: src/spell.c Patch 8.2.4986 Problem: Some github actions are outdated. Solution: Update CodeQl to v2, update checkout to v3. (closes #10450) Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml, .github/workflows/coverity.yml Patch 8.2.4987 Problem: After deletion a small fold may be closable. Solution: Check for a reverse range. (Brandon Simmons, closes #10457) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4988 Problem: Textprop in wrong position when replacing multi-byte chars. Solution: Adjust textprop position. (closes #10461) Files: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4989 Problem: Cannot specify a function name for :defcompile. Solution: Implement a function name argument for :defcompile. Files: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4990 (after 8.2.4989) Problem: Memory leak when :defcompile fails. Solution: Free fname when returning early. Files: src/userfunc.c Patch 8.2.4991 Problem: No test for what patch 8.1.0535 fixes. Solution: Add a test. (closes #10462) Files: src/testdir/test_fold.vim Patch 8.2.4992 (after 8.2.4989) Problem: Compiler warning for possibly uninitialized variable. (Tony Mechelynck) Solution: Initialize variable in the caller instead of in the function. Files: src/userfunc.c, src/vim9execute.c Patch 8.2.4993 Problem: smart/C/lisp indenting is optional, which makes the code more complex, while it only reduces the executable size a bit. Solution: Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP. Files: runtime/doc/builtin.txt, runtime/doc/indent.txt, runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h, src/buffer.c, src/change.c, src/cindent.c, src/charset.c, src/edit.c, src/evalfunc.c, src/indent.c, src/insexpand.c, src/main.c, src/mouse.c, src/ops.c, src/option.c, src/optionstr.c, src/register.c, src/search.c, src/textformat.c, src/version.c, src/option.h, src/optiondefs.h, src/structs.h, src/globals.h, src/testdir/test_edit.vim Patch 8.2.4994 Problem: Tests are using legacy functions. Solution: Convert a few tests to use :def functions. Files: src/testdir/test_cindent.vim Patch 8.2.4995 (after 8.2.4992) Problem: Still a compiler warning for possibly uninitialized variable. (Tony Mechelynck) Solution: Initialize variables. Files: src/vim9execute.c Patch 8.2.4996 (after 8.2.4969) Problem: setbufline() may change Visual selection. (Qiming Zhao) Solution: Disable Visual mode when using another buffer. (closes #10466) Files: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.4997 Problem: Python: changing hidden buffer can cause the display to be messed up. Solution: Do not mark changed lines when using another buffer. (Paul Ollis, closes #10437, closes #7972) Files: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.4998 Problem: Vim9: crash when using multiple funcref(). Solution: Check if varargs type is NULL. (closes #10467) Files: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.4999 Problem: Filetype test table is not properly sorted. Solution: Sort by filetype. (Doug Kearns) Files: src/testdir/test_filetype.vim Patch 8.2.5000 Problem: No patch for documentation updates. Solution: Update documentation files. Files: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, runtime/doc/builtin.txt, runtime/doc/change.txt, runtime/doc/channel.txt, runtime/doc/cmdline.txt, runtime/doc/diff.txt, runtime/doc/digraph.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/filetype.txt, runtime/doc/fold.txt, runtime/doc/ft_ada.txt, runtime/doc/ft_ps1.txt, runtime/doc/ft_raku.txt, runtime/doc/ft_rust.txt, runtime/doc/ft_sql.txt, runtime/doc/gui.txt, runtime/doc/gui_w32.txt, runtime/doc/helphelp.txt, runtime/doc/help.txt, runtime/doc/if_cscop.txt, runtime/doc/if_lua.txt, runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, runtime/doc/if_tcl.txt, runtime/doc/indent.txt, runtime/doc/index.txt, runtime/doc/insert.txt, runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt, runtime/doc/message.txt, runtime/doc/motion.txt, runtime/doc/netbeans.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, runtime/doc/pattern.txt, runtime/doc/pi_netrw.txt, runtime/doc/pi_zip.txt, runtime/doc/popup.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/quickref.txt, runtime/doc/remote.txt, runtime/doc/repeat.txt, runtime/doc/rileft.txt, runtime/doc/scroll.txt, runtime/doc/sign.txt, runtime/doc/spell.txt, runtime/doc/sponsor.txt, runtime/doc/starting.txt, runtime/doc/syntax.txt, runtime/doc/tabpage.txt, runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, runtime/doc/term.txt, runtime/doc/testing.txt, runtime/doc/textprop.txt, runtime/doc/tips.txt, runtime/doc/todo.txt, runtime/doc/uganda.txt, runtime/doc/undo.txt, runtime/doc/usr_02.txt, runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, runtime/doc/usr_06.txt, runtime/doc/usr_08.txt, runtime/doc/usr_09.txt, runtime/doc/usr_12.txt, runtime/doc/usr_20.txt, runtime/doc/usr_29.txt, runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, runtime/doc/usr_45.txt, runtime/doc/usr_46.txt, runtime/doc/usr_50.txt, runtime/doc/usr_51.txt, runtime/doc/usr_52.txt, runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt, runtime/doc/various.txt, runtime/doc/version5.txt, runtime/doc/version6.txt, runtime/doc/version7.txt, runtime/doc/version8.txt, runtime/doc/version9.txt, runtime/doc/vi_diff.txt, runtime/doc/vim9.txt, runtime/doc/visual.txt, runtime/doc/windows.txt, runtime/doc/tags, runtime/doc/Makefile Patch 8.2.5001 Problem: Checking translations affects the search pattern history. Solution: Use "keeppatterns". (Doug Kearns) Files: src/po/check.vim Patch 8.2.5002 Problem: deletebufline() may change Visual selection. Solution: Disable Visual mode when using another buffer. (closes #10469) Files: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.5003 Problem: Cannot do bitwise shifts. Solution: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457) Files: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/structs.h, src/vim.h, src/vim9execute.c, src/vim9expr.c, src/testdir/test_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.5004 Problem: Right shift on negative number does not work as documented. Solution: Use a uvarnumber_T type cast. Files: runtime/doc/eval.txt, src/eval.c, src/vim9expr.c, src/vim9execute.c, src/charset.c, src/testdir/test_expr.vim Patch 8.2.5005 (after 8.2.5003) Problem: Compiler warning for uninitialized variable. (John Marriott) Solution: Initialize the pointer to NULL. Files: src/vim9expr.vim Patch 8.2.5006 (after 8.2.5003) Problem: Asan warns for undefined behavior. Solution: Cast the shifted value to unsigned. Files: src/eval.c, src/vim9expr.c, src/vim9execute.c Patch 8.2.5007 Problem: Spell suggestion may use uninitialized memory. (Zdenek Dohnal) Solution: Avoid going over the end of the word. Files: src/spellsuggest.c, src/testdir/test_spell_utf8.vim Patch 8.2.5008 Problem: When 'formatoptions' contains "/" wrongly wrapping a long trailing comment. Solution: Pass the OPENLINE_FORMAT flag. Files: src/change.c, src/vim.h, src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.5009 Problem: Fold may not be closable after appending. Solution: Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471) Files: src/fold.c, src/testdir/test_fold.vim Patch 8.2.5010 Problem: The terminal debugger uses various global variables. Solution: Add a dictionary to hold the terminal debugger preferences. Files: runtime/doc/terminal.txt, runtime/pack/dist/opt/termdebug/plugin/termdebug.vim Patch 8.2.5011 Problem: Replacing an autocommand requires several lines. Solution: Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan, closes #10473) Files: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.5012 Problem: Cannot select one character inside (). Solution: Do not try to extend the area if it is empty. (closes #10472, closes #6616) Files: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.5013 Problem: After text formatting the cursor may be in an invalid position. Solution: Correct the cursor position after formatting. Files: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.5014 Problem: Byte offsets are wrong when using text properties. Solution: Make sure text properties do not affect the byte counts. (Paul Ollis, closes #10474) Files: src/memline.c, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.5015 Problem: Hoon and Moonscript files are not recognized. Solution: Add filetype patterns. (Goc Dundar, closes #10478) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.5016 Problem: Access before start of text with a put command. Solution: Check the length is more than zero. Files: src/register.c, src/testdir/test_put.vim Patch 8.2.5017 Problem: Gcc 12.1 warns for uninitialized variable. Solution: Initialize the variable. (closes #10476) Files: src/evalvars.c Patch 8.2.5018 Problem: Vim9: some code is not covered by tests. Solution: Delete dead code. Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/vim9expr.c, Patch 8.2.5019 Problem: Cannot get the first screen column of a character. Solution: Let virtcol() optionally return a list. (closes #10482, closes #7964) Files: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.5020 Problem: Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'. Solution: Save and restore the KeyTyped flag. (closes #10479) Files: src/gui_xim.c, src/testdir/test_iminsert.vim Patch 8.2.5021 Problem: Build fails with normal features and +terminal. (Dominique Pellé) Solution: Add #ifdefs. (closes #10484) Files: src/terminal.c Patch 8.2.5022 Problem: 'completefunc'/'omnifunc' error does not end completion. Solution: Check if there was an error or exception. (closes #10486, closes #4218) Files: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.5023 Problem: Substitute overwrites allocated buffer. Solution: Disallow undo when in a substitute command. Files: src/normal.c, src/undo.c, src/testdir/test_substitute.vim Patch 8.2.5024 Problem: Using freed memory with "]d". Solution: Copy the pattern before searching. Files: src/normal.c, src/testdir/test_tagjump.vim Patch 8.2.5025 Problem: Vim9: a few lines not covered by tests. Solution: Add a few tests. Files: src/vim9script.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_import.vim Patch 8.2.5026 Problem: Vim9: a few lines not covered by tests. Solution: Delete dead code. Add a few test cases. make "12->func()" work. Files: src/vim9type.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.5027 Problem: Error for missing :endif when an exception was thrown. (Dani Dickstein) Solution: Do not give an error when aborting. (closes #10490) Files: src/ex_docmd.c, src/testdir/test_trycatch.vim Patch 8.2.5028 Problem: Syntax regexp matching can be slow. Solution: Adjust the counters for checking the timeout to check about once per msec. (closes #10487, closes #2712) Files: src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.5029 Problem: "textlock" is always zero. Solution: Remove "textlock" and rename "textwinlock" to "textlock". (closes #10489) Files: runtime/doc/insert.txt, runtime/doc/tags, src/beval.c, src/change.c, src/edit.c, src/errors.h, src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/proto/ex_getln.pro, src/globals.h, src/indent.c, src/insexpand.c, src/map.c, src/register.c, src/undo.c, src/window.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim, src/testdir/test_quickfix.vim Patch 8.2.5030 Problem: autocmd_add() can only handle one event and pattern. Solution: Support a list of events and patterns. (Yegappan Lakshmanan, closes #10483) Files: runtime/doc/builtin.txt, src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim Patch 8.2.5031 Problem: Cannot easily run the benchmarks. Solution: Have "make benchmark" in the src directory work. Files: src/Makefile, src/testdir/Makefile Patch 8.2.5032 Problem: Python 3 test fails without the GUI. Solution: Check the balloon_eval feature is available. Files: src/testdir/test_python3.vim Patch 8.2.5033 (after 8.2.5030) Problem: Build error with +eval but without +quickfix. Warning for uninitialized variable. Solution: Adjust #ifdefs. (John Marriott) Files: src/errors.h, src/autocmd.c Patch 8.2.5034 Problem: There is no way to get the byte index from a virtual column. Solution: Add virtcol2col(). (Yegappan Lakshmanan, closes #10477, closes #10098) Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/move.c, src/proto/move.pro, src/testdir/test_cursor_func.vim Patch 8.2.5035 Problem: When splitting a window the changelist position moves. Solution: Set the changelist index a bit later. (closes #10493) Files: src/window.c, src/testdir/test_changelist.vim, src/testdir/test_normal.vim Patch 8.2.5036 (after 8.2.5028) Problem: Using two counters for timeout check in NFA engine. Solution: Use only one counter. Tune the counts based on guessing. Files: src/regexp_nfa.c Patch 8.2.5037 Problem: Cursor position may be invalid after "0;" range. Solution: Check the cursor position when it was set by ";" in the range. Files: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.5038 Problem: A finished terminal in a popup window does not show a scrollbar. Solution: Show the scrollbar if the terminal job is finished. (closes #10497) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, src/testdir/dumps/Test_popupwin_poptermscroll_3.dump Patch 8.2.5039 Problem: Confusing error if first argument of popup_create() is wrong. Solution: Give a more informative error. Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/errors.h, src/testdir/dumps/Test_popup_settext_07.dump Patch 8.2.5040 Problem: Scrollbar thumb in scrolled popup not visible. Solution: Show at least one thumb character. (fixes 10492) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_13.dump Patch 8.2.5041 Problem: Cannot close a terminal popup with "NONE" job. Solution: Adjust the conditions for whether a job is running. (closes #10498) Files: src/buffer.c, src/terminal.c, src/proto/terminal.pro, src/undo.c, src/testdir/test_popupwin.vim Patch 8.2.5042 Problem: Scrollbar thumb in tall scrolled popup not visible. Solution: Show at least one thumb character. (fixes 10492) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_13.dump Patch 8.2.5043 Problem: Can open a cmdline window from a substitute expression. Solution: Disallow opening a command line window when text or buffer is locked. Files: src/buffer.c, src/ex_getln.c, src/proto/ex_getln.pro, src/window.c, src/testdir/test_substitute.vim Patch 8.2.5044 (after 8.2.5043) Problem: Command line test fails. Solution: Also beep when cmdline win can't be opened because of locks. Make the test not beep. Make the test pass on MS-Windows. Files: src/ex_getln.c, src/testdir/test_substitute.vim Patch 8.2.5045 Problem: Can escape a terminal popup window when the job is finished. Solution: Only check for a finished job where it is relevant. (closes #10253) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, src/testdir/dumps/Test_popupwin_poptermscroll_3.dump, src/testdir/dumps/Test_popupwin_poptermscroll_4.dump Patch 8.2.5046 Problem: vim_regsub() can overwrite the destination. Solution: Pass the destination length, give an error when it doesn't fit. Files: src/regexp.h, src/regexp.c, src/proto/regexp.pro, src/eval.c, src/ex_cmds.c Patch 8.2.5047 Problem: CurSearch highlight is often wrong. Solution: Remember the last highlighted position and redraw when needed. Files: src/globals.h, src/match.c, src/drawscreen.c, src/change.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_changed_1.dump Patch 8.2.5048 Problem: When using XIM the gui test may fail. Solution: Only use --not-a-term when not using XIM. Files: src/testdir/test_gui.vim Patch 8.2.5049 Problem: Insufficient tests for autocommands. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #10507) Files: src/autocmd.c, src/testdir/gen_opt_test.vim, src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim Patch 8.2.5050 Problem: Using freed memory when searching for pattern in path. Solution: Make a copy of the line. Files: src/search.c, src/testdir/test_tagjump.vim Patch 8.2.5051 Problem: Check for autocmd_add() event argument is confusing. Solution: Make the code more straightforward. Files: src/autocmd.c Patch 8.2.5052 Problem: CI checkout step title is a bit cryptic. Solution: Add a better title. (closes #10509) Files: .github/workflows/ci.yml, .github/workflows/coverity.yml, .github/workflows/codeql-analysis.yml Patch 8.2.5053 Problem: Cannot have a comment halfway an expression in an autocmd command block. Solution: When skipping over the NL also skip over comments. (closes #10519) Files: src/eval.c, src/testdir/test_autocmd.vim Patch 8.2.5054 Problem: No good filetype for conf files similar to dosini. Solution: Add the confini filetype. (closes #10518) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.5055 Problem: Statusline is not updated when terminal title changes. Solution: Redraw the status line when the title changes. (issue #10425) Files: src/terminal.c Patch 8.2.5056 Problem: The channel log only contains some of the raw terminal output. Solution: Add the "o" flag to log all terminal output. Use it for "--log". Files: runtime/doc/channel.txt, runtime/doc/starting.txt, src/main.c, src/channel.c, src/vim.h, src/term.c, src/edit.c, src/normal.c, src/optionstr.c Patch 8.2.5057 Problem: Using gettimeofday() for timeout is very inefficient. Solution: Set a platform dependent timer. (Paul Ollis, closes #10505) Files: src/auto/configure, src/config.h.in, src/configure.ac, src/drawscreen.c, src/errors.h, src/evalfunc.c, src/ex_cmds.c, src/ex_getln.c, src/match.c, src/os_mac.h, src/os_macosx.m, src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro, src/proto/os_win32.pro, src/proto/regexp.pro, src/quickfix.c, src/regexp.c, src/regexp.h, src/regexp_bt.c, src/regexp_nfa.c, src/screen.c, src/search.c, src/structs.h, src/syntax.c, src/testdir/test_hlsearch.vim, src/testdir/test_search.vim, src/testdir/test_syntax.vim Patch 8.2.5058 Problem: input() does not handle composing characters properly. Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). (closes #10527) Files: src/getchar.c, src/testdir/test_functions.vim Patch 8.2.5059 Problem: Autoconf 2.71 produces many obsolete warnings. Solution: Replace obsolete macros with non-obsolete ones, where the functionality does not change. (issue #10528) Files: src/configure.ac, src/auto/configure Patch 8.2.5060 (after 8.2.5059) Problem: Running configure fails. Solution: Remove line break. Files: src/configure.ac, src/auto/configure Patch 8.2.5061 Problem: C89 requires signal handlers to return void. Solution: Drop RETSIGTYPE and hard-code a void return value. Files: src/configure.ac, src/auto/configure, src/if_cscope.c, src/os_unix.c, src/pty.c, src/os_mac.h, src/os_vms_conf.h, src/config.h.in, src/osdef1.h.in Patch 8.2.5062 Problem: Coverity warns for dead code. Solution: Remove the dead code. Files: src/os_unix.c, src/match.c Patch 8.2.5063 Problem: Error for a command may go over the end of IObuff. Solution: Truncate the message. Files: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.5064 Problem: No test for what 8.1.0052 fixes. Solution: Add a test. (closes #10531) Files: src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.5065 Problem: Wrong return type for main() in tee.c. Solution: Use "int" instead of "void". Remove unused variable. Files: src/tee/tee.c Patch 8.2.5066 Problem: Can specify multispace listchars only for whole line. Solution: Add "leadmultispace". (Christian Brabandt, closes #10496) Files: runtime/doc/options.txt, src/drawline.c, src/message.c, src/screen.c, src/structs.h, src/window.c, src/testdir/test_listchars.vim Patch 8.2.5067 Problem: Timer_create is not available on every Mac system. (Hisashi T Fujinaka) Solution: Adjust #ifdef. Files: src/os_unix.c Patch 8.2.5068 Problem: Gcc 12.1 warning when building tee. Solution: Change type to size_t. (John Marriott) Files: src/tee/tee.c Patch 8.2.5069 Problem: Various warnings from clang on MS-Windows. Solution: Fix the code to avoid the warnings. (Yegappan Lakshmanan, closes #10538) Files: src/dosinst.c, src/fileio.c, src/gui_w32.c, src/os_mswin.c, src/os_win32.c Patch 8.2.5070 Problem: Unnecessary code. Solution: Remove code that isn't needed. (closes #10534) Files: src/message.c, src/screen.c Patch 8.2.5071 Problem: With some Mac OS version clockid_t is redefined. Solution: Adjust #ifdefs. (Ozaki Kiichi, closes #10549) Files: src/os_mac.h Patch 8.2.5072 Problem: Using uninitialized value and freed memory in spell command. Solution: Initialize "attr". Check for empty line early. Files: src/spell.c, src/testdir/test_spell_utf8.vim Patch 8.2.5073 Problem: Clang on MS-Windows produces warnings. Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #10546) Files: src/dosinst.c, src/dosinst.h, src/gui_dwrite.cpp, src/gui_w32.c, src/iscygpty.c, src/libvterm/src/vterm_internal.h, src/mbyte.c, src/os_win32.c, src/os_win32.h, src/term.c, src/xdiff/xinclude.h Patch 8.2.5074 Problem: Spell test fails on MS-Windows. Solution: Do not change 'encoding' Files: src/testdir/test_spell_utf8.vim Patch 8.2.5075 Problem: Clang gives an out of bounds warning. Solution: adjust conditional expression (John Marriott) Files: src/ui.c Patch 8.2.5076 Problem: Unnecessary code. Solution: Remove code and replace with function call. (closes #10552) Files: src/drawline.c, src/getchar.c Patch 8.2.5077 Problem: Various warnings from clang on MS-Windows. Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #10553) Files: src/dosinst.c, src/dosinst.h, src/filepath.c, src/gui_w32.c, src/misc1.c, src/os_win32.c Patch 8.2.5078 Problem: Substitute test has a one second delay. Solution: Use ":silent!". Add another test case. (closes #10558) Files: src/testdir/test_substitute.vim Patch 8.2.5079 Problem: DirChanged autocommand may use freed memory. (Shane-XB Qian) Solution: Free the memory later. (closes #10555) Files: src/ex_docmd.c, src/testdir/test_autocmd.vim Patch 8.2.5080 Problem: When indenting gets out of hand it is hard to stop. Solution: When line gets too long set got_int. Files: src/indent.c Patch 8.2.5081 Problem: Autocmd test fails on MS-Windows. Solution: Set shellslash to get forward slashes. Files: src/testdir/test_autocmd.vim Patch 8.2.5082 (after 8.2.5080) Problem: Retab test fails. Solution: Disable the test for now. Files: src/testdir/test_retab.vim Patch 8.2.5083 Problem: Autocmd test still fails on MS-Windows. Solution: Change backward to forward slashes. Files: src/testdir/test_autocmd.vim Patch 8.2.5084 Problem: When the GUI shows a dialog tests get stuck. Solution: Add the --gui-dialog-file argument. Files: runtime/doc/starting.txt, src/Make_mvc.mak, src/gui.c, src/main.c, src/message.c, src/os_mswin.c, src/proto/gui.pro, src/proto/main.pro, src/structs.h, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile, src/testdir/runtest.vim, src/testdir/shared.vim Patch 8.2.5085 Problem: Gcc gives warning for signed/unsigned difference. Solution: Use a different pointer type. (John Marriott) Files: src/os_mswin.c Patch 8.2.5086 Problem: CI runs on Windows 2019. Solution: Switch to Windows 2022. (closes #10566) Files: .github/workflows/ci.yml Patch 8.2.5087 Problem: Cannot build with clang on MS-Windows. Solution: Add support for building with clang. (Yegappan Lakshmanan, closes #10557) Files: src/GvimExt/Make_ming.mak, src/INSTALLpc.txt, src/Make_cyg_ming.mak Patch 8.2.5088 Problem: Value of cmod_verbose is a bit complicated to use. Solution: Use zero for not set, value + 1 when set. (closes #10564) Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/structs.h Patch 8.2.5089 Problem: Some functions return a different value on failure. Solution: Initialize the return value earlier. (Yegappan Lakshmanan, closes #10568) Files: src/autocmd.c, src/dict.c, src/evalfunc.c, src/list.c Patch 8.2.5090 Problem: MS-Windows: vim.def is no longer used. Solution: Delete vim.def. (Ken Takata, closes #10569) Files: Filelist, Makefile, src/vim.def Patch 8.2.5091 Problem: Terminal test fails with some shell commands. Solution: Disable setting the window title. (closes #10530) Files: src/testdir/test_terminal.vim Patch 8.2.5092 Problem: Using "'<,'>" in Ex mode may compare unrelated pointers. Solution: Set eap->cmd to "+" only later. Files: src/ex_docmd.c Patch 8.2.5093 Problem: Error message for unknown command may mention the command twice. (Malcolm Rowe) Solution: Add the did_append_cmd flag. (closes #10570) Files: src/ex_docmd.c Patch 8.2.5094 Problem: MS-Windows GUI: empty command may cause a dialog. Solution: Delete the dialog file. Improve the message. Files: src/testdir/runtest.vim, src/testdir/test_ex_mode.vim Patch 8.2.5095 Problem: Terminal test still fails with some shell commands. Solution: Disable setting the window title in the Vim instance running in a terminal window. (closes #10530) Files: src/testdir/test_terminal.vim Patch 8.2.5096 (after 8.2.5095) Problem: Terminal test still fails with some shell commands. Solution: Add missing "call". (closes #10530) Files: src/testdir/test_terminal.vim Patch 8.2.5097 Problem: Using uninitialized memory when using 'listchars'. Solution: Use the length returned by mb_char2bytes(). (closes #10576) Files: src/message.c Patch 8.2.5098 Problem: Spelldump test sometimes hangs. Solution: Catch the problem of the spell file not being found to avoid hanging in the download dialog. Files: src/testdir/test_spell.vim Patch 8.2.5099 Problem: Some terminal tests are not retried. Solution: Mark terminal tests as flaky. Files: src/testdir/test_terminal.vim Patch 8.2.5100 Problem: Memory usage tests are not retried. Solution: Mark memory usage tests as flaky. Files: src/testdir/test_memory_usage.vim Patch 8.2.5101 Problem: MS-Windows with MinGW: $CC may be "cc" instead of "gcc". Solution: Set $CC if it is not matching "clang". (Yegappan Lakshmanan, closes #10578) Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak Patch 8.2.5102 Problem: Interrupt not caught in test. Solution: Consider an exception thrown in the current try/catch when got_int is set. Also catch early exit when not using try/catch. Files: src/indent.c, src/testing.c, src/testdir/test_retab.vim, src/testdir/runtest.vim Patch 8.2.5103 Problem: Build fails with small features. Solution: Add #ifdef. Skip test on MS-Windows. Files: src/indent.c, src/testdir/test_retab.vim Patch 8.2.5104 (after 8.2.5103) Problem: Test hangs on MS-Windows. Solution: Skip another test on MS-Windows. Files: src/testdir/test_retab.vim Patch 8.2.5105 (after 8.2.5104) Problem: Test still hangs on MS-Windows. Solution: Skip "nocatch" test the right way. Files: src/testdir/test_retab.vim Patch 8.2.5106 Problem: Default cmdwin mappings are re-mappable. Solution: Make the default mappings not re-mappable. (closes #10580) Use symbols for the first do_map() argument. Files: src/vim.h, src/ex_getln.c, src/map.c, src/proto/map.pro, src/digraph.c, src/netbeans.c Patch 8.2.5107 Problem: Some callers of rettv_list_alloc() check for not OK. (Christ van Willegen) Solution: Use "==" instead of "!=" when checking the return value. Files: src/evalbuffer.c, src/channel.c, src/cmdexpand.c, src/evalfunc.c, src/evalwindow.c, src/insexpand.c, src/job.c, src/list.c, src/map.c, src/menu.c, src/mouse.c, src/move.c, src/sign.c, src/textprop.c, src/term.c, src/time.c Patch 8.2.5108 Problem: Retab test disabled because it hangs on MS-Windows. Solution: Also set got_int at the other place an overlong text is detected. Files: src/indent.c, src/testdir/test_retab.vim Patch 8.2.5109 Problem: Mode not updated after CTRL-O CTRL-C in Insert mode. Solution: Set redraw_mode and use it. (closes #10581) Files: src/main.c, src/normal.c, src/testdir/test_normal.vim, src/testdir/dumps/Test_mode_updated_1.dump Patch 8.2.5110 Problem: Icon filetype not recognized from the first line. Solution: Add a check for the first line. (Doug Kearns) Files: runtime/autoload/dist/script.vim, src/testdir/test_filetype.vim Patch 8.2.5111 Problem: No test for --gui-dialog-file. Solution: Add a test. Files: src/testdir/test_gui.vim Patch 8.2.5112 (after 8.2.5111) Problem: Gui test hangs on MS-Windows. Solution: Use "!start" to start Vim. Files: src/testdir/test_gui.vim Patch 8.2.5113 Problem: Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel Dupras) Solution: Delete the timer befor forking. (closes #10584) Files: src/os_unix.c, src/proto/os_unix.pro, src/gui.c Patch 8.2.5114 Problem: Time limit on searchpair() does not work properly. Solution: Set the time limit once instead of for each regexp. (closes #10562) Files: src/search.c, src/evalfunc.c, src/testdir/test_search.vim Patch 8.2.5115 Problem: Search timeout is overrun with some patterns. Solution: Check for timeout in more places. Make the flag volatile and atomic. Use assert_inrange() to see what happened. Files: src/regexp_nfa.c, src/regexp_bt.c, src/regexp.c, src/os_unix.c, src/proto/os_unix.pro, src/testdir/test_search.vim Patch 8.2.5116 Problem: "limit" option of matchfuzzy() not always respected. Solution: Remove "else". (Kazuyuki Miyagi, closes #10586) Files: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.5117 Problem: Crash when calling a Lua callback from a :def function. (Bohdan Makohin) Solution: Handle FC_CFUNC in call_user_func_check(). (closes #10587) Files: src/userfunc.c, src/testdir/test_lua.vim Patch 8.2.5118 Problem: MS-Windows: sending a message to another Vim may hang if that Vim is halted. Solution: Add a timeout to serverSendToVim(). (Ken Takata, closes #10585) Files: runtime/pack/dist/opt/editexisting/plugin/editexisting.vim, src/os_mswin.c Patch 8.2.5119 Problem: CI uses cache v2. Solution: Use cache v3. (closes #10588) Files: .github/workflows/ci.yml Patch 8.2.5120 Problem: Searching for quotes may go over the end of the line. Solution: Check for running into the NUL. Files: src/textobject.c Patch 8.2.5121 Problem: Interrupt test sometimes fails. Solution: Use a different file name. Files: src/testdir/test_interrupt.vim Patch 8.2.5122 Problem: Lisp indenting my run over the end of the line. Solution: Check for NUL earlier. Files: src/indent.c, src/testdir/test_indent.vim Patch 8.2.5123 Problem: Using invalid index when looking for spell suggestions. Solution: Do not decrement the index when it is zero. Files: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.5124 Problem: When syntax timeout test fails it does not show the time. Solution: Use assert_inrange(). Files: src/testdir/test_syntax.vim Patch 8.2.5125 Problem: MS-Windows: warnings from MinGW compiler. Solution: Use "volatile". (Yasuhiro Matsumoto, closes #10589) Initialize variable. Files: src/os_win32.c, src/proto/os_win32.pro, src/map.c Patch 8.2.5126 Problem: Substitute may overrun destination buffer. Solution: Disallow switching buffers in a substitute expression. Files: src/ex_docmd.c, src/testdir/test_substitute.vim Patch 8.2.5127 Problem: Using assert_true() does not show value on failure. Solution: Use assert_inrange(). (closes #10593) Files: src/testdir/test_channel.vim, src/testdir/test_hlsearch.vim Patch 8.2.5128 Problem: Syntax highlighting disabled when using synID() in searchpair() skip expression and it times out. (Jaehwang Jung) Solution: Add the redrawtime_limit_set flag. (closes #10562) Files: src/globals.h, src/drawscreen.c, src/syntax.c Patch 8.2.5129 Problem: Timeout handling is not optimal. Solution: Avoid setting timeout_flag twice. Adjust the pointer when stopping the regexp timeout. Adjust variable name. Files: src/os_unix.c, src/os_win32.c, src/regexp.c Patch 8.2.5130 Problem: Edit test for mode message fails when using valgrind. Solution: Use WaitForAssert(). Run beep test later. Files: src/testdir/test_edit.vim Patch 8.2.5131 Problem: Timeout implementation is not optimal. Solution: Further improvements for timeouts. Add a test for searchpair() timeout. (partly by Paul Ollis) Files: src/configure.ac, src/auto/configure, src/testdir/test_hlsearch.vim, src/testdir/test_search.vim Patch 8.2.5132 Problem: :mkview test doesn't test much. Solution: Save the view with the folds closed. (James McCoy, closes #10596) Files: src/testdir/test_mksession.vim Patch 8.2.5133 Problem: MacOS: build fails. Solution: Remove "#if 0" from timer_delete(). Files: src/os_macosx.m Patch 8.2.5134 Problem: Function has confusing name. Solution: Rename tgetent_error() to invoke_tgetent(). Files: src/term.c Patch 8.2.5135 Problem: Running configure gives warnings for main() return type. Solution: Specify "int" return type. Avoid a few more warnings. Files: src/configure.ac, src/auto/configure Patch 8.2.5136 Problem: Debugger test fails when run with valgrind. Solution: Wait longer when using valgrind. Files: src/testdir/shared.vim, src/testdir/test_debugger.vim, src/testdir/test_search.vim Patch 8.2.5137 Problem: Cannot build without the +channel feature. (Dominique Pellé) Solution: Add #ifdef around ch_log() calls. (closes #10598) Files: src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c Patch 8.2.5138 Problem: Various small issues. Solution: Various small improvements. Files: src/filepath.c, src/job.c, src/mark.c, src/move.c, src/popupwin.c, src/testdir/test_filetype.vim Patch 8.2.5139 Problem: TIME_WITH_SYS_TIME is no longer supported by autoconf. Solution: Always include time.h. Files: src/os_unix.h Patch 8.2.5140 Problem: Seachpair timeout test is flaky. Solution: Mark the test as flaky so it is retried. Files: src/testdir/test_search.vim Patch 8.2.5141 Problem: Using "volatile int" in a signal handler might be wrong. Solution: Use "volatile sig_atomic_t". Files: src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c, src/proto/os_win32.pro, src/regexp.c, Patch 8.2.5142 Problem: Startup test fails if there is a status bar at the top of the screen. (Ernie Rael) Solution: Use a larger vertical offset in the test. Files: src/testdir/test_startup.vim Patch 8.2.5143 Problem: Some tests fail when using valgrind. Spurious leak reports. Solution: Use WaitForAssert(). Avoid failing fork/exec. Skip tests where a job is killed when running valgrind. Files: src/testdir/test_iminsert.vim, src/testdir/test_popup.vim, src/testdir/test_cscope.vim, src/testdir/test_channel.vim Patch 8.2.5144 Problem: With 'lazyredraw' set completion menu may be displayed wrong. Solution: When the popup menu is visible do not insert a screen line. (closes #10601) Files: src/screen.c Patch 8.2.5145 Problem: Exit test causes spurious valgrind reports. Solution: Skip test. Add CheckNotValgrind. Files: src/testdir/test_exit.vim, src/testdir/check.vim, src/testdir/test_channel.vim Patch 8.2.5146 Problem: Memory leak when substitute expression nests. Solution: Use an array of expression results. Files: src/alloc.c, src/regexp.c, src/proto/regexp.pro, src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.5147 Problem: Flaky test always fails on retry. Solution: Delete the created function. Files: src/testdir/test_search.vim Patch 8.2.5148 Problem: Invalid memory access when using an expression on the command line. Solution: Make sure the position does not go negative. Files: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.5149 (after 8.2.5148) Problem: Cannot build without the +eval feature. (Tony Mechelynck) Solution: Add #ifdefs. Files: src/ex_getln.c Patch 8.2.5150 Problem: Read past the end of the first line with ":0;'{". Solution: When on line zero check the column is valid for line one. Files: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.5151 Problem: Reading beyond the end of the line with lisp indenting. Solution: Avoid going over the NUL at the end of the line. Files: src/indent.c, src/testdir/test_lispwords.vim Patch 8.2.5152 Problem: search() gets stuck with "c" and skip evaluates to true. Solution: Reset the SEARCH_START option. (closes #10608) Files: src/evalfunc.c, src/testdir/test_syntax.vim Patch 8.2.5153 Problem: "make uninstall" does not remove colors/lists. Solution: Add a line to the Makefile. (closes #10609) Files: src/Makefile Patch 8.2.5154 Problem: Still mentioning version8, some cosmetic issues. Solution: Prefer mentioning version9, cosmetic improvements. Files: src/version.c, src/if_tcl.c, src/regexp.c, src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile Patch 8.2.5155 Problem: In diff mode windows may get out of sync. (Gary Johnson) Solution: Avoid that the other window scrolls for 'cursorbind'. Files: src/move.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_1.dump, src/testdir/dumps/Test_diff_scroll_2.dump Patch 8.2.5156 Problem: Search timeout test often fails with FreeBSD. Solution: Double the maximum time. Files: src/testdir/test_search.vim Patch 8.2.5157 Problem: MS-Windows GUI: CTRL-key combinations do not always work. Solution: Handle special key combinations better. (closes #10613, closes #10602, closes #10579) Files: src/gui_w32.c Patch 8.2.5158 Problem: TSTP and INT signal tests are not run with valgrind. Solution: Sleep a bit longer. (closes #10614) Files: src/testdir/test_signals.vim Patch 8.2.5159 (after 8.2.5157) Problem: Fix for CTRL-key combinations causes more problems than it solves. Solution: Roll back the change. Files: src/gui_w32.c Patch 8.2.5160 Problem: Accessing invalid memory after changing terminal size. Solution: Adjust cmdline_row and msg_row to the value of Rows. Files: src/term.c Patch 8.2.5161 Problem: Might still access invalid memory. Solution: Add extra check for negative value. Files: src/message.c Patch 8.2.5162 Problem: Reading before the start of the line with BS in Replace mode. Solution: Check the cursor column is more than zero. Files: src/edit.c Patch 8.2.5163 Problem: Crash when deleting buffers in diff mode. Solution: Recompute diffs later. Skip window without a valid buffer. Files: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.5164 Problem: Invalid memory access after diff buffer manipulations. Solution: Use zero offset when change removes all lines in a diff block. Files: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.5165 Problem: Import test fails because 'diffexpr' isn't reset. Solution: Reset 'diffexpr'. Files: src/testdir/test_vim9_import.vim Patch 8.2.5166 Problem: Test for DiffUpdated fails. Solution: Also accept a count of two. Files: src/testdir/test_diffmode.vim Patch 8.2.5167 Problem: get(Fn, 'name') on funcref returns special byte code. Solution: Use the printable name. Files: src/evalfunc.c, src/testdir/test_getvar.vim Patch 8.2.5168 Problem: Cannot build with Python 3.11. Solution: Adjust define for _PyObject_TypeCheck. (Zdenek Dohnal, closes #10627) Files: src/if_python3.c Patch 8.2.5169 Problem: Nested :source may use NULL pointer. Solution: Do not use the NULL pointer. Files: src/eval.c, src/testdir/test_vimscript.vim Patch 8.2.5170 Problem: Tiny issues. Solution: Tiny improvements. Files: src/misc1.c, src/screen.c, src/vim.h Patch 8.2.5171 Problem: Dependencies and proto files are outdated. Solution: Update dependencies and proto files. Avoid errors. Files: src/Makefile, src/gui_w32.c, src/os_mswin.c, src/proto/buffer.pro, src/proto/cmdexpand.pro, src/proto/getchar.pro, src/proto/help.pro, src/proto/mbyte.pro, src/proto/option.pro, src/proto/screen.pro, src/proto/syntax.pro, src/proto/textformat.pro, src/proto/textobject.pro, src/proto/time.pro, src/proto/gui_x11.pro, src/proto/if_tcl.pro, src/proto/os_mswin.pro Patch 8.2.5172 Problem: "make menu" still uses legacy script. Solution: make menu generation script use Vim9 script, fix errors. Files: runtime/makemenu.vim ============================================================================== VERSION 9.1 *version-9.1* *version9.1* *vim-9.1* This section is about improvements made between version 9.0 and 9.1. The release 9.1 is dedicated to Vim's Benevolent dictator for life |Bram-Moolenaar|. This release has hundreds of bug fixes, there are a few new features and there are many minor improvements. Vim9 classes ------------ Support for classes and objects in a Vim9 script are added. This is described in |vim9-class|. The following features are supported: - Defining classes and instantiating objects - Multiple constructors - Class variables and methods - Object variables and methods - Public and protected access for variables and methods - Constant and final object/class variables - Extending classes (single inheritance) - Interfaces - Abstract classes - Exporting classes Support for creating a type alias for an existing type is added. Virtual text ------------ Support for adding |virtual-text| to a buffer is added. This is useful for language server features (e.g. inlay hints) Smooth Scroll ------------- Support for scrolling text using screen lines instead of file lines is added. Refer to the 'smoothscroll' option. The EditorConfig (|editorconfig-install|) and the JSON formatting (|ft-json-plugin|) plugins are included. OpenVMS x86_64 platform port: http://www.polarhome.com/vim/ Other improvements *new-other-9.1* ------------------ - Support for undercurl (|t_Ce|), double underline (|t_Us|), dotted underline (|t_ds|) and dashed underline (|t_Ds|) termcap entries and highlight modes (|highlight-term|). - The 'fillchars' option is now a global-local option and allows to specify the character used for the last window line. - The |:vertical| and |:horizontal| modifiers can be used with ":wincmd =" command to equalize windows vertically or horizontally. - |:defer| command to defer the execution of a function till the end of a function. - Support for closing a tab page using the middle mouse button. - Sound support in MacOS. - The |prop_remove()| function can now remove multiple text properties. - The |items()| function now supports a List or a String argument. - The |repeat()| function now supports blob repeat. - Command line completion support for |:runtime| command. - Support for custom completion using |getcompletion()|. - Command-line completion support for option values. - Support for multiple "%=" items in 'statusline'. - Support for the PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel highlight groups. - Text properties can override 'cursorline' highlight. - Support for echoing messages in a popup window |:echowindow|. - Control scroll behavior when splitting windows 'splitkeep'. - Support for mouse scrolling in the MS-Windows console. - Support for using different keyboard protocols 'keyprotocol' (xterm |modifyOtherKeys| and Kitty terminal protocol (CSI u) support). - Support for UTF-16 string index. - Quickfix list items can have associated custom user data. - |reverse()| supports reversing a string. - 'switchbuf' is used by more commands. - |undotree()| can be used with any buffer. - |printf()| supports positional arguments. - |col()|, |charcol()| and |virtcol()| can be used with different windows. - Support for Python3 stable ABI (|python-stable|). - Use |jumplist| like a stack 'jumpoptions'. - Support for writing extended attributes in Linux (|xattr|). - 'errorformat' supports parsing a buffer number ("%b"). - Support for building the python interface using Python 3.12. - |matchaddpos()| is no longer limited to 8 positions. - |readblob()| allows to read part of a file. - 'shortmess' allows to suppress "scanning" messages. - Add the XChaCha20v2 encryption method 'cryptmethod'. - Add support for testing syntax files. - Support "**" for filename expansion with bash using globstar setting. - Add quadruple prime digraph using 4'. - Better high dpi support on Windows. - Various fixes for unsafe memory access, memory leaks, buffer overflows and potential crashes. - Termdebug: Support for the variables window (|termdebug_variables_window|), moving up/down the stack frames (|termdebug-frames|) and setting temporary breakpoints (|:Tbreak|). - xxd: support for using colors in the hex dump output (xxd -R). - xxd: reversing a bit dump (xxd -r). - xxd: customize the variable name used in the C include output (xxd -n). Changed *changed-9.1* ------- - The features |++builtin_terms|, |+cmdline_info|, |+cmdwin|, |+file_in_path|, |+float|, |+path_extra|, |+textobjects|, |+wildignore| and |+wildmenu| are available in all the builds. - Support for Windows-XP is dropped. - Support for VisVim is removed. - The "small" and "big" builds are dropped in favor of "tiny" and "huge" builds. - Mention the detected 'keyprotocol' on ":verbose map" when listing mappings. - The optional Content-Type header is removed from the LSP messages. - |charidx()| returns the character length when the index is one more than the last byte index. - Ctrl-Q works like Ctrl-V in replace mode. - |popup_filter_menu()| now wraps around. - |popup_create()| now aborts on an error. - |g<End>| now jumps to the last non-blank character. - dot and hyphen are supported in highlight group names. - |executable()| resolves symlinks on MS-Windows. - Ruby 1.8 support is dropped. - 'ttyfast' is always set. - |virtcol2col()| returns the first byte for a multi-byte character. - |i_CTRL-O| resets Select Mode. - |mode()| returns more submodes. - r with CTRL-C on a visual area replaces using CTRL-C consistently. - The matchparen plugin no longer uses hard coded match id 3. - The Statusline no longer uses hard coded values "^" and "=" if the highlighting groups for the statusline have been cleared. - 'maxfuncdepth' setting is also used for the maximum callback depth. - Migrate to autoconf 2.71. - Start using C99 feature (declare variable in for loops). Added *added-9.1* ----- Various syntax, indent and other plugins were added. Functions: ~ |err_teapot()| produce error 418 or 503 |getbufoneline()| get a single line from the specified buffer |getcellwidths()| get character cell width overrides |getmouseshape()| get name of the current mouse shape |getscriptinfo()| get list of sourced vim scripts |indexof()| index in a List or Blob of a true expression |instanceof()| check if a variable is an instance of a given class |keytrans()| translate internal key codes to be usable with |:map| |popup_findecho()| get window ID for popup used for |:echowindow| |setcmdline()| set the current command line |strutf16len()| number of UTF-16 code units in a string |swapfilelist()| list of existing swap files in 'directory' |test_mswin_event()| generate an MS-Windows event for testing |utf16idx()| UTF-16 index of a byte in a string Autocommands: ~ |TextChangedT| after a change was made to the text in Terminal mode |WinResized| after a window in the current tab page is resized Commands: ~ |:abstract| define a Vim9 abstract class |:class| start of a class specification |:defer| call function when current function is done |:echowindow| same as :echomsg, but use a popup window |:endinterface| end of an interface specification |:endclass| end of a class specification |:horizontal| following window command works horizontally |:interface| start of an interface specification |:public| prefix for a class or object member |:static| prefix for a class member or function |:this| prefix for an object member |:type| create a type alias Options: ~ 'endoffile' write CTRL-Z at end of the file 'jumpoptions' specifies how jumping is done 'keyprotocol' what keyboard protocol to use for what terminal 'lispoptions' changes how Lisp indenting is done 'showcmdloc' where to show (partial) command 'smoothscroll' scroll by screen lines when 'wrap' is set 'splitkeep' determines scroll behavior for split windows ============================================================================== PATCHES *patches-9.1* *bug-fixes-9.1* *patches-after-9.0* The list of patches that got included since 9.0.0. This includes all the new features, but does not include runtime file changes (syntax, indent, ftplugin, documentation, etc.) Note: authorship and the list of changed files is left out and only visible through `git log` for each commit. Patch 9.0.0001 Problem: Travis CI is no longer used. Solution: Delete the Travis CI configuration. (Hugo Osvaldo Barrera, closes #10636) Patch 9.0.0002 Problem: Map functionality outside of map.c. Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611) Patch 9.0.0003 Problem: Functions are global while they could be local. Solution: Add "static". Add a few tests. (Yegappan Lakshmanan, closes #10612) Patch 9.0.0004 Problem: Plural messages not translated properly. Solution: Use ngettext() in a few more places. (Matvey Tarasov, closes #10606) Patch 9.0.0005 Problem: Hare files are not recognized. Solution: Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630) Patch 9.0.0006 Problem: Not all Visual Basic files are recognized. Solution: Change detection of *.cls files. (Doug Kearns) Patch 9.0.0007 Problem: No support for double, dotted and dashed underlines. Solution: Add the termcap entries and highlight modes. (closes #9553) Patch 9.0.0008 Problem: Cannot specify the variable name for "xxd -i". Solution: Add the "-name" argument. (David Gow, closes #10599) Patch 9.0.0009 Problem: Going past the end of a menu item with only modifier. Solution: Check for NUL. Patch 9.0.0010 Problem: Returning 0 for has('patch-9.0.0') is inconsistent. Solution: Make it return 1. (closes #10640) Patch 9.0.0011 Problem: Reading beyond the end of the line with put command. Solution: Adjust the end mark position. Patch 9.0.0012 Problem: Signature files not detected properly. Solution: Add a function to better detect signature files. (Doug Kearns) Patch 9.0.0013 Problem: Reproducing memory access errors can be difficult. Solution: When testing, copy each line to allocated memory, so that valgrind can detect accessing memory before and/or after it. Fix uncovered problems. Patch 9.0.0014 Problem: Missing part of the test override change. Solution: Add the missing part. Patch 9.0.0015 Problem: With EXITFREE defined terminal menus are not cleared. Solution: Also clear terminal menus. Remove condition that is always true. (closes #10641) Patch 9.0.0016 Problem: Comparing line pointer for 'breakindent' is not reliable. Solution: Make a copy of the line. Patch 9.0.0017 Problem: Accessing memory beyond the end of the line. Solution: Stop Visual mode when closing a window. Patch 9.0.0018 Problem: Going over the end of the typeahead. Solution: Put a NUL after the typeahead. Patch 9.0.0019 Problem: Timers test not run where possible. Solution: Adjust platform checks. (closes #10645) Patch 9.0.0020 Problem: With some completion reading past end of string. Solution: Check the length of the string. Patch 9.0.0021 Problem: Invalid memory access when adding word with a control character to the internal spell word list. Solution: Disallow adding a word with control characters or a trailing slash. Patch 9.0.0022 Problem: Spell test fails. Solution: Expect new error is given. Patch 9.0.0023 Problem: On Solaris timer_create() exists but does not work. Solution: Adjust the configure check to run the test program. (closes #10647) Patch 9.0.0024 Problem: May access part of typeahead buf that isn't filled. Solution: Check length of typeahead. Patch 9.0.0025 Problem: Accessing beyond allocated memory when using the cmdline window in Ex mode. Solution: Use "*" instead of "'<,'>" for Visual mode. Patch 9.0.0026 Problem: Accessing freed memory with diff put. Solution: Bail out when diff pointer is no longer valid. Patch 9.0.0027 Problem: The command line test is getting quite big. Solution: Move command line window tests to a separate file. Patch 9.0.0028 Problem: MS-Windows: tests fail if there is a stray "runtime" directory. Solution: Only use a "runtime" directory if it contains "defaults.vim". Patch 9.0.0029 Problem: The bitmaps/vim.ico file is not in the distribution. Solution: Add it back to the distribution. Adjust the build rules to have it end up in the right place. Patch 9.0.0030 Problem: Matchfuzzy test depends on path of current directory. Solution: Use fnamemodify() to remove the path. (Robin Becker, closes #10650) Patch 9.0.0031 Problem: <cmod> of user command does not have correct verbose value. Solution: Use the value from the command modifier. (closes #10651) Patch 9.0.0032 Problem: In the quickfix window 'cursorline' overrules QuickFixLine highlighting. Solution: Combine the attributes. Add a test. (closes #10654) Patch 9.0.0033 Problem: On a Belgian keyboard CTRL-[ does not work. Solution: Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658) Patch 9.0.0034 Problem: Spell tests do not always clear the word list. Solution: Clear the word list in TearDown(). (closes #10659) Patch 9.0.0035 Problem: Spell dump may go beyond end of an array. Solution: Limit the word length. Patch 9.0.0036 Problem: 'fillchars' cannot have window-local values. Solution: Make 'fillchars' global-local. (closes #5206) Patch 9.0.0037 Problem: Build error. Solution: Add missing change. Patch 9.0.0038 Problem: 'listchars' test fails. Solution: Use window-local value after setting the global value Patch 9.0.0039 Problem: Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka) Solution: Add an #ifdef. Patch 9.0.0040 Problem: Use of set_chars_option() is confusing. Solution: Add "apply" argument to store the result or not. Merge similar code. Patch 9.0.0041 Problem: A couple of filetype patterns do not have "*" before "/etc". Solution: Add the star. (Jonas Strittmatter, closes #10662) Patch 9.0.0042 Problem: Missing change for filetype detection. Solution: Include change to detect guile from shebang line. Patch 9.0.0043 Problem: Insufficient testing for bracket commands. Solution: Add a few more tests. (closes #10668) Patch 9.0.0044 Problem: Typos in comments, wrapping lines. Solution: Adjust comments. Wrap lines. Patch 9.0.0045 Problem: Reading past end of completion with a long line and 'infercase' set. Solution: Allocate the string if needed. Patch 9.0.0046 Problem: Reading past end of completion with duplicate match. Solution: Check string length Patch 9.0.0047 Problem: Using freed memory with recursive substitute. Solution: Always make a copy for reg_prev_sub. Patch 9.0.0048 Problem: Cursor in wrong column with mouse click after concealed text. Solution: Store the text column when drawing text. Patch 9.0.0049 Problem: Csv and tsv files are not recognized. Solution: Add patterns fo csv and tsv files. (Leandro Lourenci, closes #10680) Patch 9.0.0050 Problem: Split else-of is confusing. Solution: Join the lines. (closes #10696) Patch 9.0.0051 Problem: Using CTRL-C with :append may hang Vim. Solution: Reset got_int. (closes #10729, closes #10728) Patch 9.0.0052 Problem: "zG" may throw an error if invalid character follows. Solution: Pass the word length to valid_spell_word(). (Ken Takata, closes #10737) Patch 9.0.0053 Problem: E1281 not tested with the old regexp engine. Solution: Loop over the values of 'regexp'. (Dominique Pellé, closes #10695) Patch 9.0.0054 Problem: Compiler warning for size_t to int conversion. Solution: Add type cast. (Mike Williams, closes #10741) Patch 9.0.0055 Problem: Bitbake files are not detected. Solution: Add bitbake filetype detection by file name and contents. (Gregory Anders, closes #10697) Patch 9.0.0056 Problem: Wrong line number reported when :cexpr fails in :def function. Solution: Set line_number before executing :cexpr. (closes #10735) Patch 9.0.0057 Problem: has('patch-xxx') returns true. Solution: Check for digit. (closes #10751) Patch 9.0.0058 Problem: Win32: cannot test low level events. Solution: Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan, closes #10679) Patch 9.0.0059 Problem: Test file has wrong name. Solution: Rename the file. Various small fixes. (closes #10674) Patch 9.0.0060 Problem: Accessing uninitialized memory when completing long line. Solution: Terminate string with NUL. Patch 9.0.0061 Problem: ml_get error with nested autocommand. Solution: Also check line numbers for a nested autocommand. (closes #10761) Patch 9.0.0062 Problem: Compiler warnings for signed/unsigned char. Solution: Add type casts. (John Marriott) Patch 9.0.0063 Problem: Too many type casts for dict_get functions. Solution: Change the key argument from "char_u *" to "char *". Patch 9.0.0064 Problem: Confusing error when using "q:" in command line window. Solution: Check for the situation and give a better error message. (closes #10756) Patch 9.0.0065 Problem: Cross-compiling doesn't work because of timer_create check. Solution: Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777) Patch 9.0.0066 Problem: Switching window unnecessarily when getting buffer options. Solution: Do not switch window when getting buffer options. (closes #10767) Patch 9.0.0067 Problem: Cannot show virtual text. Solution: Initial changes for virtual text support, using text properties. Patch 9.0.0068 Problem: Build fails with tiny features. Solution: Add #ifdef. Patch 9.0.0069 Problem: Leaking memory when using text prop with inserted text. Solution: Clear the growarray with text. Patch 9.0.0070 Problem: Using utfc_ptr2char_len() when length is negative. Solution: Check value of length. (closes #10760) Patch 9.0.0071 Problem: Command overlaps with printed text in scrollback. Solution: Clear until end-of-line and use correct message chunk. (closes #10765, closes #10764) Patch 9.0.0072 Problem: Compiler warning for uninitialized variable. Solution: Initialize it. (John Marriott) Patch 9.0.0073 Problem: Too many files recognized as bsdl. Solution: Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij, closes #10783) Patch 9.0.0074 Problem: Coverity warns for double free. Solution: Reset cts_text_prop_count when freeing cts_text_props. Patch 9.0.0075 Problem: Some compilers warn for using an uninitialized variable. (Tony Mechelynck) Solution: Initialize the variable. Patch 9.0.0076 Problem: No test for what patch 8.1.1424 fixes. Solution: Add a test. (closes #10789) Patch 9.0.0077 Problem: When switching window in autocmd the restored cursor position may be wrong. Solution: Do not restore the cursor if it was not set. (closes #10775) Patch 9.0.0078 Problem: Star register is changed when deleting and both "unnamed" and "unnamedplus" are in 'clipboard'. Solution: Make the use of the star register work as documented. (Ernie Rael, closes #10669) Patch 9.0.0079 Problem: Error in autoload script not reported for 'foldexpr'. Solution: Reset "emsg_off" when auto-loading a script. (closes #10685) Patch 9.0.0080 Problem: Compiler warning for size_t to int conversion. Solution: Add type casts. (Mike Williams, closes #10795) Patch 9.0.0081 Problem: Command line completion of user command may have duplicates. (Dani Dickstein) Solution: Skip global user command if an identical buffer-local one is defined. (closes #10797) Patch 9.0.0082 Problem: Cannot interrupt global command from command line. Solution: Reset got_int in another place. (closes #10739) Patch 9.0.0083 Problem: ModeChanged event not triggered when leaving the cmdline window. Solution: Call may_trigger_modechanged(). (closes #10791) Patch 9.0.0084 Problem: Using "terraform" filetype for .tfvars file is bad. Solution: use "terraform-vars", so that different completion and other mechanisms can be used. (Radek Simko, closes #10755) Patch 9.0.0085 Problem: ":write" fails after ":file name" and the ":edit". Solution: Reset BF_NOTEDITED when using ":edit". (closes #10790) Patch 9.0.0086 Problem: Tabline is not redrawn when entering command line. Solution: Set "redraw_tabline". (closes #10771) Patch 9.0.0087 Problem: MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc. Solution: Figure out what the key code means. (Anton Sharonov, closes #10687, closes #10454) Patch 9.0.0088 Problem: Pattern for detecting bitbake files is not sufficient. Solution: Adjust the pattern. (Gregory Anders, closes #10743) Patch 9.0.0089 Problem: Fuzzy argument completion doesn't work for shell commands. Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan, closes #10769) Patch 9.0.0090 Problem: No error when assigning bool to a string option with setwinvar(). Solution: Give an error (closes #10766) Patch 9.0.0091 Problem: Duplicate error number. Solution: Use unique error number. Patch 9.0.0092 Problem: Plugins cannot change v:completed_item. Solution: Make v:completed_item writeable. (Shougo Matsushita, closes #10801) Patch 9.0.0093 Problem: Sway config files are recognized as i3config. Solution: Recognize swayconfig separately. (James Eapen, closes #10672) Patch 9.0.0094 Problem: Cursor restored unexpected with nested autocommand. Solution: Do not restore the cursor when it was moved intentionally. (closes #10780) Patch 9.0.0095 Problem: Conditions are always true. Solution: Remove useless conditions. (closes #10802) Patch 9.0.0096 Problem: Flag "new_value_alloced" is always true. Solution: Remove "new_value_alloced". (closes #10792) Patch 9.0.0097 Problem: Long quickfix line is truncated for :clist. Solution: Allocate a buffer if needed. Patch 9.0.0098 Problem: missing include file in timer_create configure check. Solution: Include stdlib.h. Patch 9.0.0099 Problem: Scrollback can be wrong after redrawing the command line. Solution: Clear unfinished scrollback when redrawing. (closes #10807) Patch 9.0.0100 Problem: Get hit-enter prompt for system() when '!' is in 'guioptions'. Solution: Do not call wait_return() when not redrawing. (closes #3327) Patch 9.0.0101 Problem: Invalid memory access in diff mode with "dp" and undo. Solution: Make sure the line number does not go below one. Patch 9.0.0102 Problem: Reading past end of line with insert mode completion. Solution: Check text length. Patch 9.0.0103 Problem: If running configure with cached results -lrt may be missing. Solution: Use two cache variables, one without and one with -lrt. (closes #10799) Swap checks to avoid adding -lrt unnecessarily. Patch 9.0.0104 Problem: Going beyond allocated memory when evaluating string constant. Solution: Properly skip over <Key> form. Patch 9.0.0105 Problem: Illegal memory access when pattern starts with illegal byte. Solution: Do not match a character with an illegal byte. Patch 9.0.0106 Problem: Illegal byte regexp test doesn't fail when fix is reversed. Solution: Make sure illegal bytes end up in sourced script file. Patch 9.0.0107 Problem: Condition always has the same value. Solution: Remove the condition. Patch 9.0.0108 Problem: Configure check for timer_create may give wrong error. Solution: Give a warning instead of an error. Patch 9.0.0109 Problem: Writing over the end of a buffer on stack when making list of spell suggestions. Solution: Make sure suggested word is not too long. (closes #10812) Patch 9.0.0110 Problem: Help tag generation picks up words in code examples. Solution: Skip over examples. (Carlo Teubner, closes #10813) Patch 9.0.0111 Problem: "nocombine" is missing from synIDattr(). Solution: Add "nocombine". (Muni Tanjim, closes #10816) Patch 9.0.0112 Problem: MS-Windows: test fails because file already exists. Solution: Wait a little while until the file is gone. Patch 9.0.0113 Problem: has() is not strict about parsing the patch version. Solution: Check the version more strictly. (Ken Takata, closes #10752) Patch 9.0.0114 Problem: The command line takes up space even when not used. Solution: Allow for 'cmdheight' to be set to zero. (Shougo Matsushita, closes #10675, closes #940) Patch 9.0.0115 Problem: When 'cmdheight' is zero pressing ':' may scroll a window. Solution: Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero. Patch 9.0.0116 Problem: Virtual text not displayed if 'signcolumn' is "yes". Solution: Set c_extra and c_final to NUL. Patch 9.0.0117 Problem: Text of removed textprop with text is not freed. Solution: Free the text when the property is removed. Reduce the array size to ignore NULLs at the end. Patch 9.0.0118 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes #10822) Patch 9.0.0119 Problem: Tiny chance that creating a backup file fails. Solution: Check for EEXIST error. (Ken Takata, closes #10821) Patch 9.0.0120 Problem: MS-Windows GUI: cannot use AltGr + Space. Solution: Check for VK_MENU instead of VK_LMENU. (Anton Sharonov, closes #10820, closes #10753) Patch 9.0.0121 Problem: Cannot put virtual text after or below a line. Solution: Add "text_align" and "text_wrap" arguments. Patch 9.0.0122 Problem: Breakindent test fails. Solution: Fix condition. Patch 9.0.0123 Problem: Cannot build with small features. Solution: Add #ifdef. Patch 9.0.0124 Problem: Code has more indent than needed. Solution: Use continue and return statements. (closes #10824) Patch 9.0.0125 Problem: Cursor positioned wrong with virtual text after the line. Solution: Clear cts_with_trailing. Patch 9.0.0126 Problem: Expanding file names fails in directory with more than 255 entries. Solution: Use an int instead of char_u to count. (John Drouhard, closes #10818) Patch 9.0.0127 Problem: Unused variable. Solution: Remove the variable. (closes #10829) Patch 9.0.0128 Problem: Coverity complains about possible double free. Solution: Clear the pointer to avoid warnings. Patch 9.0.0129 Problem: Compiler warning for int/size_t usage. Solution: Add a type cast. (Mike Williams, closes #10830) Patch 9.0.0130 Problem: Cursor position wrong when inserting around virtual text. Solution: Update the cursor position properly. Patch 9.0.0131 Problem: Virtual text with Tab is not displayed correctly. Solution: Change any Tab to a space. Patch 9.0.0132 Problem: Multi-byte characters in virtual text not handled correctly. Solution: Count screen cells instead of bytes. Patch 9.0.0133 Problem: Virtual text after line moves to joined line. (Yegappan Lakshmanan) Solution: When joining lines only keep virtual text after the last line. Patch 9.0.0134 Problem: No test for text property with column zero. Solution: Add a test. Add message to assert for no open popups. Patch 9.0.0135 Problem: Comment about tabpage line above the wrong code. Solution: Move the comment. (closes #10836) Patch 9.0.0136 Problem: After CTRL-Left-mouse click a mouse scroll also has CTRL. Solution: Reset orig_mouse_code also for wheel events. (closes #10840) Patch 9.0.0137 Problem: Debugger test may fail when $CWD is very long. Solution: Skip the test if the directory name is too long. (James McCoy, closes #10837) Patch 9.0.0138 Problem: Not enough characters accepted for 'spellfile'. Solution: Add vim_is_fname_char() and use it for 'spellfile'. Patch 9.0.0139 Problem: Truncating virtual text after a line not implemented. Cursor positioning wrong with Newline in the text. Solution: Implement truncating. Disallow control characters in the text. (closes #10842) Patch 9.0.0140 Problem: execute() does not use the "legacy" command modifier. Solution: pass the command modifier in sticky_cmdmod_flags. (Kota Kato, closes #10845) Patch 9.0.0141 Problem: "delmenu" does not remove autocommands. Running menu test function alone fails. Solution: Delete autocommands Make sure there is at least one menu. (closes #10848) Patch 9.0.0142 Problem: Crash when adding and removing virtual text. (Ben Jackson) Solution: Check that the text of the text property still exists. Patch 9.0.0143 Problem: Cursor positioned after virtual text in empty line. Solution: Keep cursor in the first column. (closes #10786) Patch 9.0.0144 Problem: Text property cannot override 'cursorline' highlight. Solution: Add the "override" flag to prop_type_add(). (closes #5533, closes #8225). Patch 9.0.0145 Problem: Substitute that joins lines drops text properties. Solution: Move text properties of the last line to the new line. Patch 9.0.0146 Problem: Missing part of change for "override" flag. Solution: Add the missing change. Patch 9.0.0147 Problem: Cursor positioned wrong after two text properties with virtual text and "below" alignment. (Tim Pope) Solution: Do not stop after a text property using MAXCOL. (closes #10849) Patch 9.0.0148 Problem: A "below" aligned text property gets 'showbreak' displayed. Solution: Do not use 'showbreak' before or in virtual text. (issue #10851) Patch 9.0.0149 Problem: Test for fuzzy completion fails sometimes. Solution: Use a more specific file name to minimize the chance of matching a random directory name. (closes #10854) Patch 9.0.0150 Problem: Error for using #{ in an expression is a bit confusing. Solution: Mention that this error is only given for an expression. Avoid giving the error more than once. (closes #10855) Patch 9.0.0151 Problem: A "below" aligned text property does not work with 'nowrap'. Solution: Start a new screen line to display the virtual text. (closes #10851) Patch 9.0.0152 Problem: Warning for unused argument in small build. Solution: Add "UNUSED". Patch 9.0.0153 Problem: No fold and sign column for virtual text with "below" align and 'nowrap'. Solution: Go back to draw state WL_START when moving to the next line. (closes #10851) Patch 9.0.0154 Problem: Text properties wrong after splitting a line. Solution: Check for text properties after the line. (closes #10857) Patch 9.0.0155 Patch 9.0.0156 Problem: Giving E1170 only in an expression is confusing. Solution: Give E1170 for any "#{ comment". (closes #10855) Patch 9.0.0157 Problem: 'showbreak' displayed below truncated "after" text prop. Solution: Suppress 'showbreak' when "after" prop doesn't wrap. Patch 9.0.0158 Problem: With 'nowrap' "below" property not displayed correctly. Solution: Adjust virtual text with 'nowrap', do not truncate. Patch 9.0.0159 Problem: Cannot build with small features. Solution: Check for E1170 only with FEAT_EVAL. Patch 9.0.0160 Problem: Some diff mode tests fail. Solution: Only advance "ptr" when a text property follows. Patch 9.0.0161 Problem: Warning for uninitialized variable. (Tony Mechelynck) Solution: Initialize line_attr_save. Patch 9.0.0162 Problem: Text property "below" gets indent if 'breakindent' is set. (Tim Pope) Solution: Do not put indent before text property. (closes #10859) Patch 9.0.0163 Problem: Text property not adjusted for text inserted with "p". Solution: Adjust column and length of text properties. Patch 9.0.0164 Problem: Using freed memory with put command. Solution: Get byte offset before replacing the line. Patch 9.0.0165 Problem: Looking up a text property type by ID is slow. Solution: Keep an array of property types sorted on ID. Patch 9.0.0166 Problem: When using text properties the line text length is computed twice. Solution: If the text length was already computed don't do it again. Patch 9.0.0167 Problem: Checking for text properties could be a bit more efficient. Solution: Return early when there are no text properties. Update TODO items. Patch 9.0.0168 Problem: Cursor positioned wrong with two virtual text properties close together. (Ben Jackson) Solution: Add the original size, not the computed one. (closes #10864) Patch 9.0.0169 Problem: Insufficient testing for line2byte() with text properties. Solution: Add tests with a lot of text. Patch 9.0.0170 Problem: Various minor code formatting issues. Solution: Improve code formatting. Patch 9.0.0171 Problem: Quickfix line highlight is overruled by 'cursorline'. Solution: Reverse the combination of attributes. (closes #10654) Patch 9.0.0172 Problem: Trying to allocate zero bytes. Solution: Do not allocate the proptype array when there are none. (closes #10867) Patch 9.0.0173 Problem: Assert fails only on MS-Windows. Solution: Disable the assert for now. Patch 9.0.0174 Problem: No error for using "#{ comment" in a compiled function. Solution: Make error checking for "#{" consistent. (closes #10855) Patch 9.0.0175 Problem: Spell checking for capital not working with trailing space. Solution: Do not calculate cap_col at the end of the line. (Christian Brabandt, closes #10870, issue #10838) Patch 9.0.0176 Problem: Checking character options is duplicated and incomplete. Solution: Move checking to check_chars_options(). (closes #10863) Patch 9.0.0177 Problem: Cursor position wrong with 'virtualedit' and mouse click after end of the line. (Hermann Mayer) Solution: Do not use ScreenCols[] when 'virtualedit' is active. (closes #10868) Patch 9.0.0178 Problem: Cursor position wrong with virtual text before Tab. Solution: Use the byte length, not the cell with, to compare the column. Correct tab size after text prop. (closes #10866) Patch 9.0.0179 Problem: Cursor position wrong with wrapping virtual text in empty line. Solution: Adjust handling of an empty line. (closes #10875) Patch 9.0.0180 Problem: Stray logfile appears when running tests. Solution: Remove ch_logfile() calls. Patch 9.0.0181 Problem: Textprop test with line2byte() fails on MS-Windows. Solution: Fix updating chunks in ml_delete_int(). Patch 9.0.0182 Problem: Quarto files are not recognized. Solution: Recognize quarto files by the extension. (Jonas Strittmatter, closes #10880) Patch 9.0.0183 Problem: Extra space after virtual text when 'linebreak' is set. Solution: Do not count virtual text when getting linebreak value. (closes #10884) Patch 9.0.0184 Problem: Virtual text prop highlight continues after truncation. Solution: Recompute the length of attributes. Patch 9.0.0185 Problem: Virtual text does not show if there is a text prop at same position. (Ben Jackson) Solution: Fix the sorting of properties. (closes #10879) Patch 9.0.0186 Problem: Virtual text without highlighting does not show. (Ben Jackson) Solution: Use a text property when it has highlighting or when it has text. (closes #10878) Patch 9.0.0187 Problem: Command line height changes when maximizing window height. Solution: Do not change the command line height. (closes #10885) Patch 9.0.0188 Problem: Strange effects when using virtual text with "text_align" and non-zero column. (Martin Tournoij) Solution: Give an error. (closes #10888) Patch 9.0.0189 Problem: Invalid memory access for text prop without highlight. Solution: Check for a valid highlight ID. Patch 9.0.0190 Problem: The way 'cmdheight' can be made zero is inconsistent. Solution: Only make 'cmdheight' zero when setting it explicitly, not when resizing windows. (closes #10890) Patch 9.0.0191 Problem: Messages test fails; window size incorrect when 'cmdheight' is made smaller. Solution: Properly cleanup after test with cmdheight zero. Resize windows correctly when 'cmdheight' gets smaller. Patch 9.0.0192 Problem: Possible invalid memory access when 'cmdheight' is zero. (Martin Tournoij) Solution: Avoid going over the end of w_lines[] when w_height is Rows. (closes #10882) Patch 9.0.0193 Problem: Search and match highlight interfere with virtual text highlight. (Ben Jackson) Solution: Check for match highlight after text properties. Reset and restore search highlight when showing virtual text. (closes #10892) Patch 9.0.0194 Problem: Cursor displayed in wrong position after removing text prop. (Ben Jackson) Solution: Invalidate the cursor position. (closes #10898) Patch 9.0.0195 Problem: Metafun files are not recognized. Solution: Add filetype detection patterns. Patch 9.0.0196 Problem: Finding value in list may require a for loop. Solution: Add indexof(). (Yegappan Lakshmanan, closes #10903) Patch 9.0.0197 Problem: Astro files are not detected. Solution: Add a pattern to match Astro files. (Emilia Zapata, closes #10904) Patch 9.0.0198 Problem: ml_get error when switching buffer in Visual mode. Solution: End Visual mode when switching buffer. (closes #10902) Patch 9.0.0199 Problem: Cursor position wrong with two right-aligned virtual texts. Solution: Add the padding for right-alignment. (issue #10906) Patch 9.0.0200 Problem: cursor in a wrong position if 'wrap' is off and using two right aligned text props in one line. Solution: Count an extra line for a right aligned text property after a below or right aligned text property. (issue #10909) Patch 9.0.0201 Problem: CursorLine highlight overrules virtual text highlight. Solution: Let extra attribute overrule line attribute. (closes #10909) Patch 9.0.0202 Problem: Code and help for indexof() is not ideal. Solution: Refactor the code, improve the help. (Yegappan Lakshmanan, closes #10908) Patch 9.0.0203 Problem: Confusing variable name. Solution: Use "prim_aep" instead of "spell_aep". Patch 9.0.0204 Problem: indexof() may leak memory. Solution: Free allocated values. (Yegappan Lakshmanan, closes #10916) Patch 9.0.0205 Problem: Cursor in wrong position when inserting after virtual text. (Ben Jackson) Solution: Put the cursor after the virtual text, where the text will be inserted. (closes #10914) Patch 9.0.0206 Problem: Redraw flags are not named specifically. Solution: Prefix "UPD_" to the flags, for UPDate_screen(). Patch 9.0.0207 Problem: Stacktrace not shown when debugging. Solution: Set msg_scroll in msg_source(). (closes #10917) Patch 9.0.0208 Problem: The override flag has no effect for virtual text. (Ben Jackson) Solution: Make the override flag work. (closes #10915) Patch 9.0.0209 Problem: Build error with small features. Solution: Add #ifdef. Patch 9.0.0210 Problem: 'list' mode does not work properly with virtual text. Solution: Show the "$" at the right position. (closes #10913) Patch 9.0.0211 Problem: Invalid memory access when compiling :lockvar. Solution: Don't read past the end of the line. Patch 9.0.0212 Problem: Invalid memory access when compiling :unlet. Solution: Don't read past the end of the line. Patch 9.0.0213 Problem: Using freed memory with error in assert argument. Solution: Make a copy of the error. Patch 9.0.0214 Problem: Splitting a line may duplicate virtual text. (Ben Jackson) Solution: Don't duplicate a text property with virtual text. Make auto-indenting work better. (closes #10919) Patch 9.0.0215 Problem: Not passing APC_INDENT flag. Solution: Pass the flag where it's needed. Patch 9.0.0216 Problem: Undo earlier test sometimes fails on MS-Windows. Solution: Use another file name. Patch 9.0.0217 Problem: 'shellslash' works differently when sourcing a script again. Solution: Use the name from the script item. (closes #10920) Patch 9.0.0218 Problem: Reading before the start of the line. Solution: When displaying "$" check the column is not negative. Patch 9.0.0219 Problem: Cannot make a funcref with "s:func" in a def function in legacy script. Solution: Allow for using a lower case function name after "s:". (Kota Kato, closes #10926) Patch 9.0.0220 Problem: Invalid memory access with for loop over NULL string. Solution: Make sure mb_ptr2len() consistently returns zero for NUL. Patch 9.0.0221 Problem: Accessing freed memory if compiling nested function fails. Solution: Mess up the variable name so that it won't be found. Patch 9.0.0222 Problem: No good reason why text objects are only in larger builds. Solution: Graduate +textobjects. Patch 9.0.0223 Problem: Typo in diffmode test. Solution: Fix the typo. (closes #10932) Patch 9.0.0224 Problem: Using NULL pointer when skipping compiled code. Solution: Check for skipping. Patch 9.0.0225 Problem: Using freed memory with multiple line breaks in expression. Solution: Free eval_tofree later. Patch 9.0.0226 Problem: job_start() test may fail under valgrind. Solution: Wait until the job is running. Patch 9.0.0227 Problem: Cannot read error message when abort() is called. Solution: Output a newline before calling abort(). Patch 9.0.0228 Problem: Crash when pattern looks below the last line. Solution: Consider invalid lines to be empty. (closes #10938) Patch 9.0.0229 Problem: Vim9: error message for missing type is not clear. Solution: Mention the context. (issue #10944) Patch 9.0.0230 Problem: No error for comma missing in list in :def function. Solution: Check for missing comma. (closes #10943) Patch 9.0.0231 Problem: Expanding "**" may loop forever with directory links. Solution: Check for being interrupted. (closes #10946) Patch 9.0.0232 Problem: Test with BufNewFile autocmd is flaky. Solution: Use another file name. Patch 9.0.0233 Problem: Removing multiple text properties takes many calls. Solution: Pass a list to prop_remove(). (Ben Jackson, closes #10945) Patch 9.0.0234 Problem: Cannot make difference between the end of :normal and a character in its argument. Solution: Add the "typebuf_was_empty" flag. (closes #10950) Patch 9.0.0235 Problem: 'autoshelldir' does not work with chunked response. Solution: Collect chunks before parsing OSC 7. (closes #10949) Patch 9.0.0236 Problem: Popup menu not removed when 'wildmenu' reset while it is visible. Solution: Do not check p_wmnu, only pum_visible(). (closes #10953) Patch 9.0.0237 Problem: Mac: cannot build if dispatch.h is not available. Solution: Add #ifdef. (Evan Miller, closes #10954) Patch 9.0.0238 Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. Solution: Only show matches when 'wildmode' contains "list". (closes #10951) Patch 9.0.0239 Problem: Build failure without the +wildmenu feature. Solution: Move parenthesis. Patch 9.0.0240 Problem: Crash when using ":mkspell" with an empty .dic file. Solution: Check for an empty word tree. Patch 9.0.0241 Problem: "make install" does not install shared syntax file. (James McCoy) Solution: Install and uninstall the shared syntax files. (closes #10956) Patch 9.0.0242 Problem: "make install" still fails. (Wilhelm Payne) Solution: Also add the directory to installrtbase. (Dominique Pellé) Patch 9.0.0243 Problem: Text properties "below" sort differently on MS-Windows. Solution: Use the ID as a tie breaker. (closes #10958) Patch 9.0.0244 Problem: Cannot easily get the list of sourced scripts. Solution: Add the getscriptinfo() function. (Yegappan Lakshmanan, closes #10957) Patch 9.0.0245 Problem: Mechanism to prevent recursive screen updating is incomplete. Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). (issue #10952) Patch 9.0.0246 Problem: Using freed memory when 'tagfunc' deletes the buffer. Solution: Make a copy of the tag name. Patch 9.0.0247 Problem: Cannot add padding to virtual text without highlight. Solution: Add the "text_padding_left" argument. (issue #10906) Patch 9.0.0248 Problem: Duplicate code in finding a script in the execution stack. Solution: Reduce duplicate code. (closes #10961) Patch 9.0.0249 Problem: No test for what 9.0.0234 fixes. Solution: Add a test. (issue #10950) Patch 9.0.0250 Problem: Slightly inconsistent error messages. Solution: Make it "Using a Float". (closes #10959) Patch 9.0.0251 Problem: Test output shows up in git. Solution: Ignore the "failed" directory. (Yao-Ching Huang, closes #10969) Patch 9.0.0252 Problem: Cursor in wrong place after virtual text. Solution: Do not change the length of a virtual text property. (closes #10964) Patch 9.0.0253 Problem: A symlink to an autoload script results in two entries in the list of scripts, items expected in one are actually in the other. Solution: Have one script item refer to the actually sourced one. (closes #10960) Patch 9.0.0254 Problem: Typo in function name. Solution: Rename the function. (closes #10971) Patch 9.0.0255 Problem: Build failure without the eval feature. Solution: Add #ifdef. Patch 9.0.0256 Problem: Compiler warning for uninitialized variables. Solution: Initialize the variables. Patch 9.0.0257 Problem: "->" in ":scriptnames" output not tested yet. Solution: Add a check. Patch 9.0.0258 Problem: MS-Windows installer skips syntax/shared. Solution: Use "File /r" in the installer script. (Ken Takata, closes #10972) Patch 9.0.0259 Problem: Crash with mouse click when not initialized. Solution: Check TabPageIdxs[] is not NULL. Patch 9.0.0260 Problem: Using freed memory when using 'quickfixtextfunc' recursively. Solution: Do not allow for recursion. Patch 9.0.0261 Problem: bufload() reads a file even if the name is not a file name. (Cyker Way) Solution: Do not read the file when the buffer name is not a file name. (closes #10975) Patch 9.0.0262 Problem: Build failure without the +quickfix feature. Solution: Add #ifdef. Patch 9.0.0263 Problem: Too many #ifdefs. Solution: Make some functions always available. Patch 9.0.0264 Problem: CI still runs on Ubuntu 18.04. Solution: Run CI on Ubuntu 20.04. (closes #10582) Patch 9.0.0265 Problem: No good reason why the "gf" command is not in the tiny version. Solution: Graduate the file_in_path feature. Patch 9.0.0266 Problem: Compiler warning for unused argument. Solution: Add UNUSED. Patch 9.0.0267 Problem: Coverity workflow still uses Ubuntu 18.04. Solution: Use Ubuntu 20.04 Patch 9.0.0268 Problem: Build error without the +eval feature. Solution: Remove #ifdef. Patch 9.0.0269 Problem: getscriptinfo() does not include the version. Cannot select entries by script name. Solution: Add the "version" item and the "name" argument. (Yegappan Lakshmanan, closes #10962) Patch 9.0.0270 Problem: Some values of 'path' and 'tags' do not work in the tiny version. Solution: Graduate the +path_extra feature. Patch 9.0.0271 Problem: Using INIT() in non-header files. Solution: Remove INIT(). (closes #10981) Patch 9.0.0272 Problem: BufReadCmd not triggered when loading a "nofile" buffer. (Maxim Kim) Solution: Call readfile() but bail out before reading a file. (closes #10983) Patch 9.0.0273 Problem: Konsole termresponse not recognized. Solution: Handle Konsole like libvterm, set 'ttymouse' to "sgr". (closes #10990) Patch 9.0.0274 Problem: Netrw plugin does not show remote files. Solution: Do read a file when 'buftype' is "acwrite". (closes #10983) Patch 9.0.0275 Problem: BufEnter not triggered when using ":edit" in "nofile" buffer. Solution: Let readfile() return NOTDONE. (closes #10986) Patch 9.0.0276 Problem: 'buftype' values not sufficiently tested. Solution: Add and extend tests with 'buftype' values. (closes #10988) Patch 9.0.0277 Problem: Coverity CI: update-alternatives not needed with Ubuntu 20.04. Solution: Remove update-alternatives for Lua. (closes #10987) Patch 9.0.0278 Problem: The +wildignore feature is nearly always available. Solution: Graduate +wildignore for consistency. Patch 9.0.0279 Problem: The tiny version has the popup menu but not 'wildmenu'. Solution: Graduate the wildmenu feature. Patch 9.0.0280 Problem: The builtin termcap list depends on the version. Solution: Always include all termcap entries. Remove duplicate lines. Patch 9.0.0281 Problem: Build failure without the +eval feature. Solution: Add #ifdef. Patch 9.0.0282 Problem: A nested timeout stops the previous timeout. Solution: Ignore any nested timeout. Patch 9.0.0283 Problem: Cannot complete "syn list @cluster". Solution: Recognize and handle "list @". (Björn Linse, closes #10990) Patch 9.0.0284 Problem: Using static buffer for multiple completion functions. Solution: Use one buffer in expand_T. Patch 9.0.0285 Problem: It is not easy to change the command line from a plugin. Solution: Add setcmdline(). (Shougo Matsushita, closes #10869) Patch 9.0.0286 Problem: Using freed memory when location list changed in autocmd. Solution: Return QF_ABORT and handle it. (Yegappan Lakshmanan, closes #10993) Patch 9.0.0287 Problem: Irix systems no longer exist. Solution: Remove references to Irix. (Yegappan Lakshmanan, closes #10994) Patch 9.0.0288 Problem: When 'cmdheight' is zero some messages are not displayed. Solution: Use a popup notification window. Patch 9.0.0289 Problem: Invalid memory write. Solution: Do not put NUL in a static string. Patch 9.0.0290 Problem: Compiler warning for variable set but not used. Solution: Add #ifdef. Patch 9.0.0291 Problem: Test failing. Solution: Run test with cmdheight=0 last. Patch 9.0.0292 Problem: Test causes another test to fail. Solution: Redraw to remove the popup window Patch 9.0.0293 Problem: Messages window not hidden when starting a command line. Solution: Hide the messages window. (closes #10996) Patch 9.0.0294 Problem: Crash when 'cmdheight' is 0 and popup_clear() used. Solution: Reset "message_win" when the message popup is cleared. Close the popup when 'cmdheight' is non-zero. Add a screendump test. Patch 9.0.0295 Problem: GUI drop files test sometimes fails. Solution: Mark the test as flaky. Patch 9.0.0296 Problem: Message in popup is shortened unnecessary. Solution: Do not use 'showcmd' and 'ruler' for a message in the popup. Set the timer when unhiding the message popup. Patch 9.0.0297 Problem: Cursor position wrong after right aligned virtual text. (Iizuka Masashi) Solution: Take the width of the column offset into account. (closes #10997) Also fix virtual text positioning. Patch 9.0.0298 Problem: Compiler warning for size_t to int conversion. Solution: Add a type cast. (Wilhelm Payne, closes #11000) Patch 9.0.0299 Problem: Error messages for setcmdline() could be better. Solution: Use more specific error messages. (Yegappan Lakshmanan, closes #10995) Patch 9.0.0300 Problem: 'cpoptions' tests are flaky. Solution: Use a different file name for each test. Patch 9.0.0301 Problem: The message window popup is delayed after an error message. Solution: Do not set emsg_on_display when using the message window. Patch 9.0.0302 Problem: CI for Coverity is bothered by deprecation warnings. Solution: Ignore deprecation warnings. (closes #11002) Patch 9.0.0303 Problem: It is not easy to get information about a script. Solution: Make getscriptinfo() return the version. When selecting a specific script return functions and variables. (Yegappan Lakshmanan, closes #10991) Patch 9.0.0304 Problem: WinScrolled is not triggered when only skipcol changes. Solution: Add w_last_skipcol and use it. (closes #10998) Patch 9.0.0305 Problem: CI lists useless deprecation warnings. Solution: Ignore deprecation warnings. (closes #11003) Patch 9.0.0306 Problem: Buffer write message is two lines in message popup window. Solution: Overwrite message if "msg_scroll" is off. Patch 9.0.0307 Problem: :echomsg doesn't work properly with cmdheight=0. Solution: Improve scrolling and displaying. Patch 9.0.0308 Problem: When cmdheight is zero the attention prompt doesn't show. Solution: Do not use the message window for a prompt. Patch 9.0.0309 Problem: Invalid memory access when cmdheight is zero. Solution: Check index in w_lines is smaller than Rows. Patch 9.0.0310 Problem: Output of :messages disappears when cmdheight is zero. Solution: Do not use the messages window for :messages. Make Esc close the messages window. Patch 9.0.0311 Problem: Test for hit-Enter prompt fails. Solution: Only reset cmdline_row when 'cmdheight' is zero. Patch 9.0.0312 Problem: Test for cmdheight zero fails. Solution: Do not close the messages window for CTRL-C. Patch 9.0.0313 Problem: Using common name in tests leads to flaky tests. Solution: Rename files and directories to be more specific. Patch 9.0.0314 Problem: VDM files are not recognized. Solution: Add patterns for VDM files. (Alessandro Pezzoni, closes #11004) Patch 9.0.0315 Problem: Shell command is displayed in message window. Solution: Do not echo the shell command in the message window. Patch 9.0.0316 Problem: Screen flickers when 'cmdheight' is zero. Solution: Redraw over existing text instead of clearing. Patch 9.0.0317 Problem: When updating the whole screen a popup may not be redrawn. Solution: Mark the screen and windows for redraw also when not clearing. Also mark popup windows for redraw. Patch 9.0.0318 Problem: Clearing screen causes flicker. Solution: Do not clear but redraw in more cases. Add () to "wait_return". Patch 9.0.0319 Problem: Godot shader files are not recognized. Solution: Add patterns for "gdshader". (Maxim Kim, closes #11006) Patch 9.0.0320 Problem: Command line type of CmdlineChange differs from getcmdtype(). Solution: Use the same type. (closes #11005) Patch 9.0.0321 Problem: Cannot use the message popup window directly. Solution: Add ":echowindow". Patch 9.0.0322 Problem: Crash when no errors and 'quickfixtextfunc' is set. Solution: Do not handle errors if there aren't any. Patch 9.0.0323 Problem: Using common name in tests leads to flaky tests. Solution: Rename files and directories to be more specific. Patch 9.0.0324 Problem: MS-Windows: resolve() test fails. Solution: Revert renaming the directory. Patch 9.0.0325 Problem: MS-Windows: completion test fails. Solution: Adjust directory prefix. Patch 9.0.0326 Problem: Some changes for cmdheight=0 are not needed. Solution: Revert resize behavior if height is greater than the available space. (Shougo Matsushita, closes #11008) Patch 9.0.0327 Problem: items() does not work on a list. (Sergey Vlasov) Solution: Make items() work on a list. (closes #11013) Patch 9.0.0328 Problem: OLD_DIGRAPHS is unused. Solution: Remove OLD_DIGRAPHS. Also drop HPUX_DIGRAPHS. Patch 9.0.0329 Problem: ":highlight" hangs when 'cmdheight' is zero. Solution: Add to msg_col when using the message window. (closes #11014) Patch 9.0.0330 Problem: Method tests fail. Solution: Adjust for change of items(). Patch 9.0.0331 Problem: Cannot use items() on a string. Solution: Make items() work on a string. (closes #11016) Patch 9.0.0332 Problem: Overwrite check may block BufWriteCmd. Solution: Do not use overwrite check when 'buftype' is "acwrite". (closes #11011) Patch 9.0.0333 Problem: Method test fails. Solution: Adjust test for items() now working on string. Patch 9.0.0334 Problem: Test does not properly clean up. Solution: Fix typo in argument of delete(). (Dominique Pellé, closes #11010) Patch 9.0.0335 Problem: Checks for Dictionary argument often give a vague error message. Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009) Patch 9.0.0336 Problem: Tests are flaky because of using a common file name. Solution: Rename files and directories to be more unique. Patch 9.0.0337 Problem: Flicker when resetting cmdline_row after updating the screen. Solution: Do not update cmdline_row. (issue #11017) Patch 9.0.0338 Problem: Return value of list_append_list() not always checked. Solution: Check return value and handle failure. Patch 9.0.0339 Problem: No check if the return value of XChangeGC() is NULL. Solution: Only use the return value when it is not NULL. (closes #11020) Patch 9.0.0340 Problem: The 'cmdheight' zero support causes too much trouble. Solution: Revert support for 'cmdheight' being zero. Patch 9.0.0341 Problem: mapset() does not restore <Nop> mapping properly. Solution: Use an empty string for <Nop>. (closes #11022) Patch 9.0.0342 Problem: ":wincmd =" equalizes in two directions. Solution: Make ":vertical wincmd =" equalize vertically only and ":horizontal wincmd =" equalize horizontally only. Patch 9.0.0343 Problem: ColorScheme autocommand triggered when colorscheme is not found. (Romain Lafourcade) Solution: Only trigger ColorScheme when loading the colorscheme succeeds. (closes #11024) Patch 9.0.0344 Problem: MS-Windows: background color wrong in Console. Solution: Figure out the default console background color. (Yasuhiro Matsumoto, issue #10310) Patch 9.0.0345 Problem: Error message for list argument could be clearer. Solution: Include the argument number. (Yegappan Lakshmanan, closes #11027) Patch 9.0.0346 Problem: :horizontal modifier not fully supported. Solution: Also use :horizontal for completion and user commands. (closes #11025) Patch 9.0.0347 Problem: MS-Windows: cannot set cursor shape in Windows Terminal. Solution: Make cursor shape work with Windows Terminal. (Ken Takata, closes #11028, closes #6576) Patch 9.0.0348 Problem: MS-Windows: GUI mouse move event test is flaky. Solution: Wait for a little while for the first move event. Patch 9.0.0349 Problem: Filetype of *.sil files not well detected. Solution: Inspect the file contents to guess the filetype. Patch 9.0.0350 Problem: :echowindow does not work in a compiled function. Solution: Handle the expression at compile time. Patch 9.0.0351 Problem: Message window may obscure the command line. Solution: Reduce the maximum height of the message window. Patch 9.0.0352 Problem: using :echowindow in a timer clears part of message Solution: Do not use msg_clr_eos(). Patch 9.0.0353 Problem: Missing entry in switch. Solution: Add ISN_ECHOWINDOW. Patch 9.0.0354 Problem: MS-Windows: starting a python server for test sometimes fails. Solution: Increase the waiting time for the port. Patch 9.0.0355 Problem: Check for uppercase char in autoload name is wrong, it checks the name of the script. Solution: Remove the check. (closes #11031) Patch 9.0.0356 Problem: :echowindow sets the in_echowindow flag too early. Solution: Set in_echowindow only when outputting the text. (Yasuhiro Matsumoto, closes #11033) Patch 9.0.0357 Problem: 'linebreak' interferes with text property highlight if there is syntax highlighting. Solution: Check the text prop attributes after combining with syntax attributes. (closes #11035) Patch 9.0.0358 Problem: 'breakindent' does not indent non-lists with "breakindentopt=list:-1". Solution: Adjust indent computation. (Maxim Kim, closes #11038) Patch 9.0.0359 Problem: Error message for wrong argument type is not specific. Solution: Include more information in the error. (Yegappan Lakshmanan, closes #11037) Patch 9.0.0360 Problem: Crash when invalid line number on :for is ignored. Solution: Do not check breakpoint for non-existing line. Patch 9.0.0361 Problem: Removing a listener may result in a memory leak and remove subsequent listeners. Solution: Init the "prev" pointer only once. (Yegappan Lakshmanan, closes #11039) Patch 9.0.0362 Problem: Expanding ":e %" does not work for remote files. Solution: If the "%" or "#" file does not exist add the expansion anyway. Patch 9.0.0363 Problem: Common names in test files causes tests to be flaky. Solution: Use more specific names. Patch 9.0.0364 Problem: Clang static analyzer gives warnings. Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #11043) Patch 9.0.0365 Problem: File name used in test is unusual. Solution: Rename it. (Dominique Pellé, closes #11044) Patch 9.0.0366 Problem: Cannot use import->Func() in lambda. (Israel Chauca Fuentes) Solution: Adjust how an expression in a lambda is parsed. (closes #11042) Patch 9.0.0367 Problem: Coverity complains about dropping sign of character. Solution: Add explicit type cast. Patch 9.0.0368 Problem: Old Coverity warning for using NULL pointer. Solution: Bail out if dictionary allocation fails. Patch 9.0.0369 Problem: A failing flaky test doesn't mention the time. Solution: Add the time for debugging. Improve error message. Patch 9.0.0370 Problem: Cleaning up afterwards can make a function messy. Solution: Add the :defer command. Patch 9.0.0371 Problem: Compiler warning for uninitialized variable. Solution: Initialize the variable. (John Marriott) Patch 9.0.0372 Problem: MS-Windows: "%T" time format does not appear to work. Solution: Use "%H:%M:%S" instead. Patch 9.0.0373 Problem: Coverity warns for NULL check and unused return value. Solution: Remove the NULL check, it was already checked earlier. Add (void) to ignore the return value. Patch 9.0.0374 Problem: Coverity still complains about dropping sign of character. Solution: Add intermediate variable. Patch 9.0.0375 Problem: The footer feature is unused. Solution: Remove FEAT_FOOTER and code. Patch 9.0.0376 Problem: Clang warns for dead assignments. Solution: Adjust the code. (Yegappan Lakshmanan, closes #11048) Patch 9.0.0377 Problem: Argument assignment does not work. Solution: Skip over "=". Patch 9.0.0378 Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) Solution: Initialize it. Patch 9.0.0379 Problem: Cleaning up after writefile() is a hassle. Solution: Add the 'D' flag to defer deleting the written file. Very useful in tests. Patch 9.0.0380 Problem: Deleting files in tests is a hassle. Solution: Use the new 'D' flag of writefile(). Problem: Deleting files in tests is a hassle. Solution: Use the new 'D' flag of writefile(). Patch 9.0.0381 Problem: Writefile test leaves files behind. Solution: Fix the file names of files to be deleted. (Dominique Pellé, closes #11056) Patch 9.0.0382 Problem: Freeing the wrong string on failure. Solution: Adjust the argument. Reorder the code. Patch 9.0.0383 Problem: Coverity complains about unused value. Solution: Use the value. Patch 9.0.0384 Problem: Coverity still complains about using return value of getc(). Solution: Check for EOF. Patch 9.0.0385 Problem: GUI: when CTRL-D is mapped in Insert mode it gets inserted. (Yasuhiro Matsumoto) Solution: Also recognize modifier starting with CSI. (closes #11057) Patch 9.0.0386 Problem: Some code blocks are nested too deep. Solution: Bail out earlier. (Yegappan Lakshmanan, closes #11058) Patch 9.0.0387 Problem: repeating a <ScriptCmd> mapping does not use the right script context. Solution: When using a mapping put <SID>{sid}; in the redo buffer. (closes #11049) Patch 9.0.0388 Problem: The do_arg_all() function is too long. Solution: Split the function in smaller parts. (Yegappan Lakshmanan, closes #11062) Patch 9.0.0389 Problem: Crash when 'tagfunc' closes the window. Solution: Bail out when the window was closed. Patch 9.0.0390 Problem: Cannot use a partial with :defer. Solution: Add the partial arguments before the other arguments. Disallow using a dictionary. Patch 9.0.0391 Problem: Using separate delete() call instead of writefile() 'D' flag. Solution: Use the writefile 'D' flag. Patch 9.0.0392 Problem: Inverted condition is a bit confusing. Solution: Remove the "!" and swap the blocks. (Ken Takata) Patch 9.0.0393 Problem: Signals test often fails on FreeBSD. Solution: Use separate files for Suspend and Resume. (Ken Takata, closes #11065) Patch 9.0.0394 Problem: Cygwin: multibyte characters may be broken in terminal window. Solution: Adjust how to read and write on the channel. (Ken Takata, closes #11063) Patch 9.0.0395 Problem: Clang warnings for function prototypes. Solution: Remove incomplete function prototypes. (closes #11068) Patch 9.0.0396 Problem: :findrepl does not escape '&' and '~' properly. Solution: Escape depending on the value of 'magic'. (closes #11067) Patch 9.0.0397 Problem: :defer not tested with exceptions and ":qa!". Solution: Test :defer works when exceptions are thrown and when ":qa!" is used. Invoke the deferred calls on exit. Patch 9.0.0398 Problem: Members of funccall_T are inconsistently named. Solution: Use the "fc_" prefix for all members. Patch 9.0.0399 Problem: Using :defer in expression funcref not tested. Solution: Add a test. Fix uncovered problems. Patch 9.0.0400 Problem: GUI test sometimes hangs on CI. Solution: Delete a test file explicitly. (Ken Takata, closes #11072) Patch 9.0.0401 Problem: CI uses older clang version. Solution: Switch from clang 14 to 15. (closes #11066) Patch 9.0.0402 Problem: Javascript module files are not recognized. Solution: Recognize "*.jsm" files as Javascript. (Brett Holman, closes #11069) Patch 9.0.0403 Problem: 'equalalways' may be off when 'laststatus' is zero. Solution: call last_status() before win_equal(). (Luuk van Baal, closes #11070) Patch 9.0.0404 Problem: Crash when passing invalid arguments to assert_fails(). Solution: Check for NULL string. Patch 9.0.0405 Problem: Arguments in a partial not used by a :def function. Solution: Put the partial arguments on the stack. Patch 9.0.0406 Problem: Deferred functions not invoked when partial func exits. Solution: Create a funccall_T when calling a :def function. Patch 9.0.0407 Problem: matchstr() does match column offset. (Yasuhiro Matsumoto) Solution: Accept line number zero. (closes #10938) Patch 9.0.0408 Problem: GUI test sometimes fails on MS-Windows. Solution: Make sure Vim is the foreground window. (Ken Takata, closes #11077) Patch 9.0.0409 Problem: #{g:x} was seen as a curly-braces expression. Solution: Do never see #{} as a curly-braces expression. (closes #11075) Patch 9.0.0410 Problem: Struct member cts_lnum is unused. Solution: Delete it. Patch 9.0.0411 Problem: Only created files can be cleaned up with one call. Solution: Add flags to mkdir() to delete with a deferred function. Expand the writefile() name to a full path to handle changing directory. Patch 9.0.0412 Problem: Compiler warning for unused argument. Solution: Add UNUSED. Patch 9.0.0413 Problem: ASAN reports a memory leak. Solution: Free the string received from the server. (Ken Takata, closes #11080) Patch 9.0.0414 Problem: matchstr() still does not match column offset when done after a text search. Solution: Only use the line number for a multi-line search. Fix the test. (closes #10938) Patch 9.0.0415 Problem: On MS-Windows some tests are flaky. Solution: Add sleeps, disable swapfile, mark test as flaky. (Ken Takata, closes #11082) Patch 9.0.0416 Problem: ml_get error when appending lines in popup window. Solution: Only update w_topline when w_buffer matches curbuf. (closes #11074) Patch 9.0.0417 Problem: Jsonnet files are not recognized. Solution: Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073, closes #11081) Patch 9.0.0418 Problem: Manually deleting temp test files. Solution: Use the 'D' flag of writefile() and mkdir(). Patch 9.0.0419 Problem: The :defer command does not check the function argument count and types. Solution: Check the function arguments when adding a deferred function. Patch 9.0.0420 Problem: Function went missing. Solution: Add the function back. Patch 9.0.0421 Problem: MS-Windows makefiles are inconsistently named. Solution: Use consistent names. (Ken Takata, closes #11088) Patch 9.0.0422 Problem: Not enough testing of the :all command. Solution: Add more testing. (Yegappan Lakshmanan, closes #11091) Patch 9.0.0423 Problem: "for" and "while" not recognized after :vim9cmd and :legacy. (Emanuele Torre) Solution: Recognize all the command modifiers. (closes #11087) Add a test to check the list of modifiers. Patch 9.0.0424 Problem: gitattributes files are not recognized. Solution: Add patterns to match gitattributes files. (closes #11085) Patch 9.0.0425 Problem: Autocmd test is a bit flaky on MS-Windows. Solution: Add a bit more sleeping. (Ken Takata, closes #11095) Patch 9.0.0426 Problem: Failed flaky tests reports only start time. Solution: Also report the end time. Patch 9.0.0427 Problem: Drupal theme files are not recognized. Solution: Use php filetype for Drupl theme files. Remove trailing spaces. (Rodrigo Aguilera, closes #11096) Patch 9.0.0428 Problem: Autocmd test uses common file name. Solution: Use unique name to reduce flakiness. Patch 9.0.0429 Problem: Not all keys are tested for the MS-Windows GUI. Solution: Add more key codes to the list. (Yegappan Lakshmanan, closes #11097) Patch 9.0.0430 Problem: Cannot use repeat() with a blob. Solution: Implement blob repeat. (closes #11090) Patch 9.0.0431 Problem: Current mode shows in message window. Solution: Reset in_echowindow before redrawing. (issue #11094) Patch 9.0.0432 Problem: Crash when using for loop variable in closure. Solution: Check that the variable wasn't deleted. (issue #11094) Patch 9.0.0433 Problem: Coverity warns for not checking allocation failure. Solution: Check that allocating a list or blob succeeded. Patch 9.0.0434 Problem: gitignore files are not recognized. Solution: Add patterns for the gitignore filetype. (closes #11102) Patch 9.0.0435 Problem: Compiler warning for uninitialized variable. Solution: Initialize it. Patch 9.0.0436 Problem: CI: running tests in parallel causes flakiness. Solution: Reorganize the MS-Windows runs. (Ken Takata, closes #11101) Patch 9.0.0437 Problem: No error when a custom completion function returns something else than the expected list. Solution: Give an error. (closes #11100) Patch 9.0.0438 Problem: Cannot put virtual text above a line. Solution: Add the "above" value for "text_align". Patch 9.0.0439 Problem: Cursor wrong if inserting before line with virtual text above. Solution: Add the width of the "above" virtual text to the cursor position. (issue #11084) Patch 9.0.0440 Problem: Crash when using mkdir() with "R" flag in compiled function. Solution: Reserve a variable for deferred function calls. Handle more than one argument. Patch 9.0.0441 Problem: Closure in for loop test fails on some systems. Solution: Do not wait for the ruler to show up. (issue #11106) Patch 9.0.0442 Problem: Virtual text "above" doesn't handle line numbers. Solution: Take the left column offset into account. (issue #11084) Also make padding work. Patch 9.0.0443 Problem: Blueprint files are not recognized. Solution: Add a pattern for blueprint files. (Gabriele Musco, closes #11107) Patch 9.0.0444 Problem: Trying to declare g:variable gives confusing error. Solution: Give a better error message. (closes #11108) Patch 9.0.0445 Problem: When opening/closing window text moves up/down. Solution: Add the 'splitscroll' option. When off text will keep its position as much as possible. Patch 9.0.0446 Problem: Message window may be positioned too low. Solution: Compute cmdline_row before computing the position. Patch 9.0.0447 Problem: Using :echowin while at the hit-enter prompt causes problems. Solution: Do not prompt for :echowin. Postpone showing the message window. Start the timer when the window is displayed. Patch 9.0.0448 Problem: SubRip files are not recognized. Solution: Add a pattern for SubRip. (closes #11113) Patch 9.0.0449 Problem: There is no easy way to translate a string with a key code into a readable string. Solution: Add the keytrans() function. (closes #11114) Patch 9.0.0450 Problem: Return value of argument check functions is inconsistent. Solution: Return OK/FAIL instead of TRUE/FALSE. (closes #11112) Patch 9.0.0451 Problem: Virtual text "above" does not work with 'nowrap'. Solution: Do wrap the line after. (closes #11084) Patch 9.0.0452 Problem: Visual highlighting extends into virtual text prop. Solution: Do not highlight what isn't actually selected. Fix ordering of stored text props. Patch 9.0.0453 Problem: On an AZERTY keyboard digit keys get the shift modifier. Solution: Remove the shift modifier from digit keys. (closes #11109) Patch 9.0.0454 Problem: Incorrect color for modeless selection with GTK. Solution: Use simple inversion instead of XOR. (closes #11111) Patch 9.0.0455 Problem: A few problems with 'splitscroll'. Solution: Fix 'splitscroll' problems. (Luuk van Baal, closes #11117) Patch 9.0.0456 Problem: Function called at debug prompt is also debugged. Solution: Reset the debug level while entering the debug command. (closes #11118) Patch 9.0.0457 Problem: Substitute prompt does not highlight an empty match. Solution: Highlight at least one character. Patch 9.0.0458 Problem: Splitting a line with a text prop "above" moves it to a new line below. Solution: Keep an "above" text prop above the first line. Patch 9.0.0459 Problem: Vim9: block in for loop doesn't behave like a code block. Solution: Use a new block ID for each loop at the script level. Patch 9.0.0460 Problem: Loop variable can't be found. Solution: Adjust block_id of the loop variable each round. Patch 9.0.0461 Problem: 'scroll' is not always updated. Solution: Call win_init_size() at the right place. Patch 9.0.0462 Problem: ASAN warning for integer overflow. Solution: Check for tp_col to be MAXCOL. Patch 9.0.0463 Problem: Command line test leaves directory behind. Solution: Use the "R" flag on the first mkdir(). (Dominique Pellé, closes #11127) Patch 9.0.0464 Problem: With virtual text "above" indenting doesn't work well. Solution: Ignore text properties while adjusting indent. (issue #11084) Patch 9.0.0465 Problem: Cursor moves when cmdwin is closed when 'splitscroll' is off. Solution: Temporarily set 'splitscroll' when jumping back to the original window. (closes #11128) Patch 9.0.0466 Problem: Virtual text wrong after adding line break after line. Solution: Pass an "eol" flag to where text properties are adjusted. (closes #11131) Patch 9.0.0467 Problem: Build failure. Solution: Add missing change. Patch 9.0.0468 Problem: Execution stack underflow without the +eval feature. (Dominique Pellé) Solution: Add to execution stack without FEAT_EVAL. (closes #11135) Patch 9.0.0469 Problem: Cursor moves if cmdwin is closed when 'splitscroll' is off. Solution: Skip win_fix_cursor if called when cmdwin is open or closing. (Luuk van Baal, closes #11134) Patch 9.0.0470 Problem: In a :def function all closures in a loop get the same variables. Solution: When in a loop and a closure refers to a variable declared in the loop, prepare for making a copy of variables for each closure. Patch 9.0.0471 Problem: No test for what patch 9.0.0469 fixes. Solution: Add a test. (closes #11140) Patch 9.0.0472 Problem: Virtual text "below" doesn't show in list mode. Solution: Reset lcs_eol_one when displaying text property. Patch 9.0.0473 Problem: fullcommand() only works for the current script version. Solution: Add an optional argument for the script version. Patch 9.0.0474 Problem: fullcommand() test failure. Solution: Update function table. Patch 9.0.0475 Problem: Not using deferred delete in tests. Solution: Use deferred delete more often. Patch 9.0.0476 Problem: Varargs does not work for replacement function of substitute(). Solution: Check the varargs flag of the function. (closes #11142) Patch 9.0.0477 Problem: Missing dependency may cause crashes on incomplete build. Solution: Add dependency. Patch 9.0.0478 Problem: Test for 'splitscroll' takes too much time. Solution: Only test some of the combinations. (Luuk van Baal, closes #11139) Patch 9.0.0479 Problem: In a :def function all closures in a loop get the same variables. Solution: Use a separate list of variables for LOADOUTER and SAVEOUTER. Patch 9.0.0480 Problem: Cannot use a :def varargs function with substitute(). Solution: Use has_varargs(). (closes #11146) Patch 9.0.0481 Problem: In a :def function all closures in a loop get the same variables. Solution: Use a separate list of variables for LOADOUTER and STOREOUTER. Not copied at end of loop yet. Patch 9.0.0482 Problem: "g0" moves to wrong location with virtual text "above". Solution: Compensate for the extra columns. (closes #11141) Also fix "g$" Patch 9.0.0483 Problem: Illegal memory access when replacing in virtualedit mode. Solution: Check for replacing NUL after Tab. Patch 9.0.0484 Problem: In a :def function all closures in a loop get the same variables. Solution: Add ENDLOOP at break, continue and return if needed. Patch 9.0.0485 Problem: In a :def function all closures in a loop get the same variables. Solution: Make a copy of loop variables used in a closure. Patch 9.0.0486 Problem: Text scrolled with 'nosplitscroll', autocmd win opened and help window closed. Solution: Skip win_fix_scroll() in more situations. (Luuk van Baal, closes #11150) Patch 9.0.0487 Problem: Using freed memory with combination of closures. Solution: Do not use a partial after it has been freed through the funcstack. Patch 9.0.0488 Problem: Cursor in wrong position with virtual text "above" and 'showbreak'. Solution: Take the first character column into account. (closes #11149) Patch 9.0.0489 Problem: Using "end_lnum" with virtual text causes problems. Solution: Disallow using "end_lnum" with virtual text. (closes #11151) Also disallow "end_col" and "length". Patch 9.0.0490 Problem: Using freed memory with cmdwin and BufEnter autocmd. Solution: Make sure pointer to b_p_iminsert is still valid. Patch 9.0.0491 Problem: No good reason to build without the float feature. Solution: Remove configure check for float and "#ifdef FEAT_FLOAT". Patch 9.0.0492 Problem: Cmdwin test fails on MS-Windows. Solution: Skip test on MS-Windows. Patch 9.0.0493 Problem: Perl test fails. Solution: Remove remaining FEAT_EVAL. Patch 9.0.0494 Problem: Small build misses float function declarations. Solution: Adjust #ifdefs. Patch 9.0.0495 Problem: Closure doesn't work properly in nested loop. Solution: Save variables up to the outer loop. Patch 9.0.0496 Problem: No good reason to keep supporting Windows-XP. Solution: Drop Windows-XP support. (Ken Takata, closes #11089) Patch 9.0.0497 Problem: LyRiCs files are not recognized. Solution: Add a pattern to detect LyRiCs files. (closes #11155) Patch 9.0.0498 Problem: Various small issues. Solution: Various small fixes. Patch 9.0.0499 Problem: In :def function list created after const is locked. Solution: Reset v_lock. (closes #11154) Patch 9.0.0500 Problem: When quitting the cmdline window with CTRL-C it remains visible. Solution: Redraw to avoid confusion. Adjust the error message. (closes #11152) Adjust the cursor position after CTRL-C. Patch 9.0.0501 Problem: Warning for using uninitialized value in mouse test. Solution: Clear ScreenCols when allocating it. (Dominique Pellé) Patch 9.0.0502 Problem: A closure in a nested loop in a :def function does not work. Solution: Use an array of loopvars, one per loop level. Patch 9.0.0503 Problem: Build failure. Solution: Add missing changes. Patch 9.0.0504 Problem: still a Build failure. Solution: Add another missing changes. Avoid compiler warning. Patch 9.0.0505 Problem: Various problems with 'nosplitscroll'. Solution: Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166) Patch 9.0.0506 Problem: Line number argument for :badd does not work. Solution: Set the last cursor position in the new buffer. (closes #11161) Patch 9.0.0507 Problem: Command line cleared when using :redrawstatus in CmdlineChanged autocommand event. Solution: Postpone the redraw. (closes #11162) Patch 9.0.0508 Problem: When the channel test fails there is no clue why. Solution: Add info about the job status. (Ken Takata, closes #11175) Patch 9.0.0509 Problem: Confusing error for "saveas" command with "nofile" buffer. Solution: Give a clearer error message. (closes #11171) Patch 9.0.0510 Problem: Chatito files are not recognized. Solution: Add a pattern for Chatito files. (closes #11174) Patch 9.0.0511 Problem: Unnecessary scrolling for message of only one line. Solution: Only set msg_scroll when needed. (closes #11178) Patch 9.0.0512 Problem: Cannot redraw the status lines when editing a command. Solution: Only postpone the redraw when messages have scrolled. (closes #11170) Patch 9.0.0513 Problem: May not be able to use a pattern ad the debug prompt. Solution: Temporarily disable the timeout. (closes #11164) Patch 9.0.0514 Problem: Terminal test sometimes hangs. Solution: Add a bit more information to the test output. (issue #11179) Patch 9.0.0515 Problem: Virtual text highlight starts too early when 'number' is set. Solution: Set column offset when wrapping. (issue #11138) Patch 9.0.0516 Problem: Virtual text "above" highlights gap after it. Solution: Do not highlight the gap. (closes #11138) Patch 9.0.0517 Problem: When at the command line :redrawstatus does not work well. Solution: Only update the statuslines instead of the screen. (closes #11180) Patch 9.0.0518 Problem: Virtual text highlight starts too early with 'nowrap' and 'number' set. Solution: Add the offset to the attribute skip count. (issue #11138) Patch 9.0.0519 Problem: The win_line() function is much too long. Solution: Move the code to draw the line number to a separate function. Patch 9.0.0520 Problem: Declaring a loop variable at the start of a block is clumsy. Solution: Declare the variable inside the loop in a few places to see if this works. Patch 9.0.0521 Problem: Compiler warns for unused argument in small version. Solution: Add UNUSED. Patch 9.0.0522 Problem: Build fails on Appveyor. Solution: Select Visual Studio 2015 for the build tools. Patch 9.0.0523 Problem: more compiler warnings for arguments in small version Solution: Adjust #ifdefs. Patch 9.0.0524 Problem: Build instructions for MS-Windows are outdated. Solution: Remove instructions for old MSVC versions. Patch 9.0.0525 Problem: Manually deleting temp test files. Solution: Add the 'D' flag to writefile(). Patch 9.0.0526 Problem: MS-Windows: still some support for XP and old compilers. Solution: Remove XP support and mention of old compilers. (Ken Takata, closes #11183) Patch 9.0.0527 Problem: Long sign text may overflow buffer. Solution: Use a larger buffer. Prevent for overflow. Patch 9.0.0528 Problem: MS-Windows: no batch files for more recent MSVC versions. Solution: Add batch files for 2017, 2019 and 2022. (Ken Takata, closes #11184) Patch 9.0.0529 Problem: Appveyor setup contains outdated lines. Solution: Remove outdated lines. (Ken Takata, closes #11182) Patch 9.0.0530 Problem: Using freed memory when autocmd changes mark. Solution: Copy the mark before editing another buffer. Patch 9.0.0531 Problem: The win_line() function is much too long. Solution: Move code to separate functions. Patch 9.0.0532 Problem: Edit test is flaky when run under valgrind. Solution: Send some text to the terminal to trigger a redraw. Patch 9.0.0533 Problem: The win_line() function is much too long. Solution: Move code to separate functions. Patch 9.0.0534 Problem: Line number is displayed at virtual text "above". Solution: Show the line number at the text line. Patch 9.0.0535 Problem: Closure gets wrong value in for loop with two loop variables. Solution: Correctly compute the number of loop variables to clear. Patch 9.0.0536 Problem: CI: codecov action update available. Solution: Update Codecov 3.1.0 to 3.3.1. (closes #11188) Patch 9.0.0537 Problem: The do_set() function is much too long. Solution: Move setting of a string option to a separate function. Patch 9.0.0538 Problem: Manually deleting test temp files. Solution: Add the 'D' flag to writefile(). Patch 9.0.0539 Problem: Long message test can be flaky. Solution: Wait for more prompt instead of ruler. Patch 9.0.0540 Problem: Assigning stack variable to argument confuses Coverity. Solution: Use a local pointer, also makes the code simpler. Patch 9.0.0541 Problem: Terminal pwd test fails with a very long path name. Solution: Join two lines. Patch 9.0.0542 Problem: MSVC build still has support for 2012 edition. Solution: Drop MSVC 2012 support. (Ken Takata, closes #11191) Patch 9.0.0543 Problem: Insufficient testing for assert and test functions. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #11190) Patch 9.0.0544 Problem: Minor issues with setting a string option. Solution: Adjust the code, add a test. (closes #11192) Patch 9.0.0545 Problem: When a test is slow and CI times out there is no time info. Solution: Add the elapsed time to the "Executing" message. Patch 9.0.0546 Problem: Supporting Ruby 1.8 makes code complicated. Solution: Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195) Patch 9.0.0547 Problem: Looping over empty out_loop[] entries. Solution: Store the array size. Patch 9.0.0548 Problem: reduce() with a compiled lambda could be faster. Solution: Call eval_expr_typval() instead of call_func() directly. Patch 9.0.0549 Problem: Duplicated code in calling a :def function. Solution: Simplify the code. Patch 9.0.0550 Problem: Crash when closing a tabpage and buffer is NULL. Solution: Adjust how autocommands are triggered when closing a window. (closes #11198, closes #11197) Patch 9.0.0551 Problem: Mode message is delayed when :echowin was used. (Maxim Kim) Solution: Save and restore msg_didout in :echowin. (closes #11193) Patch 9.0.0552 Problem: Crash when using NUL in buffer that uses :source. Solution: Don't get a next line when skipping over NL. Patch 9.0.0553 Problem: No error for "|" after "{" in lambda. Solution: Check for invalid "|". (closes #11199) Patch 9.0.0554 Problem: Using freed memory when command follows lambda. Solution: Don't free what is still in use. (closes #11201) Patch 9.0.0555 Problem: Scrolling with 'nosplitscroll' in callback changing curwin. Solution: Invalidate w_cline_row in the right place. (Luuk van Baal, closes #11185) Patch 9.0.0556 Problem: Leaking memory with nested functions. Solution: Free saved pointer. Patch 9.0.0557 Problem: Valgrind reports possibly leaked memory. Solution: Move the problematic test function to the "fails" test file to avoid obscuring real memory leaks. Patch 9.0.0558 Problem: Coverity warns for possibly using NULL pointer. Solution: Only use "evalarg" when not NULL. Patch 9.0.0559 Problem: Timer test may get stuck at hit-enter prompt. Solution: Feed some more characters. Patch 9.0.0560 Problem: Elapsed time since testing started is not visible. Solution: Show the elapsed time while running tests. Patch 9.0.0561 Problem: When a test gets stuck it just hangs forever. Solution: Set a timeout of 30 seconds. Patch 9.0.0562 Problem: HSL playlist files are not recognized. Solution: Add a pattern to recognize HSL playlist files. (Benoît Ryder, closes #11204) Patch 9.0.0563 Problem: Timer_info() test fails. Solution: Ignore test timeout timer. Don't use test_null_job() when not available. Patch 9.0.0564 Problem: A few tests keep failing on MacOS M1. Solution: Add a test check CheckNotMacM1. Fix timer tests. Patch 9.0.0565 Problem: Cscope test causes problems when code for test timeout timer is included (even when commented out). Solution: Disable part of the cscope test for now. Patch 9.0.0566 Problem: Nim files are not recognized. Solution: Add patterns for Nim files. (Nbiba Bedis, closes #11205) Patch 9.0.0567 Problem: 'completeopt' "longest" is not used for complete(). Solution: Also use "longest" for complete(). (Bjorn Linse, closes #11206) Patch 9.0.0568 Problem: Autocmd code is indented more than needed. Solution: Break out sooner. (Yegappan Lakshmanan, closes #11208) Also in user function code. Patch 9.0.0569 Problem: Cannot easily get out when using "vim file | grep word". Solution: Without changes let CTRL-C exit Vim. Otherwise give a message on stderr. (closes #11209) Patch 9.0.0570 Problem: CI for Windows is still using codecov action 3.1.0. Solution: Use action 3.1.1. (closes #11212) Patch 9.0.0571 Problem: MS-Windows: CTRL-C can make Vim exit. Solution: Check the not-a-term argument. Patch 9.0.0572 Problem: Insert complete tests leave a mapping behind. Solution: Use a buffer-local mapping. (closes #11211) Patch 9.0.0573 Problem: Outdated dependencies go unnoticed. Solution: Use github Dependabot. (closes #11213) Patch 9.0.0574 Problem: Timer garbage collect test hangs on Mac M1. Solution: Properly check for Mac M1 and skip the test. Patch 9.0.0575 Problem: The getchar() function behaves strangely with bracketed paste. Solution: Do not handle paste-start in getchar(). (issue #11172) Patch 9.0.0576 Problem: Unused loop variables. Solution: Use a while loop instead. (closes #11214) Patch 9.0.0577 Problem: Buffer underflow with unexpected :finally. Solution: Check CSF_TRY can be found. Patch 9.0.0578 Problem: One timer test fails on Mac M1. Solution: Skip the test on Mac M1. Patch 9.0.0579 Problem: Using freed memory when 'tagfunc' wipes out buffer that holds 'complete'. Solution: Make a copy of the option. Make sure cursor position is valid. Patch 9.0.0580 Problem: No CI running for MacOS on M1. Solution: Add a cirrus CI task. (closes #11203) Patch 9.0.0581 Problem: Adding a character for incsearch fails at end of line. Solution: Only check cursor line number. Patch 9.0.0582 Problem: Channel cwd test fails on Cirrus CI. Solution: Also remove /private from the expected directory. Patch 9.0.0583 Problem: Only recognizing .m3u8 files is inconsistent. Solution: Also match .m3u files. (issue #11204) Patch 9.0.0584 Problem: Cscope test with wrong executable name fails. Solution: Use /bin/sh to execute the command. (Yegappan Lakshmanan) Patch 9.0.0585 Problem: When long message test fails the error message is not visible. Solution: Dump more lines. Patch 9.0.0586 Problem: Missing change in test. Solution: Add the test change. Patch 9.0.0587 Problem: Unicode tables are outdated. Solution: Update to Unicode release 15. (Christian Brabandt, closes #11220) Patch 9.0.0588 Problem: MorphOS build is broken. Solution: Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder, closes #11222) Patch 9.0.0589 Problem: On AmigaOS4 the pid is available but the task address is used. Solution: Use getpid(). (Ola Söder, closes #11224) Patch 9.0.0590 Problem: After exiting Insert mode spelling is not checked in the next line. Solution: When spelling is enabled redraw the next line after exiting Insert mode in case the spell highlight needs updating. Patch 9.0.0591 Problem: Message window popup shows on only one tab page. (Naruhiko Nishino) Solution: Show the message window popup on all tab pages. (closes #11231) Patch 9.0.0592 Problem: Display not cleared when scrolling back in messages, a background color is set and t_ut is empty. Solution: Clear to the end of the display if needed. (closes #8973) Patch 9.0.0593 Problem: CI actions have too many permissions. Solution: Restrict permissions to what is required. (closes #11223) Patch 9.0.0594 Problem: Makefile error message causes a shell error. Solution: Put the message in single quotes. (closes #11232) Patch 9.0.0595 Problem: Extra newline in messages after a verbose shell message. Solution: Output the newline with msg_putchar_attr(). (closes #11233) Make it possible to filter a screendump before comparing it. Patch 9.0.0596 Problem: CI on Mac M1 has the channel feature disabled. Solution: Include the channel feature. Patch 9.0.0597 Problem: Cannot close a tab page with the middle mouse button. Solution: Support closing a tab page with the middle mouse button, like many other programs. (closes #10746) Patch 9.0.0598 Problem: Using negative array index with negative width window. Solution: Make sure the window width does not become negative. Patch 9.0.0599 Problem: Latexmkrc files are not recognized. Solution: Use Perl filetype for latexmkrc files. (closes #11241) Patch 9.0.0600 Problem: GYP files are not recognized. Solution: Recognize GYP files. (closes #11242) Patch 9.0.0601 Problem: Too much indent. Solution: Return out early from a function. (Yegappan Lakshmanan, close #11238) Patch 9.0.0602 Problem: New TypeScript extensions are not recognized. Solution: Recognize .mts and .cts files. (closes #11237) Patch 9.0.0603 Problem: With 'nosplitscroll' folds are not handled correctly. Solution: Take care of closed folds when moving the cursor. (Luuk van Baal, closes #11234) Patch 9.0.0604 Problem: Luacheckrc file is not recognized. Solution: Use lua filetype for luacheckrc. (closes #11236) Patch 9.0.0605 Problem: Dump file missing. Solution: Add the missing dump file. (issue #11234) Patch 9.0.0606 Problem: system() opens a terminal window when using the GUI and "!" is in 'guioptions'. Solution: Do not use a terminal window when the SHELL_SILENT flag is used. (closes #11202) Patch 9.0.0607 Problem: Verbose echo message test fails on Mac OS. Solution: Skip the test on Mac OS. Patch 9.0.0608 Problem: With spell checking, deleting a full stop at the end of a line does not update SpellCap at the start of the next line. Solution: Update the next line when characters have been deleted. Also when using undo. Patch 9.0.0609 Problem: Blockedit test fails because of wrong indent. Solution: Adjust the expected text temporarily Patch 9.0.0610 Problem: Global interrupt test fails when run under valgrind. Solution: Use TermWait(). Patch 9.0.0611 Problem: Tests delete files with a separate delete() call. Solution: Use deferred delete. Patch 9.0.0612 Problem: Blockedit test passes with wrong result. Solution: Add a "vim9script" line to make indenting work. Patch 9.0.0613 Problem: Running source tests leaves file behind. Solution: Add the "D" flag to writefile(). (Dominique Pellé, closes #11243) Also do this for other writefile() calls and drop delete(). Patch 9.0.0614 Problem: SpellFileMissing autocmd may delete buffer. Solution: Disallow deleting the current buffer to avoid using freed memory. Patch 9.0.0615 Problem: Using reduce() on a list from range() is a bit slow. Solution: Avoid materializing the list. Patch 9.0.0616 Problem: Spell test fails because error message changed. Solution: Adjust expected error message. Patch 9.0.0617 Problem: Calling function for reduce() has too much overhead. Solution: Only call clear_tv() when needed. Patch 9.0.0618 Problem: Calling function for reduce() has too much overhead. Solution: Do not create a funccall_T every time. Patch 9.0.0619 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0620 Problem: matchaddpos() can only add up to 8 matches. Solution: Allocate the array of positions. (closes #11248) Patch 9.0.0621 Problem: Filetype test leaves file behind. Solution: Add deferred delete flag to writefile(). (Dominique Pellé, closes #11249) Patch 9.0.0622 Problem: matchaddpos() can get slow when adding many matches. Solution: Update the next available match ID when manually picking an ID and remove check if the available ID can be used. (idea by Rick Howe) Patch 9.0.0623 Problem: Error for modifying a const is not detected at compile time. Solution: Add TTFLAG_CONST and check for it in add() and extend(). Patch 9.0.0624 Problem: Leaking argument type array. Solution: Add allocated memory to type_gap. Patch 9.0.0625 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0626 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0627 Problem: "const" and "final" both make the type a constant. (Daniel Steinberg) Solution: Only have "const" make the type a constant. Patch 9.0.0628 Problem: Coverity warns for not checking return value. Solution: Check the return value and simplify the code. Patch 9.0.0629 Problem: Get an error for using const only when executing. Solution: Check for const at compile time for filter(), map(), remove(), reverse(), sort() and uniq(). Patch 9.0.0630 Problem: In Vim9 script a numbered function cannot be called. Solution: Do not require "g:" before a numbered function name. (closes #11254) Patch 9.0.0631 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0632 Problem: Calling a function from an "expr" option has too much overhead. Solution: Add call_simple_func() and use it for 'foldexpr' Patch 9.0.0633 Problem: FEAT_TITLE was removed but is still used. Solution: Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256) Patch 9.0.0634 Problem: Evaluating "expr" options has more overhead than needed. Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', 'formatexpr', 'indentexpr' and 'charconvert'. Patch 9.0.0635 Problem: Build error and compiler warnings. Solution: Add missing change. Add type casts. Patch 9.0.0636 Problem: Underline color does not work in terminals that don't send a termresponse. Solution: Do output t_8u if it was set explicitly. (closes #11253) Patch 9.0.0637 Problem: Syntax of commands in Vim9 script depends on +eval feature. Solution: Use same syntax with and without the +eval feature. Patch 9.0.0638 Problem: Popup menu highlight wrong on top of preview popup. (Yegappan Lakshmanan) Solution: Also check for the popup menu in screen_line(). Patch 9.0.0639 Problem: Checking for popup in screen_char() is too late, the attribute has already been changed. Solution: Move check for popup to where screen_char() is called. Patch 9.0.0640 Problem: Cannot scroll by screen line if a line wraps. Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y so far. Patch 9.0.0641 Problem: Missing part of the new option code. Solution: Add missing WV_SMS. Patch 9.0.0642 Problem: Breakindent test fails. Solution: Correct logic for resetting need_showbreak. Patch 9.0.0643 Problem: Smoothscroll test fails. Solution: Check if skipcol changed. Patch 9.0.0644 Problem: 'smoothscroll' is not copied to a new window on :split. Solution: Copy the option value. Add a test. Patch 9.0.0645 Problem: CTRL-Y does not stop at line 1. (John Marriott) Solution: Stop at line 1 when 'smoothscroll' is not set. (closes #11261) Patch 9.0.0646 Problem: with 'smoothscroll' set CTRL-E does not work properly when 'foldmethod' is set to "indent". (Yee Cheng Chin) Solution: Merge the code for scrolling with folds and 'smoothscroll'. (closes #11262) Patch 9.0.0647 Problem: The 'splitscroll' option is not a good name. Solution: Rename 'splitscroll' to 'splitkeep' and make it a string option, also supporting "topline". (Luuk van Baal, closes #11258) Patch 9.0.0648 Problem: When using powershell input redirection does not work. Solution: Use a different shell command for powershell. (Yegappan Lakshmanan, closes #11257) Patch 9.0.0649 Problem: No indication when the first line is broken for 'smoothscroll'. Solution: Show "<<<" in the first line. Patch 9.0.0650 Problem: Some tests are failing. Solution: Adjust for "<<<" showing up. Patch 9.0.0651 Problem: Build fails without the +conceal feature. Solution: Rename called function. Patch 9.0.0652 Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'. Solution: Add tests, fix uncovered problem. Patch 9.0.0653 Problem: BS and DEL do not work properly in an interactive shell. (Gary Johnson) Solution: Adjust the length for replaced codes. Patch 9.0.0654 Problem: Breakindent test fails. Solution: Temporarily accept wrong result. Patch 9.0.0655 Problem: passing modifier codes to a shell running in the GUI. (Gary Johnson) Solution: Include modifier codes into the key and drop the modifiers. Patch 9.0.0656 Problem: Cannot specify another character to use instead of '@' at the end of the window. Solution: Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264, closes #10963) Patch 9.0.0657 Problem: Too many #ifdefs. Solution: Graduate the +cmdwin feature. Now the tiny and small builds are equal, drop the small build. (Martin Tournoij, closes #11268) Patch 9.0.0658 Problem: Tiny build fails on Mac OS. Solution: Define FEAT_CLIPBOARD only for normal build. Patch 9.0.0659 Problem: Wrong type of comment in SetSyn() function. Solution: Use Vim9 comment. (closes #11278) Patch 9.0.0660 Problem: Mapping with CTRL keys does not work in the GUI. Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270) Patch 9.0.0661 Problem: Multi-byte "lastline" item in 'fillchars' does not work properly when the window is two columns wide. Solution: Compute the text length correctly. (closes #11280) Patch 9.0.0662 Problem: Concealed characters do not work correctly. Solution: Subtract boguscols instead of adding them. (closes #11273) Patch 9.0.0663 Problem: Tests check for +cmdwin feature which is always present. Solution: Remove the checks. (closes #11287) Patch 9.0.0664 Problem: Bad redrawing with spell checking, using "C" and "$" in 'cpo'. Solution: Do not redraw the next line when "$" is in 'cpo'. (closes #11285) Patch 9.0.0665 Problem: Setting 'cmdheight' has no effect if last window was resized. Solution: Do apply 'cmdheight' when told to. Use the frame height instead of the cmdline_row. (closes #11286) Patch 9.0.0666 Problem: Spacing-combining characters handled as composing, causing text to take more space than expected. Solution: Handle characters marked with "Mc" not as composing. (closes #11282) Patch 9.0.0667 Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) Solution: Check the botline is not too large. (Luuk van Baal, closes #11293, closes #11292) Patch 9.0.0668 Problem: CI on Mac M1 only uses clang Solution: Also run with gcc. (closes #11263) Patch 9.0.0669 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0670 Problem: No space for command line when there is a tabline. Solution: Correct computation of where the command line should be. (closes #11295) Patch 9.0.0671 Problem: Negative topline using CTRL-Y with 'smoothscroll' and 'diff'. (Ernie Rael) Solution: Only use 'smoothscroll' when 'wrap' is set. Patch 9.0.0672 Problem: Cursor line only partly shows with 'smoothscroll' and 'scrolloff' zero. Solution: Do not use 'smoothscroll' when adjusting the bottom of the window. (closes #11269) Patch 9.0.0673 Problem: First line not scrolled properly with 'smoothscroll' and 'scrolloff' zero and using "k". Solution: Make sure the cursor position is visible. Patch 9.0.0674 Problem: Build error with tiny version. Solution: Use PLINES_NOFILL macro. Patch 9.0.0675 Problem: Search test screendump is outdated. Solution: Update the screendump for improved display. Patch 9.0.0676 Problem: CI on Mac M1 with gcc actually uses clang. Solution: Remove the gcc task. (Ozaki Kiichi, closes #11297) Patch 9.0.0677 Problem: Breakindent test accepts wrong result. Solution: Fix the number column and adjust the expected text. Patch 9.0.0678 Problem: Using exclamation marks on :function. Solution: Use :func and :endfunc as usual. Patch 9.0.0679 Problem: Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'. Solution: Do not count number column in topline if columns are skipped. Patch 9.0.0680 Problem: Tests failing with 'breakindent', 'number' and "n" in 'cpo'. Solution: Do count the number column in topline if 'breakindent' is set. Patch 9.0.0681 Problem: "<<<" shows for 'smoothscroll' even when 'showbreak is set. Solution: When 'showbreak' is set do not display "<<<". Patch 9.0.0682 Problem: Crash when popup with deleted timer is closed. (Igbanam Ogbuluijah) Solution: Check the timer still exists. (closes #11301) Patch 9.0.0683 Problem: Cannot specify a time for :echowindow. Solution: A count can be used to specify the display time. Add popup_findecho(). Patch 9.0.0684 Problem: Skipped :exe command fails compilation on MS-Windows. Solution: Adjust return value when skipping. Patch 9.0.0685 Problem: FORTIFY_SOURCE causes a crash in Vim9 script. Solution: Use a pointer to the first char. (Yee Cheng Chin, closes #11302) Patch 9.0.0686 Problem: The right ALT key does not work on some MS-Windows keyboards. Solution: Adjust the modifiers based on GetKeyState(). (Anton Sharonov, closes #11300) Patch 9.0.0687 Problem: "export def" does not work in a nested block. Solution: Do not handle "export" with a separate function but in the same command stack. (closes #11304) Patch 9.0.0688 Problem: Debugger does not display the whole command. Solution: Set ea.cmd before checking for a breakpoint. Patch 9.0.0689 Problem: Compiler warning for unused function. Solution: Add #ifdef. (John Marriott) Patch 9.0.0690 Problem: Buffer size for expanding tab not correctly computed. Solution: Correctly use size of end character. Patch 9.0.0691 Problem: lalloc(0) error in listchars test. Solution: Skip generating text for tab if tab_len is zero. Patch 9.0.0692 Problem: PoE filter files are not recognized. Solution: Add a pattern to detect PoE filter files. (closes #11305) Patch 9.0.0693 Problem: browse() first argument cannot be a bool. Solution: Use tv_get_bool_chk() instead of tv_get_number_chk(). (closes #11308) Patch 9.0.0694 Problem: No native sound support on Mac OS. Solution: Add sound support for Mac OS. (Yee Cheng Chin, closes #11274) Patch 9.0.0695 Problem: Failing check for dictionary type for const any. Solution: Check for any type properly. (closes #11310) Patch 9.0.0696 Problem: It is unclear if the +rightleft and +arabic features are actively being used. Solution: Disable the features, await feedback. Patch 9.0.0697 Problem: Cursor in wrong position with Visual substitute. Solution: When restoring 'linebreak' mark the virtual column as invalid. (closes #11309, closes #11311) Patch 9.0.0698 Problem: VisVim is outdated, does not work with current Visual Studio. Solution: Remove VisVim. (Martin Tournoij) Patch 9.0.0699 Problem: Tiny build fails. Solution: Add #ifdef. Patch 9.0.0700 Problem: There is no real need for a "big" build. Solution: Move common features to "normal" build, less often used features to the "huge" build. (Martin Tournoij, closes #11283) Patch 9.0.0701 Problem: With 'smoothscroll' the cursor position s not adjusted in a long line. Solution: Move the cursor further up or down in the line. Patch 9.0.0702 Problem: Incomplete testing cursor position after change with 'linebreak' set. Solution: Add a test and move test cases together. (closes #11313) Patch 9.0.0703 Problem: Failing check for argument type for const any. Solution: Check for any type properly. (closes #11316) Patch 9.0.0704 Problem: CI runs "tiny" and "small" builds, which are the same. Solution: Remove the "small" build. (Naruhiko Nishino, closes #11315) Patch 9.0.0705 Problem: Virtual text truncation does not take padding into account. Solution: Subtract the padding from the available space. (closes #11318) Patch 9.0.0706 Problem: :help in a narrow window always opens at the top. Solution: Respect 'splitbelow'. (closes #11319) Patch 9.0.0707 Problem: With 'smoothscroll' and 'scrolloff' non-zero the cursor position is not properly adjusted in a long line. Solution: Move the cursor further up or down in the line. Patch 9.0.0708 Problem: :confirm does not work properly for a terminal buffer. Solution: Handle :confirm for a terminal buffer differently. (Yee Cheng Chin, closes #11312) Patch 9.0.0709 Problem: Virtual text "after" not correct with 'nowrap'. Solution: Do not display "after" text prop on the next line when 'wrap' is off. Patch 9.0.0710 Problem: Quitting/unloading/hiding a terminal buffer does not always work properly. Solution: Avoid that ":q!" leaves an empty buffer behind. ":bunload!" also kills the job and unloads the buffer. ":hide" does not unload the buffer. (Yee Cheng Chin, closes #11323) Patch 9.0.0711 Problem: SubStation Alpha files are not recognized. Solution: Add patterns for SubStation Alpha files. (closes #11332) Patch 9.0.0712 Problem: Wrong column when calling setcursorcharpos() with zero lnum. Solution: Set the line number before calling buf_charidx_to_byteidx(). (closes #11329) Patch 9.0.0713 Problem: <amatch> of MenuPopup event is expanded like a file name. Solution: Do not expand <amatch> for MenuPopup. (closes #11328) Patch 9.0.0714 Problem: With 'nowrap' two virtual text below not displayed correctly. Solution: Set text_prop_follows before continuing. Correct for number column. (closes #11333) Patch 9.0.0715 Problem: Wrong argument for append() gives two error messages. Solution: When getting an error for a number argument don't try using it as a string. (closes #11335) Patch 9.0.0716 Problem: With 'nowrap' virtual text "after" does not scroll left. Solution: Skip part of the virtual text that is left of the window. (closes #11320) Fix going beyond the last column of the window. Patch 9.0.0717 Problem: Compiler warning for unused variable in tiny build. Solution: Add #ifdefs. Patch 9.0.0718 Problem: Extra empty line between two virtual text "below" when 'wrap' and 'number' are set. Solution: Reset "before" when there is no text in the screen line. (closes #11334) Patch 9.0.0719 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0720 Problem: MS-Windows GUI may have pixel dust from antialiasing. Solution: When a character changes also redraw the next one. (issue #8532) Patch 9.0.0721 Problem: Virtual text "above" with padding not displayed correctly. Solution: Take padding into account when truncating. (closes #11340) Patch 9.0.0722 Problem: Virtual text "after" does not show with 'list' set. Solution: Do not break out of the loop when another text prop follows. (closes #11337) Patch 9.0.0723 Problem: Extra empty line below virtual text when 'list' is set. Solution: Do not reset lcs_eol_one but set text_prop_follows. (closes #11339) Patch 9.0.0724 Problem: Closure in compiled function gets same variable in block. Solution: At the end of a block to not always reset the variable count. (issue #11094) Patch 9.0.0725 Problem: Virtual text "after" wraps to next line even when 'wrap' is off and 'list' is set. Solution: Do not use the minimum width when 'wrap' is off. (issue #11336) Patch 9.0.0726 Problem: Looping over list of lists and changing the list contents works in Vim9 script, not in a compiled function. Solution: Mark the loop variable final instead of const. (closes #11347) Patch 9.0.0727 Problem: Help in the repository differs from patched version too much. Solution: Make a patch for a few help files. Patch 9.0.0728 Problem: extend() test fails. Solution: Item is final, not const. Patch 9.0.0729 Problem: The rightleft and arabic features are disabled. Solution: Re-enable the features, some users want to use the functionality. Patch 9.0.0730 Problem: Startup test fails with right-left feature. Solution: Do not delete test file too early. Patch 9.0.0731 Problem: clang-tidy configuration files are not recognized. Solution: Recognize clang-tidy files as yaml. (closes #11350) Patch 9.0.0732 Problem: No check for white space before and after "=<<". (Doug Kearns) Solution: Check for white space in Vim9 script. (closes #11351) Patch 9.0.0733 Problem: Use of strftime() is not safe. Solution: Check the return value of strftime(). Use a larger buffer and correctly pass the available space. (Dominique Pellé, closes #11348) Patch 9.0.0734 Problem: Cursor position invalid when scrolling with 'smoothscroll' set. (Ernie Rael) Solution: Add w_valid_skipcol and clear flags when it changes. Adjust w_skipcol after moving the cursor. Patch 9.0.0735 Problem: Breakindent and scrolloff tests fail. Solution: Temporarily skip the assertions. Patch 9.0.0736 Problem: Quickfix listing does not handle very long messages. Solution: Use a growarray instead of a fixed size buffer. (Yegappan Lakshmanan, closes #11357) Patch 9.0.0737 Problem: Lisp word only recognized when a space follows. Solution: Also match a word at the end of a line. Rename the test. Use a compiled function to avoid backslashes. Patch 9.0.0738 Problem: Cannot suppress completion "scanning" messages. Solution: Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354) Patch 9.0.0739 Problem: Mouse column not correctly used for popup_setpos. Solution: Adjust off-by-one error and handle Visual line selection properly. (Yee Cheng Chin, closes #11356) Patch 9.0.0740 Problem: prop_add_list() gives multiple errors for invalid argument. Solution: Only give one error message. Patch 9.0.0741 Problem: Cannot specify an ID for each item with prop_add_list(). (Sergey Vlasov) Solution: Add an optional fifth number to the item. (closes #11360) Patch 9.0.0742 Problem: Reading past end of the line when compiling a function with errors. Solution: Do not return an invalid pointer. Fix skipping redirection. Patch 9.0.0743 Problem: Starting cscope on Unix does not quote the arguments correctly. (Gary Johnson) Solution: Move the final quote after the arguments. Patch 9.0.0744 Problem: In script in autoload dir exported variable is not found. (Doug Kearns) Solution: Find the variable with the "script#" prefix. (closes #11361) Patch 9.0.0745 Problem: Wrong cursor position when using "gj" and "gk" in a long line. Solution: Adjust computations for the cursor position and skipcol. Re-enable tests that pass now, disable failing breakindent test. Patch 9.0.0746 Problem: Breakindent test cases are commented out. Solution: Adjust expected result to slightly different behavior. Correct computations for cursor position. Patch 9.0.0747 Problem: Too many #ifdefs. Solution: Graduate the +cmdline_info feature. (Martin Tournoij, closes #11330) Patch 9.0.0748 Problem: Kitty may send key without modifiers with CSI u code. Solution: Handle CSI u code without modifiers. (Trygve Aaberge, closes #11364) Patch 9.0.0749 Problem: Alloc/free of buffer for each quickfix entry is inefficient. Solution: Use a shared grow array. (Yegappan Lakshmanan, closes #11365) Patch 9.0.0750 Problem: Crash when popup closed in callback. (Maxim Kim) Solution: In syntax_end_parsing() check that syn_block is valid. Patch 9.0.0751 Problem: 'scrolloff' does not work well with 'smoothscroll'. Solution: Make positioning the cursor a bit better. Rename functions. Patch 9.0.0752 Problem: Rprofile files are not recognized. Solution: Recognize Rprofile files as "r". (closes #11369) Patch 9.0.0753 Problem: Some Ex commands are not in the help index. Solution: Add the missing commands. Add a script to check all Ex commands are in the help index. (Yee Cheng Chin, closes #11371) Patch 9.0.0754 Problem: 'indentexpr' overrules lisp indenting in one situation. Solution: Add "else" to keep the lisp indent. (issue #11327) Patch 9.0.0755 Problem: Huge build on macos always fails on CI. Solution: Temporarily disable the perl interface. Patch 9.0.0756 Problem: No autocmd event for changing text in a terminal window. Solution: Add TextChangedT. (Shougo Matsushita, closes #11366) Patch 9.0.0757 Problem: Line number not visible with 'smoothscroll', 'nu' and 'rnu'. Solution: Put the ">>>" after the line number instead of on top. Patch 9.0.0758 Problem: "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'. Solution: Keep the "precedes" character. Patch 9.0.0759 Problem: Huge build on macos does not use Perl. Solution: Re-enable the Perl interface using "dynamic". (closes #11375) Patch 9.0.0760 Problem: Display test for 'listchars' "precedes" fails. Solution: Correct the expected result. Patch 9.0.0761 Problem: Cannot use 'indentexpr' for Lisp indenting. Solution: Add the 'lispoptions' option. Patch 9.0.0762 Problem: Build failure. Solution: Add missing change. Patch 9.0.0763 Problem: MS-Windows: warning for using int for size_t. Solution: Declare variable as size_t. Patch 9.0.0764 Problem: Indent and option tests fail. Solution: Change OP_INDENT. Add entry to options test table. Patch 9.0.0765 Problem: With a Visual block a put command column may go negative. Solution: Check that the column does not become negative. Patch 9.0.0766 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0767 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0768 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0769 Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible. Patch 9.0.0770 Problem: Quickfix commands may keep memory allocated. Solution: Free memory when it's a bit much. (Yegappan Lakshmanan, closes #11379) Patch 9.0.0771 Problem: Cannot always tell the difference between tex and rexx files. Solution: Recognize tex by a leading backslash. (Martin Tournoij, closes #11380) Patch 9.0.0772 Problem: The libvterm code is outdated. Solution: Include libvterm changes from revision 790 to 801. Patch 9.0.0773 Problem: Huge build on MacOS uses dynamic Perl. Solution: Use built-in Perl, uninstall the brew one. (closes #11382) Patch 9.0.0774 Problem: The libvterm code is outdated. Solution: Include libvterm changes from revision 802 to 817. Revert some changes made for C89. Patch 9.0.0775 Problem: MS-Windows: mouse scrolling not supported in the console. Solution: Add event handling for mouse scroll events. (Christopher Plewright, closes #11374) Patch 9.0.0776 Problem: MSVC can't have field name "small". Solution: Rename small to smallfont. Patch 9.0.0777 Problem: Code is indented too much. Solution: Use an early return. (Yegappan Lakshmanan, closes #11386) Patch 9.0.0778 Problem: Indexing of unknown const type fails during compilation. Solution: Check for "any" properly. (closes #11389) Patch 9.0.0779 Problem: lsl and lm3 file extensions are not recognized. Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384) Patch 9.0.0780 Problem: 'scroll' value computed in unexpected location. Solution: Compute 'scroll' when the window height is changed. (Luuk van Baal, closes #11387) Patch 9.0.0781 Problem: Workaround to rename "small" to "smallfont" is clumsy. Solution: Undefine "small" after including windows.h. (Ken Takata) Patch 9.0.0782 Problem: OpenVPN files are not recognized. Solution: Add patterns for OpenVPN files. (closes #11391) Patch 9.0.0783 Problem: ":!" doesn't do anything but does update the previous command. Solution: Do not have ":!" change the previous command. (Martin Tournoij, closes #11372) Patch 9.0.0784 Problem: Text prop "above" not displayed correctly with 'number' and "n" in 'cpo'. Solution: Draw the line number column until the line text is reached. Patch 9.0.0785 Problem: Memory leak with empty shell command. Solution: Free the allocated memory when bailing out. Patch 9.0.0786 Problem: User command does not get number from :tab modifier. Solution: Include the number. (closes #11393, closes #6901) Patch 9.0.0787 Problem: MS-Windows: mouse scrolling in terminal misbehaves without dll. Solution: Add #ifdef as a temporary solution. (Christopher Plewright, closes #11392) Patch 9.0.0788 Problem: ModeChanged autocmd not executed when Visual mode is ended with CTRL-C. Solution: Do not trigger the autocmd when got_int is set. (closes #11394) Patch 9.0.0789 Problem: Dummy buffer ends up in a window. Solution: Disallow navigating to a dummy buffer. Patch 9.0.0790 Problem: Test for dummy buffer does not always produce the E86 error. Solution: Do not check if the error is produced. Patch 9.0.0791 Problem: At the hit-Enter prompt the End and Home keys may not work. Solution: Use the special "@" code for End and Home, like it was done for the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396) Patch 9.0.0792 Problem: MS-Windows: compiler complains about unused function. Solution: Add #ifdef. (John Marriott) Patch 9.0.0793 Problem: MS-Windows: mouse scroll events only work with the dll. Solution: Accept CSI codes for MS-Windows without the GUI. (Christopher Plewright, closes #11401) Patch 9.0.0794 Problem: There is no way to find out if an escape sequence with modifyOtherKeys has been seen. Solution: Add a notice with ":verbose map". Patch 9.0.0795 Problem: readblob() always reads the whole file. Solution: Add arguments to read part of the file. (Ken Takata, closes #11402) Patch 9.0.0796 Problem: Mapping test fails in some situations. Solution: Find the line with the verbose information. Patch 9.0.0797 Problem: Order of assert function arguments is reverted. Solution: Swap the arguments. (closes #11399) Patch 9.0.0798 Problem: Clang format configuration files are not recognized. Solution: Use yaml for Clang format configuration files. (Marwin Glaser, closes #11398) Patch 9.0.0799 Problem: In compiled function ->() on next line not recognized. Solution: Also check for "(". (closes #11405) Patch 9.0.0800 Problem: Compiler complains about repeated typedef. Solution: Remove one typedef. Patch 9.0.0801 Problem: The modifyOtherKeys flag is set when it should not. Solution: Do not handle special key codes with a modifier value above 16 as a modifyOtherKeys value. (issue #11403) Patch 9.0.0802 Problem: MS-Windows: cannot map console mouse scroll events. Solution: Change CSI to K_SPECIAL when checking for a mapping. (Christopher Plewright, closes #11410) Patch 9.0.0803 Problem: readblob() cannot read from character device. Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407) Patch 9.0.0804 Problem: Crash when trying to divide the largest negative number by -1. Solution: Handle this case specifically. Patch 9.0.0805 Problem: Filetype autocmd may cause freed memory access. Solution: Set the quickfix-busy flag while filling the buffer. Patch 9.0.0806 Problem: 'langmap' works differently when there are modifiers. Solution: Only apply 'langmap' to a character where modifiers have no effect. (closes #11395, closes #11404) Patch 9.0.0807 Problem: With 'smoothscroll' typing "0" may not go to the first column. Solution: Recompute w_cline_height when needed. Do not scroll up when it would move the cursor. Patch 9.0.0808 Problem: jsonnet filetype detection has a typo. Solution: Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412) Patch 9.0.0809 Problem: Test for job writing to buffer fails. Solution: Correct w_topline when deleting a buffer line. Patch 9.0.0810 Problem: readblob() returns empty when trying to read too much. Solution: Return what is available. Patch 9.0.0811 Problem: Error if :echowin is preceded by a command modifier. Solution: Do not give an error for range when there is a modifier. (closes #11414) Patch 9.0.0812 Problem: GUI mouse scrollwheel mappings don't work. Solution: Add check for "gui.in_use". (Christopher Plewright, closes #11418) Patch 9.0.0813 Problem: Kitty terminal is not recognized. Solution: Recognize Kitty by the termresponse and then do not set seenModifyOtherKeys, since Kitty doesn't support that. (issue #11413) Patch 9.0.0814 Problem: Aws config files are not recognized. Solution: Use "confini" for aws config files. (Justin M. Keyes, closes #11416) Patch 9.0.0815 Problem: ":!" does not switch to the alternate screen. Solution: For ":!" don't clear the previous command. (closes #11420, closes #11409) Patch 9.0.0816 Problem: CTRL-Z at end of file is always dropped. Solution: Add the 'endoffile' option, like the 'endofline' option. (closes #11408, closes #11397) Patch 9.0.0817 Problem: Build error. Solution: correct variable name. Patch 9.0.0818 Problem: "!ls" does not work. Solution: Do not free memory that is in use. Patch 9.0.0819 Problem: Still a build error, tests are failing. Solution: Correct recent changes. Add missing init for 'eof'. Patch 9.0.0820 Problem: Memory leak with empty shell command. Solution: Free the empty string. Patch 9.0.0821 Problem: Memory leak with empty shell command. Solution: Free the empty string. Patch 9.0.0822 Problem: Crash when dragging the statusline with a mapping. Solution: Check for valid window pointer. (issue #11427) Patch 9.0.0823 Problem: Mouse drag test fails. Solution: Only reset the mouse click flag when actually switching to another tab page. Disable test that keeps failing. Patch 9.0.0824 Problem: Crash when using win_move_separator() in other tab page. Solution: Check for valid window in current tab page. (closes #11479, closes #11427) Patch 9.0.0825 Problem: Cannot drag an entry in the tabpage line. Solution: Clear dragwin instead of got_click. (closes #11483, closes #11482) Patch 9.0.0826 Problem: If 'endofline' is set the CTRL-Z may be written in the wrong place. Solution: Write CTRL-Z at the end of the file. Update the help to explain the possibilities better. (Ken Takata, closes #11486) Patch 9.0.0827 Problem: The <Home> key in tmux doesn't work when 'term' is set to "xterm". (Dominique Pellé) Solution: Only use '@' in a termcap key entry for "1" when ";" follows. (closes #11429) Patch 9.0.0828 Problem: Various typos. Solution: Correct typos. (closes #11432) Patch 9.0.0829 Problem: Wrong counts in macro comment. Solution: Update the value counts. (closes #11480) Patch 9.0.0830 Problem: Compiling with Perl on Mac 12 fails. Solution: Suppress infinite warnings. (closes #11499) Patch 9.0.0831 Problem: Compiler warning for redefining HAVE_DUP. Solution: Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484) Patch 9.0.0832 Problem: Deprecation warning causes build failure. Solution: Suppress deprecation warning. (closes #11503) Patch 9.0.0833 Problem: Mac: no +sound feature in huge build. Solution: Enable +sound in Mac huge build. (closes #11497) Patch 9.0.0834 Problem: Warning for missing return type. Solution: Add "int". (San James, closes #11496) Patch 9.0.0835 Problem: The window title is not redrawn when 'endoffile' changes. Solution: redraw the window title when 'endoffile' is changed. (Ken Takata, closes #11488) Patch 9.0.0836 Problem: Wrong error when using extend() with funcref. Solution: Better check the variable type. (closes #11468, closes #11455) Patch 9.0.0837 Problem: append() reports failure when not appending anything. Solution: Only report failure when appending something. (closes #11498) Patch 9.0.0838 Problem: Compiler warnings for unused variables. Solution: Adjust #ifdef and remove unused variables. (John Marriott) Patch 9.0.0839 Problem: Test may fail depending on sequence of events. Solution: Accept error codes in either order. (Yee Cheng Chin, closes #11510) Patch 9.0.0840 Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA) Solution: Remove the const flag from the slice type. (closes #11490) Patch 9.0.0841 Problem: deletebufline() does not always return 1 on failure. Solution: Refactor the code to make it work more predictable. (closes #11511) Patch 9.0.0842 Problem: Unicode range for Apple SF symbols is outdated. Solution: Update to SF Symbols 4. (Yee Cheng Chin, closes #11474) Patch 9.0.0843 Problem: VHS tape files are not recognized. Solution: Add a filetype pattern. (Carlos Alexandro Becker, closes #11452) Patch 9.0.0844 Problem: Handling 'statusline' errors is spread out. Solution: Pass the option name to the lower levels so the option can be reset there when an error is encountered. (Luuk van Baal, closes #11467) Patch 9.0.0845 Problem: Shell command with just space gives strange error. Solution: Skip white space at start of the argument. (Christian Brabandt, Shane-XB-Qian, closes #11515, closes #11495) Patch 9.0.0846 Problem: Using assert_fails() may cause hit-enter prompt. Solution: Set no_wait_return. (closes #11522) Patch 9.0.0847 Problem: CI: not totally clear what MS-Windows version is used. Solution: Show the Windows version. (Ken Takata, closes #11524) Patch 9.0.0848 Problem: Help item for --log argument is not aligned nicely. Solution: Add a Tab. (Ken Takata, closes #11521) Patch 9.0.0849 Problem: Terminal mouse test is a bit flaky. Solution: Add WaitFor() calls. (James McCoy closes #11519) Tune wait times to reduce flakiness. Patch 9.0.0850 Problem: MS-Windows Terminal has unstable color control. Solution: Do not try to read the old command prompt colortable, use modern VT sequences. (Christopher Plewright, closes #11450, closes #11373) Patch 9.0.0851 Problem: Terminal mouse test is still flaky. Solution: Also use WaitForAssert(). Patch 9.0.0852 Problem: Crypt test is skipped if xxd is not found. Solution: Find xxd where it was supposed to be build. Patch 9.0.0853 Problem: Terminal mouse test is still flaky on MacOS M1. Solution: Also wait for the file to have some contents. Patch 9.0.0854 Problem: No proper test for what 9.0.0846 fixes. Solution: Run test in a terminal so that the hit-enter prompt can show up. (closes #11523) Patch 9.0.0855 Problem: Comment not located above the code it refers to. Solution: Move the comment. (closes #11527) Patch 9.0.0856 Problem: MS-Windows: executable not found when running individual test. Solution: Also look for vimd.exe. (Christopher Plewright, closes #11525) Patch 9.0.0857 Problem: Selecting MSVC 2017 does not set $PLATFORM. Solution: Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485) Patch 9.0.0858 Problem: "!!sort" in a closed fold sorts too many lines. Solution: Round to end of fold after adding the line count. (closes #11487) Patch 9.0.0859 Problem: Compiler warning for unused variable. Solution: Add #ifdef. Patch 9.0.0860 Problem: MS-Windows: windres fails with clang 15.0.4. Solution: Use llvm-windres. (John Marriott) Patch 9.0.0861 Problem: Solution for "!!sort" in closed fold is not optimal. Solution: Use a different range instead of the subtle difference in handling a range with an offset. (issue #11487) Patch 9.0.0862 Problem: Default value of 'endoffile' is wrong. Solution: The default must be 'noendoffile'. Patch 9.0.0863 Problem: col() and charcol() only work for the current window. Solution: Add an optional winid argument. (Yegappan Lakshmanan, closes #11466, closes #11461) Patch 9.0.0864 Problem: Crash when using "!!" without a previous shell command. Solution: Check "prevcmd" is not NULL. (closes #11487) Patch 9.0.0865 Problem: Duplicate arguments are not always detected. Solution: Expand to full path before comparing arguments. (Nir Lichtman, closes #11505, closes #9402) Patch 9.0.0866 Problem: No test for what patch 8.2.2207 fixes. Solution: Add a test case. (closes #11531) Patch 9.0.0867 Problem: Wildmenu redrawing code is spread out. Solution: Refactor to move code together. (closes #11528) Patch 9.0.0868 Problem: MS-Windows: after Vim exits console resizing does not work properly. Solution: Restore screen behavior checks for various WT and VTP combinations. (Christopher Plewright, closes #11526, closes #11507) Patch 9.0.0869 Problem: Bogus error when string used after :elseif. Solution: Do not consider a double quote the start of a comment. (closes #11534) Patch 9.0.0870 Problem: Get E967 when using text property in quickfix window. (Sergey Vlasov) Solution: Do not add an extra NUL and compute the text length correctly. (closes #11513) Patch 9.0.0871 Problem: Using freed memory when clearing augroup at more prompt. Solution: Delay clearing augroup until it's safe. (closes #11441) Patch 9.0.0872 Problem: Code is indented more than needed. Solution: Return early. (Yegappan Lakshmanan, closes #11538) Patch 9.0.0873 Problem: Using freed memory when executing mapclear at the more prompt. Solution: Do not clear mappings while listing them. (closes #11438) Patch 9.0.0874 Problem: Using freed memory when executing unmenu at the more prompt. Solution: Do not clear menus while listing them. (closes #11439) Patch 9.0.0875 Problem: Using freed memory when executing delfunc at the more prompt. Solution: Check function list not changed in another place. (closes #11437) Patch 9.0.0876 Problem: Code is indented more than needed. Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539) Patch 9.0.0877 Problem: Using freed memory with :comclear while listing commands. Solution: Bail out when the command list has changed. (closes #11440) Patch 9.0.0878 Problem: Coverity warns for dead code. Solution: Remove the dead code. Patch 9.0.0879 Problem: Unnecessary nesting in makefile. Solution: Join "else" and "ifeq". (Ken Takata, closes #11547) Patch 9.0.0880 Problem: Preprocessor indenting is off. Solution: Adjust preprocessor indentation. (Ken Takata, closes #11546) Patch 9.0.0881 Problem: Cannot get the currently showing mouse shape. Solution: Add getmouseshape(). Patch 9.0.0882 Problem: Using freed memory after SpellFileMissing autocmd uses bwipe. Solution: Bail out if the window no longer exists. Patch 9.0.0883 Problem: A silent mapping may cause dots on the command line. Solution: Don't show dots for completion if they are not going to be removed again. (closes #11501) Patch 9.0.0884 Problem: Mouse shape remains in op-pending mode after failed change. Solution: Reset finish_op and restore it. (closes #11545) Patch 9.0.0885 Problem: Informational message has an error message number. Solution: Use a message without an error number. (closes #11530) Patch 9.0.0886 Problem: Horizontal mouse scroll only works in the GUI. Solution: Make horizontal mouse scroll also work in a terminal. (Christopher Plewright, closes #11448) Patch 9.0.0887 Problem: Cannot easily try out what codes various keys produce. Solution: Add a script to gather key code information, with an initial list of codes to compare with. Patch 9.0.0888 Problem: MS-Windows GUI: CTRL-] does not work on Swiss keyboard. Solution: Check the key code and don't consider it as a dead key. (Aedin Louis Xavier, closes #11556) Patch 9.0.0889 Problem: Keycode check script has a few flaws. Solution: Sort on terminal name. Ignore XTGETTCAP responses. Check for version and status response. Update entries. Patch 9.0.0890 Problem: No test for what patch 9.0.0827 fixes. Solution: Add a test (still doesn't fail when fix is reverted). Patch 9.0.0891 Problem: Virtual text below after match has wrong highlight. Solution: Restore search_attr only after the virtual text. (closes #11446) Patch 9.0.0892 Problem: May redraw when not needed, causing slow scrolling. Solution: Do not redraw when w_skipcol doesn't change. When w_skipcol changes only redraw from the top. (issue #11559) Patch 9.0.0893 Problem: 'smoothscroll' cursor calculations wrong when 'number' is set. Solution: Correct the code that computes the width. (closes #11492) Patch 9.0.0894 Problem: Virtual text property highlight ignores window background. Solution: Combine text prop attribute with win_attr into extra_attr. (closes #11462) Patch 9.0.0895 Problem: File renamed twice in test; missing feature check. Solution: Remove a rename() call. Add check for cryptv feature. (closes #11564) Patch 9.0.0896 Problem: Test for home key fails when 'term' is "tmux". Solution: Only save termcap entries that exist. Adjust code for xHome to what xterm uses. (closes #11566) Patch 9.0.0897 Problem: Clinical Quality Language files are not recognized. Solution: Add the "*.cql" pattern. (Matthew Gramigna, closes #11452) Patch 9.0.0898 Problem: With 'smoothscroll' cursor is one screen line too far down. (Ernie Rael) Solution: Add a test that currently has the wrong result so that a fix can be made. (issue #11436) Patch 9.0.0899 Problem: The builtin terminals are in one long list. Solution: Refactor into multiple lists and an index of the lists. Patch 9.0.0900 Problem: Cursor moves too far with 'smoothscroll'. Solution: Only move as far as really needed. (Yee Cheng Chin, closes #11504) Patch 9.0.0901 Problem: Setting w_leftcol and handling side effects is confusing. Solution: Use a function to set w_leftcol() and handle side effects. Patch 9.0.0902 Problem: Some mouse scroll code is not in a good place. Solution: Refactor the code. (Christopher Plewright, closes #11561) Patch 9.0.0903 Problem: Key code checker doesn't check modifyOtherKeys resource. Solution: Request the modifyOtherKeys resource value. Drop resource DCS responses. Patch 9.0.0904 Problem: Various comment and indent flaws. Solution: Improve comments and indenting. Patch 9.0.0905 Problem: Virtual text after the line wraps when 'wrap' is off. Solution: Only set text_prop_follows when wrapping. (closes #11463) Patch 9.0.0906 Problem: Mouse scroll code is not optimal. Solution: Properly organise Normal mode, Insert mode and common code. (Christopher Plewright, closes #11572) Patch 9.0.0907 Problem: Restoring window after WinScrolled may fail. Solution: Lock the window layout when triggering WinScrolled. Patch 9.0.0908 Problem: With 'smoothscroll' cursor may end up in wrong position. Solution: Correct the computation of screen lines. (Yee Cheng Chin, closes #11502) Patch 9.0.0909 Problem: Error message for layout change does not match action. Solution: Pass the command to where the error is given. (closes #11573) Patch 9.0.0910 Problem: Setting lines in another buffer may not work well. Solution: Make sure the buffer being changed has a window. (issue #11558) Patch 9.0.0911 Problem: With 'smoothscroll' set mouse click position may be wrong. Solution: Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514) Patch 9.0.0912 Problem: libvterm with modifyOtherKeys level 2 does not match xterm. Solution: Adjust key code escape sequences to be the same as what xterm sends in modifyOtherKeys level 2 mode. Check the value of no_reduce_keys before using it. Patch 9.0.0913 Problem: Only a change in the current window triggers the WinScrolled event. Solution: Trigger WinScrolled if any window scrolled or changed size. (issue #11576) Patch 9.0.0914 Problem: deletebufline() may move marks in the wrong window. Solution: Find a window for the buffer being changed. (closes #11583) Patch 9.0.0915 Problem: WinScrolled may trigger immediately when defined. Solution: Initialize the fields in all windows. (closes #11582) Patch 9.0.0916 Problem: getbufline() is inefficient for getting a single line. Solution: Add getbufoneline(). Patch 9.0.0917 Problem: The WinScrolled autocommand event is not enough. Solution: Add WinResized and provide information about what changed. (closes #11576) Patch 9.0.0918 Problem: MS-Windows: modifier keys do not work with mouse scroll events. Solution: Use K_SPECIAL instead of CSI for the modifier keys. (Christopher Plewright, closes #11587) Patch 9.0.0919 Problem: Build failure with tiny features. Solution: Adjust #ifdef's. Patch 9.0.0920 Problem: Cannot find an import prefixed with "s:". (Doug Kearns) Solution: Skip over the "s:". (closes #11585) Patch 9.0.0921 Problem: Missing defined(PROTO) in #ifdef. Solution: Adjust #ifdef so that proto works with different features. Clean up some preprocessor indenting. Patch 9.0.0922 Problem: Mermaid files are not recognized. Solution: Add patterns for Mermaid. (Crag MacEachern) Patch 9.0.0923 Problem: Second SIGWINCH signal may be ignored. Solution: When set_shellsize() is busy when called then run the inner code again when it's done. (issue #424) Patch 9.0.0924 Problem: The first termcap entry of a builtin termcap is not used. Solution: Remove increment that was previously skipping the KS_NAME entry. Patch 9.0.0925 Problem: Two conditions are always false. Solution: Remove the conditions. Update return value types to make clear what could be returned. (closes #11593) Patch 9.0.0926 Problem: Coverity warns for not using return value of dict_add(). Solution: When dict_add() fails then don't call hash_remove(). Patch 9.0.0927 Problem: Coverity warns for using a NULL pointer. Solution: Check for memory allocation failure. Patch 9.0.0928 Problem: Using Ruby LDFLAGS may cause build problems. Solution: Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal, closes #11592) Patch 9.0.0929 Problem: Build failure with tiny version. (Tony Mechelynck) Solution: Add #ifdef. Patch 9.0.0930 Problem: Cannot debug the Kitty keyboard protocol with TermDebug. Solution: Add Kitty keyboard protocol support to the libvterm fork. Recognize the escape sequences that the protocol generates. Add the 'keyprotocol' option to allow the user to specify for which terminal what protocol is to be used, instead of hard-coding this. Add recognizing the kitty keyboard protocol status. Patch 9.0.0931 Problem: MS-Windows: mouse column limited to 223. Solution: Use two bytes for each mouse coordinate. Add the mouse position to scroll events. (Christopher Plewright, closes #11597) Patch 9.0.0932 Problem: Oblivion files are not recognized. Solution: Recognize Oblivion files and alike as "obse". (closes #11540) Patch 9.0.0933 Problem: Kitty shows "already at oldest change" on startup. Solution: When receiving the keyboard protocol state return the ignore key. (closes #11601) Patch 9.0.0934 Problem: Various code formatting issues. Solution: Improve code formatting. Patch 9.0.0935 Problem: When using dash it may not be recognize as filetype "sh". Solution: Add checks for "dash". (Eisuke Kawashima, closes #11600) Patch 9.0.0936 Problem: Wrong type for "isunnamed" returned by getreginfo(). Solution: Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598) Patch 9.0.0937 Problem: Forked repositories send out useless email. Solution: When Coverity fails to run just ignore it. (Shane-XB-Qian, closes #11604) Patch 9.0.0938 Problem: MS-Windows: debug executable not found when running test. Solution: Look for vimd.exe. (Christopher Plewright, closes #11602) Patch 9.0.0939 Problem: Still using simplified mappings when using the kitty keyboard protocol. Solution: Use the kitty_protocol_state value to decide whether to use simplified mappings. Improve how seenModifyOtherKeys is set and reset. Patch 9.0.0940 Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian) Solution: Use the "vterm" variable instead of getting the terminal pointer from the current buffer. (closes #11608) Patch 9.0.0941 Problem: CI failures in sound dummy. Solution: Temporarily disable building sound dummy. (closes #11610) Patch 9.0.0942 Problem: Workflow Description Language files are not recognized. Solution: Add a pattern for the "wdl" filetype. (Matt Dunford, closes #11611) Patch 9.0.0943 Problem: Pretending to go out of Insert mode when Esc is received has side effects. Solution: When the kitty keyboard protocol is enabled expect Esc to always be the start of an escape sequence. Patch 9.0.0944 Problem: 'cursorline' causes virtual text highlight to continue. Solution: Save and restore line_attr. (closes #11588) Patch 9.0.0945 Problem: Failures in the cursorline test. Solution: Reset extra_attr only after a text property. Patch 9.0.0946 Problem: CI: Error in Coverity flow is not reported. Solution: Use another way to avoid errors in a forked repository. (Ken Takata, closes #11609) Patch 9.0.0947 Problem: Invalid memory access in substitute with function that goes to another file. Solution: Check for text locked in CTRL-W gf. Patch 9.0.0948 Problem: 'ttyfast' is set for arbitrary terminals. Solution: Always set 'ttyfast'. (closes #11549) Patch 9.0.0949 Problem: Crash when unletting a variable while listing variables. Solution: Disallow changing a hashtable while going over the entries. (closes #11435) Patch 9.0.0950 Problem: The pattern "\_s\zs" matches at EOL. Solution: Make the pattern "\_s\zs" match at the start of the next line. (closes #11617) Patch 9.0.0951 Problem: Trying every character position for a match is inefficient. Solution: Use the start position of the match ignoring "\zs". Patch 9.0.0952 Problem: Eclipse preference files are not recognized. Solution: Add a pattern to use "jproperties" for Eclipse preference files. (closes #11618) Patch 9.0.0953 Problem: Part of making search more efficient is missing. Solution: Add the change in searchit(). Patch 9.0.0954 Problem: Cannot detect whether modifyOtherKeys is enabled. Solution: Use XTQMODKEYS introduced by xterm version 377 to request the modifyOtherKeys level. Update the keycode check results. Patch 9.0.0955 Problem: Libvterm does not support the XTQMODKEYS request. Solution: Implement the XTQMODKEYS request and response. Update the keycode check results. Patch 9.0.0956 Problem: Terminal tests fail when using key with modifier. Solution: Use the modifyOtherKeys encoding when using RunVimInTerminal(). Patch 9.0.0957 Problem: Tests fail without the terminal feature. Solution: Move functions to another utility script. Patch 9.0.0958 Problem: Messages test is flaky. Solution: Add a short delay. Patch 9.0.0959 Problem: Error when using the "File Settings / Text Width" menu. Solution: Use str2nr(). (closes #11624) Patch 9.0.0960 Problem: Error when using the "Tools / Spelling / Find More Languages" menu. Solution: Remove "<SID>". Reset "g:menutrans_set_lang_to" when 'encoding' changes. (closes #11625) Patch 9.0.0961 Problem: Using deletebufline() may jump to another window. Solution: Do not use a window where the buffer was only in the past. (closes #11594) Patch 9.0.0962 Problem: Virtual text below cannot be placed below empty lines. Solution: Add one character. (James Alvarado, closes #11606, closes #11520) Patch 9.0.0963 Problem: Function name does not match autocmd event name. Solution: Rename "optionsset" to "optionset". (closes #11630) Patch 9.0.0964 Problem: Status line of other window not redrawn when dragging it when 'splitkeep' is set to "screen". Solution: Set w_redr_status earlier. (Luuk van Baal, closes #11635, closes #11632) Patch 9.0.0965 Problem: Using one window for executing autocommands is insufficient. Solution: Use up to five windows for executing autocommands. Patch 9.0.0966 Problem: Some compilers don't allow a declaration after a label. Solution: Move the declaration to the start of the block. (John Marriott) Patch 9.0.0967 Problem: Leaking memory from autocmd windows. Solution: Free window when auc_win is not NULL. Patch 9.0.0968 Problem: GUI mouse event test is a bit flaky. Solution: Mark the test case as flaky. Move test function failure checks to a separate test function. Patch 9.0.0969 Problem: Matchparen highlight is not updated when switching buffers. Solution: Listen to the BufLeave and the BufWinEnter autocmd events. (closes #11626) Patch 9.0.0970 Problem: Coverity warns for uninitialized variable. Solution: Initialize "ren_ret". Patch 9.0.0971 Problem: Escape sequences not recognized without the termresponse feature. Solution: Recognize escape sequences to avoid display mess up. Patch 9.0.0972 Problem: Build failure on some systems. Solution: Adjust #ifdefs related to the termresponse feature. Patch 9.0.0973 Problem: Kitty keyboard protocol key not decoded when it has an unsupported modifier, such as NumLock. Solution: Accept a key with any modifier. (closes #11638) Patch 9.0.0974 Problem: Even when Esc is encoded a timeout is used. Solution: Use K_ESC when an encoded Esc is found. Patch 9.0.0975 Problem: Virtual text below an empty line is misplaced when 'number' is set. Solution: Adjust the computations. (closes #11629) Patch 9.0.0976 Problem: Enabling the kitty keyboard protocol uses push/pop. Solution: Use the start/stop codes to avoid unpredictable behavior. Patch 9.0.0977 Problem: It is not easy to see what client-server commands are doing. Solution: Add channel log messages if ch_log() is available. Move the channel logging and make it available with the +eval feature. Patch 9.0.0978 Problem: Build errors without the +channel feature. (John Marriott) Solution: Adjust #ifdefs. Patch 9.0.0979 Problem: ch_log() text can be hard to find in the log file. Solution: Prepend "ch_log()" to the text. Patch 9.0.0980 Problem: The keyboard state response may end up in a shell command. Solution: Only request the keyboard protocol state when the typeahead is empty, no more commands are following and not exiting. Add the t_RK termcap entry for this. Patch 9.0.0981 Problem: Build error in tiny version. Solution: Add #ifdef. Patch 9.0.0982 Problem: 'cursorline' not drawn before virtual text below. Solution: Add the 'cursorline' attribute to the empty space. (closes #11647) Patch 9.0.0983 Problem: Stray characters displayed when starting the GUI. Solution: Add t_RK to the list of terminal options. Patch 9.0.0984 Problem: GUI: remote_foreground() does not always work. (Ron Aaron) Solution: For GTK use gtk_window_set_keep_above(). (issue #11641) Patch 9.0.0985 Problem: When using kitty keyboard protocol function keys may not work. (Kovid Goyal) Solution: Recognize CSI ending in [ABCDEFHPQRS] also when the termcap entries are not specified. (closes #11648) Patch 9.0.0986 Problem: Build failure with tiny version. Solution: Add #ifdef. Patch 9.0.0987 Problem: File missing from list of distributed files. Solution: Add logfile.pro to list of distributed files. Patch 9.0.0988 Problem: Using feedkeys() does not show up in a channel log. Solution: Add ch_log() calls and clean up the code. Patch 9.0.0989 Problem: Popupwin test is more flaky on MacOS. Solution: Use a longer wait time. Patch 9.0.0990 Problem: Callback name argument is changed by setqflist(). Solution: Use the expanded function name for the callback, do not store it in the argument. (closes #11653) Patch 9.0.0991 Problem: Crash when reading help index with various options set. (Marius Gedminas) Solution: Do not set wlv.c_extra to NUL when wlv.p_extra is NULL. (closes #11651) Patch 9.0.0992 Problem: Vim9 script: get E1096 when comment follows return. Solution: Adjust condition for return without expression. (closes #11654) Patch 9.0.0993 Problem: Display errors when adding or removing text property type. Solution: Perform a full redraw. Only use text properties for which the type is defined. (closes #11655) Patch 9.0.0994 Problem: Tests for empty prop type name fail. Solution: Correct the error number. Patch 9.0.0995 Problem: Padding before virtual text below is highlighted when 'number' and 'nowrap' are set. Solution: Save and restore n_attr_skip. (closes #11643) Patch 9.0.0996 Problem: If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys. Solution: Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and let the default value of 'keyprotocol' add those. Patch 9.0.0997 Problem: Coverity warns for dead code. Solution: Don't use ASCII_ISUPPER() for a negative value. Patch 9.0.0998 Problem: "gk" may reset skipcol when not needed. Solution: Only reset skipcol if the cursor column is less. Patch 9.0.0999 Problem: Memory may leak. Solution: Free the sound callback function name if it was allocated. Patch 9.0.1000 Problem: With 'smoothscroll' skipcol may be reset unnecessarily. Solution: Check the line does actually fit in the window. Patch 9.0.1001 Problem: Classes are not documented or implemented yet. Solution: Make the first steps at documenting Vim9 objects, classes and interfaces. Make initial choices for the syntax. Add a skeleton implementation. Add "public" and "this" in the command table. Patch 9.0.1002 Problem: Command list test fails. Solution: Add commands added to the list. Patch 9.0.1003 Problem: Tiny build fails. Solution: Remove #ifdef from error message. Patch 9.0.1004 Problem: Suspend test sometimes fails on MacOS. Solution: Wait a short while for terminal responses. Patch 9.0.1005 Problem: A failed test may leave a swap file behind. Solution: Delete the swap file to avoid another test to fail. Use another file name. Patch 9.0.1006 Problem: Suspend test still sometimes fails on MacOS. Solution: Wait a little while for terminal responses. Patch 9.0.1007 Problem: There is no way to get a list of swap file names. Solution: Add the swapfilelist() function. Use it in the test script to clean up. Remove deleting individual swap files. Patch 9.0.1008 Problem: Test for swapfilelist() fails on MS-Windows. Solution: Only check the tail of the path. Mark a test as flaky. Patch 9.0.1009 Problem: Test for catch after interrupt is flaky on MS-Windows. Solution: Mark the test as flaky. Patch 9.0.1010 Problem: Stray warnings for existing swap files. Solution: Wipe out the buffer until it has no name and no swap file. Patch 9.0.1011 Problem: ml_get error when using screenpos(). Solution: Give an error for the line number. (closes #11661) Patch 9.0.1012 Problem: Tests may get stuck in buffer with swap file. Solution: Bail out when bwipe! doesn't get another buffer. Patch 9.0.1013 Problem: Suspend test often fails on Mac OS. Solution: Make t_RP empty. Patch 9.0.1014 Problem: Zir files are not recognized. Solution: Add a pattern for Zir files. (closes #11664) Patch 9.0.1015 Problem: Without /dev/urandom srand() seed is too predictable. Solution: Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto, closes #11656) Patch 9.0.1016 Problem: screenpos() does not count filler lines for diff mode. Solution: Add filler lines. (closes 11658) Patch 9.0.1017 Problem: Test for srand() fails on MS-Windows. Solution: Do not expect the same result a second time. Patch 9.0.1018 Problem: Suspend test still fails on Mac OS. Solution: Make 'keyprotocol' empty. Patch 9.0.1019 Problem: 'smoothscroll' and virtual text above don't work together. (Yee Cheng Chin) Solution: Skip virtual text above when w_skipcol is non-zero. (closes #11665) Patch 9.0.1020 Problem: Tests call GetSwapFileList() before it is defined. Solution: Move the call to after defining the function. (Christopher Plewright) Patch 9.0.1021 Problem: Test trips over g:name. Solution: Delete g:name after using it. Patch 9.0.1022 Problem: Suspend test fails on Mac OS when suspending Vim. Solution: Make 'keyprotocol' empty. Patch 9.0.1023 Problem: MS-Windows: dynamic loading of libsodium doesn't work. Solution: Add "randombytes_random". (Ken Takata, closes #11667) Patch 9.0.1024 Problem: CI doesn't use the latest FreeBSD version. Solution: Go from 12.3 to 12.4. (closes #11423) Patch 9.0.1025 Problem: WinScrolled is not triggered when filler lines change. Solution: Add "topfill" to the values that WinScrolled triggers on. (closes #11668) Patch 9.0.1026 Problem: type of w_last_topfill is wrong. Solution: Use "int" instead of "linenr_T". (closes #11670) Patch 9.0.1027 Problem: LGTM is soon shutting down. Solution: Remove LGTM from CI. (closes #11671) Patch 9.0.1028 Problem: Mouse shape test is flaky, especially on Mac OS. Solution: Instead of starting all timers at the same time, start the next one in the callback of the previous one. (Yee Cheng Chin, closes #11673) Also use "bwipe!" instead of "close!" to avoid swap files remaining. Patch 9.0.1029 Problem: Autoload directory missing from distribution. Solution: Add the autoload/zig directory to the list of distributed files. Patch 9.0.1030 Problem: Using freed memory with the cmdline popup menu. Solution: Clear the popup menu when clearing the matches. (closes #11677) Patch 9.0.1031 Problem: Vim9 class is not implemented yet. Solution: Add very basic class support. Patch 9.0.1032 Problem: Test fails when terminal feature is missing. Solution: Use CheckRunVimInTerminal. Patch 9.0.1033 Problem: Tiny build fails because of conflicting typedef. Solution: Remove one typedef. Patch 9.0.1034 Problem: Reporting swap file when windows are split. Solution: Close extra windows after running a test. Patch 9.0.1035 Problem: Object members are not being marked as used, garbage collection may free them. Solution: Mark object members as used. Fix reference counting. Patch 9.0.1036 Problem: Undo misbehaves when writing from an insert mode mapping. Solution: Sync undo when writing. (closes #11674) Patch 9.0.1037 Problem: lalloc(0) error for a class without members. Solution: Don't allocate room for members if there aren't any. Don't create the class if there was an error. Patch 9.0.1038 Problem: Function name does not match what it is used for. Solution: Include the modifier in the name. (closes #11679) Patch 9.0.1039 Problem: Using a <Cmd> mapping CmdlineChanged may be triggered twice. Solution: Count the number of times CmdlineChanged is triggered and avoid doing it twice. (closes #116820 Patch 9.0.1040 Problem: Test for <Cmd> mapping with CmdlineChanged fails. Solution: Put back the check for the cmdline length not changing. Patch 9.0.1041 Problem: Cannot define a method in a class. Solution: Implement defining an object method. Make calling an object method work. Patch 9.0.1042 Problem: ASAN gives false alarm about array access. Solution: Use an intermediate pointer. Patch 9.0.1043 Problem: Macro has confusing name and is duplicated. Solution: Use one macro with an understandable name. (closes #11686) Patch 9.0.1044 Problem: Setting window height using Python may cause errors. Solution: When setting "curwin" also set "curbuf". (closes #11687) Patch 9.0.1045 Problem: In a class object members cannot be initialized. Solution: Support initializing object members. Make "disassemble" work on an object method. Patch 9.0.1046 Problem: Class method disassemble test fails on MS-Windows. Solution: Do not match with a specific size. Patch 9.0.1047 Problem: Matchparen is slow. Solution: Actually use the position where the match started, not the position where the search started. (closes #11644) Patch 9.0.1048 Problem: With "screenline" in 'culopt' cursorline highlight is wrong. Solution: Apply the priority logic also when "screenline is in 'culopt'. (closes #11696) Patch 9.0.1049 Problem: Crash when opening a very small terminal window. Solution: Instead of crashing fix the cursor position. (closes #11697) Patch 9.0.1050 Problem: Using freed memory when assigning to variable twice. Solution: Make copy of the list type. (closes #11691) Patch 9.0.1051 Problem: After a failed CTRL-W ] next command splits window. Solution: Reset postponed_split. (Rob Pilling, closes #11698) Patch 9.0.1052 Problem: Using freed memory on exit when EXITFREE is defined. Solution: Make a deep copy of the type. Make sure TTFLAG_STATIC is not set in the copy. Patch 9.0.1053 Problem: Default constructor arguments are not optional. Solution: Use "= v:none" to make constructor arguments optional. Patch 9.0.1054 Problem: Object member can't get type from initializer. Solution: If there is no type specified try to use the type of the initializer. Check for a valid type. Patch 9.0.1055 Problem: Coverity warns for using uninitialized memory. Solution: Clear the "lhs" field earlier. Patch 9.0.1056 Problem: Leaking memory when disassembling an object method. Solution: Free the typval of the class. Patch 9.0.1057 Problem: Conflict between supercollider and scala filetype detection. Solution: Do not check for "Class : Method", it can appear in both filetypes. (Chris Kipp, closes #11699) Patch 9.0.1058 Problem: String value of class and object do not have useful information. Solution: Add the class name and for the object the member values. Patch 9.0.1059 Problem: Build failure with some compilers that can't handle a declaration directly after a "case" statement. Solution: Add a block to put the declarations in. Patch 9.0.1060 problem: Private and public object members are not implemented yet. Solution: Implement private and public object members. Patch 9.0.1061 Problem: Cannot display 'showcmd' somewhere else. Solution: Add the 'showcmdloc' option. (Luuk van Baal, closes #11684) Patch 9.0.1062 Problem: Some test function names do not match what they are doing. Solution: Leave out user data for the test that is called "NoUserData". (closes #11703) Patch 9.0.1063 Problem: When using Kitty a shell command may mess up the key protocol state. Solution: Output t_te before t_TE. If t_te switches between the main and the alternate screen then deactivating the key protocol by t_TE should happen after switching screen. (issue #11705) Patch 9.0.1064 Problem: Code for making 'shortmess' temporarily empty is repeated. Solution: Add functions for making 'shortmess' empty and restoring it. (Christian Brabandt, closes #11709) Patch 9.0.1065 Problem: A shell command switching screens may still have a problem with the kitty keyboard protocol. Solution: Disable the kitty keyboard protocol both in the current and the alternate screen, if there are indications it might be needed. (issue #11705) Also fix naming. Patch 9.0.1066 Problem: Test function name is wrong. Solution: Rename to what is actually being tested. (closes #11712) Patch 9.0.1067 Problem: In diff mode virtual text is highlighted incorrectly. (Rick Howe) Solution: Do not use diff attributes for virtual text. (closes #11714) Patch 9.0.1068 Problem: No information about whether requesting term codes has an effect. Solution: Add ch_log() calls to report the effect of term code responses. Avoid deleting an entry and then adding back the same one. Patch 9.0.1069 Problem: Diff mode highlight fails for special characters. Solution: Adjust condition for setting "diff_hlf". Patch 9.0.1070 Problem: Reading beyond array size. Solution: Only use name[0] and name[1], do not use "name" as a string. Patch 9.0.1071 Problem: Codecov action version is too specific. Solution: Only use "v3" to automatically use the latest stable version. (closes #11720) Patch 9.0.1072 Problem: screenpos() column result in fold may be too small. Solution: Add space of 'number', sign column, etc. (closes #11715) Patch 9.0.1073 Problem: Using "xterm-kitty" for 'term' causes problems. Solution: Remove the "xterm-" part when 'term' is set from $TERM. Detect a few kitty-specific properties based on the version response instead of the terminal name. Patch 9.0.1074 Problem: Class members are not supported yet. Solution: Add initial support for class members. Patch 9.0.1075 Problem: build fails if the compiler doesn't allow for a declaration right after "case". Solution: Add a block. Patch 9.0.1076 Problem: ASAN complains about NULL argument. Solution: Skip memmove() when there is nothing to move. Patch 9.0.1077 Problem: Can add text property with negative ID before virtual text property. Solution: Remember that a text property with a negative ID was used and give an appropriate error message. (closes #11725) Fix index computation. Patch 9.0.1078 Problem: With the +vartabs feature indent folding may use wrong 'tabstop'. Solution: Use the "buf" argument instead of "curbuf". Patch 9.0.1079 Problem: Leaking memory when defining a user command fails. Solution: Free "compl_arg" when needed. (closes #11726) Patch 9.0.1080 Problem: The "kitty" terminfo entry is not widespread, resulting in the kitty terminal not working properly. Solution: Go back to using "xterm-kitty" and avoid the problems it causes in another way. Patch 9.0.1081 Problem: Using "->" with split lines does not always work. Solution: Avoid trying to get another line. (closes #11723) Patch 9.0.1082 Problem: Some jsonc files are not recognized. Solution: Add patterns for jsonc and move some from json to jsonc. (closes #11711) Patch 9.0.1083 Problem: Empty and comment lines in a class cause an error. Solution: Skip empty and comment lines. (closes #11734) Patch 9.0.1084 Problem: Code handling low level MS-Windows events cannot be tested. Solution: Add test_mswin_event() and tests using it. (Christopher Plewright, closes #11622) Patch 9.0.1085 Problem: Compiler warns for uninitialized variable. Solution: Initialize the variable. Remove unused function. (John Marriott) Patch 9.0.1086 Problem: Display wrong in Windows terminal after exiting Vim. Solution: Apply screen restore fix for Windows 11 also to Windows 10 builds. (Christopher Plewright, closes #11713, closes #11706) Patch 9.0.1087 Problem: Autocommand test sometimes fails. Solution: Add a short delay. (James McCoy, closes #11737) Patch 9.0.1088 Problem: Clang warns for unused variable. Solution: Adjust #ifdef. (John Marriott) Patch 9.0.1089 Problem: unnecessary assignment Solution: Remove the assignment. (Luuk van Baal, closes #1136) Patch 9.0.1090 Problem: FHIR Shorthand files are not recognized. Solution: Add a pattern to detect FSH files. (Matthew Gramigna, closes #11738) Patch 9.0.1091 Problem: Assignment to non-existing member causes a crash. (Yegappan Lakshmanan) Solution: Give an error message and bail out when a member cannot be found. Patch 9.0.1092 Problem: Search error message doesn't show used pattern. Solution: Pass the actually used pattern to where the error message is given. (Rob Pilling, closes #11742) Patch 9.0.1093 Problem: Using freed memory of object member. (Yegappan Lakshmanan) Solution: Make a copy of the object member when getting it. Patch 9.0.1094 Problem: Compiler warning when HAS_MESSAGE_WINDOW is not defined. Solution: Add UNUSED. Patch 9.0.1095 Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan) Solution: After unreferencing an object set the reference to NULL. Patch 9.0.1096 Problem: Reallocating hashtab when the size didn't change. Solution: Bail out when the hashtab is already the desired size. Patch 9.0.1097 Problem: Tests are failing. Solution: Do clean up a hashtab when at the initial size. Patch 9.0.1098 Problem: Code uses too much indent. Solution: Use an early return. (Yegappan Lakshmanan, closes #11747) Patch 9.0.1099 Problem: Trying to resize a hashtab may cause a problem. Solution: Do not try to resize a hashtab before adding an item. Patch 9.0.1100 Problem: A hashtab with many removed items is not cleaned up. Solution: Re-hash a hashtab even when the size didn't change if too many items were removed. Patch 9.0.1101 Problem: Unused global variable. Solution: Remove the variable. (closes #11752) Patch 9.0.1102 Problem: Complicated use of #ifdef. Solution: Simplify #ifdef use. (Ken Takata, closes #11745) Patch 9.0.1103 Problem: jq files are not recognized. Solution: Add detection of Jq files. (David McDonald, closes #11743) Patch 9.0.1104 Problem: Invalid memory access when checking function argument types. Solution: Do not check beyond the number of arguments. (closes #11755) Patch 9.0.1105 Problem: Code is indented too much. Solution: Use an early return. (Yegappan Lakshmanan, closes #11756) Patch 9.0.1106 Problem: Not all postfix files are recognized. Solution: Recognize main.cf.proto files. (closes #11732) Patch 9.0.1107 Problem: Float constant not recognized as float. Solution: Check the vartype instead of comparing with t_float. (closes #11754) Patch 9.0.1108 Problem: Type error when using "any" type and adding a number to a float. Solution: Accept both a number and a float. (closes #11753) Patch 9.0.1109 Problem: Leaking allocated type. Solution: Reset the "static" flag in the allocated type copy. Patch 9.0.1110 Problem: Build fails on Mac OS X 10.4/10.5 . Solution: Check if the dispatch/dispatch.h header exists. (Evan Miller, closes #11746) Patch 9.0.1111 Problem: Termcap entries for RGB colors are not set automatically. Solution: Always set the termcap entries when +termguicolors is enabled. Patch 9.0.1112 Problem: test_mswin_event() can hang. Solution: Add the "execute" argument to process events right away. (Christopher Plewright, closes #11760) Patch 9.0.1113 Problem: Users cannot easily try out a PR. Solution: Add an "artifacts" section to the AppVeyor CI config. (Christian Brabandt, closes #11762) Patch 9.0.1114 Problem: CI does not use the latest Python version. Solution: Switch from Python 3.10 to 3.11. (closes #11761) Patch 9.0.1115 Problem: Code is indented more than needed. Solution: Use an early return to reduce indenting. (Yegappan Lakshmanan, closes #11758) Patch 9.0.1116 Problem: Compiler may complain about an unused function. Solution: Add #ifdef. (John Marriott) Patch 9.0.1117 Problem: Terminfo entries for bracketed paste are not used. Solution: Use the newly added terminfo entries for bracketed paste. Correct mixup of output strings and key codes. Patch 9.0.1118 Problem: Sporadic test failures when using a terminal window. Solution: Adjust waiting times. (James McCoy, closes #11763) Patch 9.0.1119 Problem: Type of arguments not checked when calling a partial. Solution: Give an error for a wrong argument type. (closes #11753) Patch 9.0.1120 Problem: Tex filetype detection not sufficiently tested. Solution: Add more test cases for "tex" detection. (Jonas Strittmatter, closes #11765) Patch 9.0.1121 Problem: Cursor positioning and display problems with 'smoothscroll' and using "zt", "zb" or "zz". Solution: Adjust computations and conditions. (Yee Cheng Chin, closes #11764) Patch 9.0.1122 Problem: Class member access is not fully tested yet. Solution: Add more tests. Patch 9.0.1123 Problem: Class function not implemented yet. Solution: Implement defining and calling a class function. Patch 9.0.1124 Problem: Virtual text at a column position is truncated at the window edge. (Yegappan Lakshmanan) Solution: Do not truncated virtual text that is placed at a column. Patch 9.0.1125 Problem: Memory leak when using class functions. Solution: Clear and free the array with class functions. Patch 9.0.1126 Problem: Bracketed paste can be enabled when pasted text is not recognized. Solution: Output t_BE only when t_PS and t_PE are set. Patch 9.0.1127 Problem: No error if function argument shadows class member. Solution: Give an error for shadowing a class member. Patch 9.0.1128 Problem: Build failure. Solution: Add type cast. Add missing error messages. Patch 9.0.1129 Problem: Sporadic Test_range() failure. Solution: Clear typeahead. Move to a separate function. (issue #22771) Patch 9.0.1130 Problem: Unexpected output when autoloading a script for an interactive operation. Solution: Reset "KeyTyped" while loading a script and when handling a nested function. (closes #11773) Patch 9.0.1131 Problem: Build failure without the +eval feature. Solution: Move code inside #ifdef. Patch 9.0.1132 Problem: Code is indented more than needed. Solution: Use an early return to reduce indentation. (Yegappan Lakshmanan, closes #11769) Patch 9.0.1133 Problem: Error message names do not match the items. Solution: Add "_str" when the text contains "%s". Patch 9.0.1134 Problem: Comparing objects uses identity instead of equality. Solution: Compare the object values. Patch 9.0.1135 Problem: Missing function argument. Solution: Add ignore case flag. Patch 9.0.1136 Problem: Memory leak when getting class member type from expr. Solution: Clear the expression result. Patch 9.0.1137 Problem: Some conditions are always false. Solution: Remove the useless conditions. (closes #11776) Patch 9.0.1138 Problem: Crash when expecting varargs but it is something else. Solution: Only use the member when the type is a list. (closes #11774) Patch 9.0.1139 Problem: Cannot create a new object in a compiled function. Solution: Compile the instructions to create a new object. Patch 9.0.1140 Problem: Cannot call an object method in a compiled function. Solution: Compile the instructions to invoke an object method. Patch 9.0.1141 Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and wrapping line. Solution: Reset "wlv.vcol_off" after each screen line. (Alexey Radkov, closes #11777) Patch 9.0.1142 Problem: Crash and/or memory leak when redefining function after error. Solution: Clear pointer after making a copy. Clear arrays on failure. (closes #11774) Patch 9.0.1143 Problem: Invalid memory access with bad 'statusline' value. Solution: Avoid going over the NUL at the end. Patch 9.0.1144 Problem: Reading beyond text. Solution: Add strlen_maxlen() and use it. Patch 9.0.1145 Problem: Invalid memory access with recursive substitute expression. Solution: Check the return value of vim_regsub(). Patch 9.0.1146 Problem: MS-Windows: various special keys and modifiers are not mappable. Solution: Adjust the handling of keys with modifiers. (Christian Plewright, closes #11768) Patch 9.0.1147 Problem: Cannot access a class member in a compiled function. Solution: Implement looking up a class member. Patch 9.0.1148 Problem: Cmdline test fails in the GUI. Solution: Skip the test when running in the GUI. Patch 9.0.1149 Problem: Class members may be garbage collected. Solution: Mark class members as being in use. Patch 9.0.1150 Problem: :interface is not implemented yet. Solution: Implement the basics of :interface. Patch 9.0.1151 Problem: Build failure. Solution: Add missing part of :interface change. Patch 9.0.1152 Problem: Class "implements" argument not implemented. Solution: Implement "implements" argument. Add basic checks for when a class implements an interface. Patch 9.0.1153 Problem: Build error with some compilers. Solution: Clear pointer the right way. Patch 9.0.1154 Problem: Coverity warns for dead code. Solution: Remove condition that is always true. Patch 9.0.1155 Problem: Cannot use a class as a type. Solution: Accept a class and interface name as a type. Patch 9.0.1156 Problem: Tests fail because of a different error message. Solution: Don't give an error if a type name can't be found. Patch 9.0.1157 Problem: "implements" only handles one interface name. Solution: Handle a comma separated list of names. Check for duplicate names. Patch 9.0.1158 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11787) Patch 9.0.1159 Problem: Extends argument for class not implemented yet. Solution: Basic implementation of "extends". Patch 9.0.1160 Problem: ASAN error for ufunc_T allocated with wrong size. Solution: Make sure the size can always fit the struct. Patch 9.0.1161 Problem: Coverity warns for using strcpy(). Solution: Call a function to set the function name. Patch 9.0.1162 Problem: Configure does not handle all FORTIFY_SOURCE variants. Solution: Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal, closes #11794) Patch 9.0.1163 Problem: Compiler warning for implicit size_t/int conversion. Solution: Add a type cast. (Mike Williams, closes #11795) Patch 9.0.1164 Problem: Evaluating string expression advances function line. Solution: Disable function lines while parsing a string expression. (Hirohito Higashi, closes #11796) Patch 9.0.1165 Problem: Tests using IPv6 sometimes fail. Solution: Use getaddrinfo() and use try/catch. (James McCoy, closes #11783) Patch 9.0.1166 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11792) Patch 9.0.1167 Problem: EditorConfig files do not have their own filetype. Solution: Add the "editorconfig" filetype. (Gregory Anders, closes #11779) Patch 9.0.1168 Problem: Code to enable/disable mouse is not from terminfo/termcap. Solution: Request the "XM" entry and use it to set 'ttymouse' if possible. Patch 9.0.1169 Problem: Some key+modifier tests fail on some AppVeyor images. Solution: Adjust the tests for key movements and fix the revealed bugs. (Christopher Plewright, closes #11798) Patch 9.0.1170 Problem: LGTM badge no longer works. Solution: Remove the LGTM badge. (closes #11799) Patch 9.0.1171 Problem: Screen is not redrawn after using setcellwidths(). Solution: Redraw the screen when the cell widths have changed. (Yasuhiro Matsumoto, closes #11800) Patch 9.0.1172 Problem: When 'selection' is "exclusive" then "1v" is one char short. Solution: Add one character when 'selection' is "exclusive". (closes #11791) Patch 9.0.1173 Problem: Compiler warning for unused variable on non-Unix systems. Solution: Move #ifdef. (John Marriott) Patch 9.0.1174 Problem: Smali files are not recognized. Solution: Add a pattern for Smali files. (Amaan Qureshi, closes #11801) Patch 9.0.1175 Problem: The set_ref_in_item() function is too long. Solution: Use a separate function for more complicated types. (Yegappan Lakshmanan, closes #11802) Patch 9.0.1176 Problem: smithy files are not recognized. Solution: Add a pattern for Smithy files. (Chris Kipp, closes #11804) Patch 9.0.1177 Problem: AppVeyor uses some older tools. Solution: Switch to Visual Studio 2022 and Python 3.11. (Christopher Plewright, closes #11793) Patch 9.0.1178 Problem: A child class cannot override functions from a base class. Solution: Allow overriding and implement "super". Patch 9.0.1179 Problem: Not all errors around inheritance are tested. Solution: Add more tests. Fix uncovered problems. Patch 9.0.1180 Problem: Compiler warnings without the +job feature. Solution: Adjust #ifdefs. (John Marriott) Patch 9.0.1181 Problem: Class inheritance and typing insufficiently tested. Solution: Add more tests. Implement missing behavior. Patch 9.0.1182 Problem: go checksum files are not recognized. Solution: Add the name of go checksum files. (Amaan Qureshi, closes #11803) Patch 9.0.1183 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11805) Patch 9.0.1184 Problem: Interface of an object is not recognized when checking type. Solution: Use the interface implemented by an object. Patch 9.0.1185 Problem: Using class from imported script not tested. Solution: Add tests. Implement what is missing. Patch 9.0.1186 Problem: Imported class does not work when used twice in a line. Solution: Fix the type parsing. Patch 9.0.1187 Problem: Test for using imported class fails. Solution: Skip over rest of type. Patch 9.0.1188 Problem: Return value of type() for class and object unclear. Solution: Add v:t_object and v:t_class. Patch 9.0.1189 Problem: Invalid memory access with folding and using "L". Solution: Prevent the cursor from moving to line zero. Patch 9.0.1190 Problem: AppVeyor runs much slower with MSVC 2022. Solution: Go back to MSVC 2015. (Christopher Plewright, closes #11810) Patch 9.0.1191 Problem: Some Bazel files are not recognized. Solution: Add an extra Bazel pattern. (Keith Smily, closes #11807) Patch 9.0.1192 Problem: No error when class function argument shadows a member. Solution: Check for shadowing. Patch 9.0.1193 Problem: Cannot map <Esc> when using the Kitty key protocol. Solution: Add a non-simplified mapping for K_ESC. (closes #11811) Patch 9.0.1194 Problem: Compiler warning for comparing pointer with int. Solution: Change NULL to zero. Patch 9.0.1195 Problem: Restoring KeyTyped when building statusline not tested. Solution: Add a test. Clean up and fix other tests. (closes #11815) Patch 9.0.1196 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11813) Patch 9.0.1197 Problem: Dump file missing from patch. Solution: Add missing dump file. Patch 9.0.1198 Problem: Abstract class not supported yet. Solution: Implement abstract class and add tests. Patch 9.0.1199 Problem: Crash when using kitty and using a mapping with <Esc>. Solution: Do not try setting did_simplify when it is NULL. (closes #11817) Patch 9.0.1200 Problem: AppVeyor builds with an old Python version. Solution: Switch from Python 3.8 to 3.11. (Christopher Plewright, closes #11814) Patch 9.0.1201 Problem: Assignment with operator doesn't work in object method. Solution: Handle loading the object member. (closes #11820) Add a few more tests. Patch 9.0.1202 Problem: Crash when iterating over list of objects. Solution: Do not make a copy of tt_member for object or class. (closes #11823) Patch 9.0.1203 Problem: Return type of values() is always list<any>. Solution: Use the member type if possible. (issue #11822) Patch 9.0.1204 Problem: Expression compiled the wrong way after using an object. Solution: Generate constants before getting the type. Patch 9.0.1205 Problem: Crash when handling class that extends another class with more than one object members. Solution: Correct pointer computations. (closes #11824) Patch 9.0.1206 Problem: Testing with Python on AppVeyor does not work properly. Solution: Fix typo. Move most lines to the .bat file. (Christopher Plewright, closes #11828) Patch 9.0.1207 Problem: Error when object type is expected but getting "any". Solution: When actual type is "any" use a runtime type check. (closes #11826) Patch 9.0.1208 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11819) Patch 9.0.1209 Problem: Getting interface member does not always work. Solution: Convert the index on the interface to the index on the object. (closes #11825) Patch 9.0.1210 Problem: Compiler complains about declaration after label. Solution: Move declaration to beginning of block (John Marriott) Patch 9.0.1211 Problem: Storing value in interface member does not always work. Solution: Convert the index on the interface to the index on the object. Patch 9.0.1212 Problem: Cannot read back what setcellwidths() has done. Solution: Add getcellwidths(). (Kota Kato, closes #11837) Patch 9.0.1213 Problem: Adding a line below the last one does not expand fold. Solution: Do not skip mark_adjust() when adding lines below the last one. (Brandon Simmons, closes #11832, closes #10698) Patch 9.0.1214 Problem: File left behind after running tests. Solution: Delete the file. (Dominique Pellé, closes #11839) Patch 9.0.1215 Problem: Using isalpha() adds dependency on current locale. Solution: Do not use isalpha() for recognizing a URL or the end of an Ex command. (closes #11835) Patch 9.0.1216 Problem: Coverity warns for ignoring return value. Solution: Break out of loop if function fails. Patch 9.0.1217 Problem: Using an object member in a closure doesn't work. Solution: Initialize lv_loop_depth. (closes #11840) Patch 9.0.1218 Problem: Completion includes functions that don't work. Solution: Skip functions that are not implemented. (Kota Kato, closes #11845) Patch 9.0.1219 Problem: Handling of FORTIFY_SOURCE flags doesn't match Fedora usage. Solution: Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847) Patch 9.0.1220 Problem: Termcap/terminfo entries do not indicate where modifiers might appear. Solution: Add ";*" for function keys where modifiers are likely to be used. Patch 9.0.1221 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11833) Patch 9.0.1222 Problem: Terminal tests are flaky on MacOS. Solution: Add TermWait() calls. (Yegappan Lakshmanan, closes #11852) Patch 9.0.1223 Problem: Cannot use setcellwidths() below 0x100. Solution: Also accept characters between 0x80 and 0x100. (Ken Takata, closes #11834) Patch 9.0.1224 Problem: Cannot call a :def function with a number for a float argument. Solution: Accept a number as well, convert it to a float. Patch 9.0.1225 Problem: Reading past the end of a line when formatting text. Solution: Check for not going over the end of the line. Patch 9.0.1226 Problem: Spurious empty line when using text properties and virtual text. Solution: Do not set "text_prop_follows" when the other text property is not virtual text. (closes #11846) Patch 9.0.1227 Problem: No cmdline completion for :runtime. Solution: Add completion for :runtime. (closes #11853, closes #11447) Improve the resulting matches. Patch 9.0.1228 Problem: Fuzzy menu completion is only tested in the GUI. Solution: Make fuzzy menu completion test work without GUI. (closes #11861) Patch 9.0.1229 Problem: Cap'n Proto files are not recognized. Solution: Add a pattern and the "capnp" filetype. (Amaan Qureshi, closes #11862) Patch 9.0.1230 Problem: Apache thrift files are not recognized. Solution: Add a pattern for thrift files. (Amaan Qureshi, closes #11859) Patch 9.0.1231 Problem: Completion of :runtime does not handle {where} argument. Solution: Parse the {where} argument. (closes #11863) Patch 9.0.1232 Problem: ColorTable saving and restoring does not work properly. Solution: Restore ColorTable[16] usage. (Christopher Plewright, closes #11836) Patch 9.0.1233 Problem: search() loops forever if "skip" is TRUE for all matches. Solution: Keep the position of the first match. Patch 9.0.1234 Problem: The code style has to be checked manually. Solution: Add basic code style checks in a test. Fix or avoid uncovered problems. Patch 9.0.1235 Problem: MS-Windows console: not flushing termguicolors. Solution: Flush termguicolors. (Christopher Plewright, closes #11871) Patch 9.0.1236 Problem: Code in same_leader() can be simplified. Solution: Simplify code that is executed only once. (closes #11867) Patch 9.0.1237 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11858) Patch 9.0.1238 Problem: :runtime completion can be further improved. Solution: Also complete the {where} argument values and adjust the completion for that. (closes #11874) Patch 9.0.1239 Problem: Cannot have a line break before an object member access. Solution: Check for "." in next line. (closes #11864) Patch 9.0.1240 Problem: Cannot access a private object member in a lambda defined inside the class. Solution: Go up the context stack to find the class. (closes #11866) Patch 9.0.1241 Problem: Coverity warns for not checking function return value. Solution: Explicitly ignore the return value. Patch 9.0.1242 Problem: Code for :runtime completion is not consistent. Solution: Make code for cmdline expansion more consistent. (closes #11875) Patch 9.0.1243 Problem: :setglobal cannot use script-local function for "expr" option. Solution: Use the pointer to the option value properly. (closes #11883) Patch 9.0.1244 Problem: Cursor briefly displayed in a wrong position when pressing Esc in Insert mode after autoindent was used. Solution: Do not adjust the cursor position for assumed deleted white space if text is following. (closes #11877) Patch 9.0.1245 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11879) Patch 9.0.1246 Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11887) Patch 9.0.1247 Problem: Divide by zero with 'smoothscroll' set and a narrow window. Solution: Bail out when the window is too narrow. Patch 9.0.1248 Problem: Cannot export an interface. (Ernie Rael) Solution: Add the EX_EXPORT flag to :interface. (closes #11884) Patch 9.0.1249 Problem: Cannot export an abstract class. (Ernie Rael) Solution: Add the EX_EXPORT flag to :abstract. (closes #11884) Patch 9.0.1250 Problem: Cannot use an object method with :defer. (Ernie Rael) Solution: Find the object method and generate code to call it. (closes #11886) Patch 9.0.1251 Problem: Checking returned value of ga_grow() is inconsistent. Solution: Check for FAIL instead of "not OK". (Yegappan Lakshmanan, closes #11897) Patch 9.0.1252 Problem: MS-Windows: scrollback cropped off on Vim exit. Solution: Don't call SetConsoleScreenBufferInfoEx when using the alternate screen buffer. (Christopher Plewright, closes #11882) Patch 9.0.1253 Problem: CI adds repository unnecessarily. Solution: Remove the line from the workflow. (closes #11900) Patch 9.0.1254 Problem: Calling a method on an interface does not work. Solution: At runtime figure out what method to call. (closes #11901) Patch 9.0.1255 Problem: Changing 'virtualedit' does not have immediate effect. Solution: Correct how is checked for a changed value. (closes #11878) Patch 9.0.1256 Problem: NetworkManager connection files are not recognized. Solution: Add a pattern for NetworkManager connection files. (closes #11893) Patch 9.0.1257 Problem: Code style is not check in test scripts. Solution: Add basic code style check for test files. Patch 9.0.1258 Problem: Code style test fails. Solution: Adjust test files. Patch 9.0.1259 Problem: Diffmode test fails. Solution: Adjust expected result for adjusted indenting. Patch 9.0.1260 Problem: Coverity warns for possible NULL pointer usage. Solution: Change the condition. Patch 9.0.1261 Problem: Elsa files are not recognized. Solution: Add a pattern for Elsa files. (Amaan Qureshi, closes #11908) Patch 9.0.1262 Problem: The did_set_string_option function is too long. Solution: Split off functionality to individual functions. (Yegappan Lakshmanan, Lewis Russell, closes #11904) Patch 9.0.1263 Problem: KDL files are not recognized. Solution: Add a pattern for KDL files. (Amaan Qureshi, closes #11898) Patch 9.0.1264 Problem: Motif: compiler warning for unused argument. Solution: Add "UNUSED". Patch 9.0.1265 Problem: Using an interface method may give a compilation error. Solution: Do not try to compile the body of a method of an interface. (closes #11885) Patch 9.0.1266 Problem: Error for space before ": type" is inconsistent. Solution: Give E1059 in more places. (closes #11868) Patch 9.0.1267 Problem: The did_set_string_option function is too long. Solution: Further cleanup of handling string options. (Yegappan Lakshmanan, Lewis Russell, closes #11920) Patch 9.0.1268 Problem: .clangd and .stylelintrc files don't get a filetype. Solution: Use yaml for .clangd and json for .stylelintrc files. (Mark Skelton, closes #11916) Patch 9.0.1269 Problem: Channel test often fails on Mac OS. Solution: Increase the wait time from one to 15 milliseconds. (D. Ben Knoble, closes #11894) Patch 9.0.1270 Problem: Crash when using search stat in narrow screen. Solution: Check length of message. (closes #11921) Patch 9.0.1271 Problem: Using sizeof() and subtract array size is tricky. Solution: Use offsetof() instead. (closes #11926) Patch 9.0.1272 Problem: Typo in pattern for filetype detection. Solution: Fix the typo. (closes #11924) Patch 9.0.1273 Problem: "1v" may select block with wrong size. (Evgeni Chasnovski) Solution: Compute "curswant" in the right line. (closes #11925) Patch 9.0.1274 Problem: FIRRTL files are not recognized. Solution: Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931) Patch 9.0.1275 Problem: The code for setting options is too complicated. Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis Russell, closes #11932) Patch 9.0.1276 Problem: Some mappings with Meta and Shift do not work. Solution: Apply the Shift modifier to the key. (issue #11913) Patch 9.0.1277 Problem: Cursor may move with autocmd in Visual mode. Solution: Restore "VIsual_active" before calling check_cursor(). (closes #11939) Patch 9.0.1278 Problem: go.work.sum files are not recognized. Solution: Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi, closes #11940) Patch 9.0.1279 Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) Solution: Do not change "wl_lnum" at index zero. (closes #11938) Patch 9.0.1280 Problem: Insufficient testing for what 9.0.1265 fixes. Solution: Add a couple of test cases. (issue #11885) Patch 9.0.1281 Problem: Cadence files are not recognized. Solution: Recognize Cadence files. (Janez Podhostnik, closes #11951) Patch 9.0.1282 Problem: Ron files are not recognized. Solution: Recognize Ron files. (Amaan Qureshi, closes #11948) Patch 9.0.1283 Problem: The code for setting options is too complicated. Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis Russell, closes #11945) Patch 9.0.1284 Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck) Solution: Add variable initializations. Patch 9.0.1285 Problem: Various small problems. Solution: Adjust white space and comments. Patch 9.0.1286 Problem: Coverity warns for using a NULL pointer. Solution: Bail out whan "varp" is NULL. Patch 9.0.1287 Problem: With the Kitty key protocol Esc with NumLock cannot be mapped. Solution: Also use K_ESC when there is a modifier. (closes #11811) Patch 9.0.1288 Problem: FunC files are not recognized. Solution: Recognize FunC files. (Amaan Qureshi, closes #11949) Patch 9.0.1289 Problem: A newer version of clang can be used for CI. Solution: Switch from clang-15 to clang-16. (closes #11577) Patch 9.0.1290 Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged. Solution: Jump to cmdline_changed instead of cmdline_not_changed. (closes #11956) Patch 9.0.1291 Problem: Move language files are not recognized. Solution: Recognize Move language files. (Amaan Qureshi, closes #11947) Patch 9.0.1292 Problem: :defer may call the wrong method for an object. (Ernie Rael) Solution: When en object is from a class that extends or implements, figure out the method to call at runtime. (closes #11910) Patch 9.0.1293 Problem: The set_num_option() is too long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes #11954) Patch 9.0.1294 Problem: The set_bool_option() function is too long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes #11964) Patch 9.0.1295 Problem: The option initialization function is too long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes #11966) Patch 9.0.1296 Problem: Calling an object method with arguments does not work. (Ernie Rael) Solution: Take the argument count into account when looking up the object. (closes #11911) Patch 9.0.1297 Problem: Wrong value for $LC_CTYPE makes the environ test fail. Solution: Unset $LC_CTYPE when running tests. (closes #11963) Patch 9.0.1298 Problem: Inserting a register on the command line does not trigger incsearch or update hlsearch. Solution: Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate and handle it correctly. (Ken Takata, closes #11960) Patch 9.0.1299 Problem: Change for triggering incsearch not sufficiently tested. Solution: Add a test case. Simplify the code. (closes #11971) Patch 9.0.1300 Problem: 'statusline' only supports one "%=" item. Solution: Add support for multiple "%=" items. (TJ DeVries, Yegappan Lakshmanan, closes #11970, closes #11965) Patch 9.0.1301 Problem: Virtual text below empty line not displayed. Solution: Adjust flags and computations. (closes #11959) Patch 9.0.1302 Problem: On a Belgian keyboard CTRL-] does not work. Solution: Translate CTRL-$ into CTRL-]. (closes #11831) Patch 9.0.1303 Problem: Motif: scrollbar width/height wrong when maximized. Solution: Set the width/height when creating the scrollbar. (closes #11946) Patch 9.0.1304 Problem: "$" for 'list' option displayed in wrong position when there are text properties. Solution: Adjust logic for order of displayed items. (closes #11959) Patch 9.0.1305 Problem: Cursor in wrong line with virtual text above. Solution: Count extra line for text property above/below. (closes #11959) Patch 9.0.1306 Problem: No regression test for solved problem of #11959. Solution: Add a test, also with 'list' set. (closes #11959) Patch 9.0.1307 Problem: Setting 'formatoptions' with :let doesn't check for errors. Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan, closes #11974, closes #11972) Patch 9.0.1308 Problem: The code for setting options is too complicated. Solution: Refactor the code for setting options. (Yegappan Lakshmanan, closes #11989) Patch 9.0.1309 Problem: Scrolling two lines with even line count and 'scrolloff' set. Solution: Adjust how the topline is computed. (closes #10545) Patch 9.0.1310 Problem: 'splitkeep' test has failures. Solution: Adjust expected cursor line position. Patch 9.0.1311 Problem: Coverity warns for using a NULL pointer. Solution: Use "empty_option" instead of NULL. Patch 9.0.1312 Problem: Cursor position wrong when splitting window in insert mode. Solution: Pass the actual mode to win_fix_cursor(). (Luuk van Baal, closes #11999, Patch 9.0.1313 Problem: Some settings use the current codepage instead of 'encoding'. Solution: Adjust how options are initialized. (Ken Takata, closes #11992) Patch 9.0.1314 Problem: :messages behavior depends on 'fileformat' of current buffer. Solution: Pass the buffer pointer to where it is used. (Mirko Ceroni, closes #11995) Patch 9.0.1315 Problem: Escaping for completion of map command not properly tested. Solution: Add a few test cases. (closes #12009) Patch 9.0.1316 Problem: MS-Windows: vimfiles dir created with admin group. Solution: Use ShellExecAsUser to create the vimfiles directory. (Christopher Plewright, Ken Takata, closes #12000, closes #11888) Patch 9.0.1317 Problem: Crash when using an unset object variable. Solution: Give an error instead. (closes #12005) Patch 9.0.1318 Problem: Code style test fails. Solution: Remove trailing white space. Patch 9.0.1319 Problem: PRQL files are not recognized. Solution: Add a filetype pattern for PRQL files. (Matthias Queitsch, closes #12018) Patch 9.0.1320 Problem: Checking the type of a null object causes a crash. Solution: Don't try to get the class of a null object. (closes #12005) Handle error from calling a user function better. Patch 9.0.1321 Problem: vimscript test fails where using {expr} syntax. Solution: Only return FCERR_FAILED in call_user_func() for Vim9 script. Patch 9.0.1322 Problem: Crash when indexing "any" which is an object. Solution: Check the index is a number. Do not check the member type of an object. (closes #12019) Patch 9.0.1323 Problem: Build failure with +eval feature. Solution: Add missing part for using funcerror_T. Patch 9.0.1324 Problem: "gj" and "gk" do not move correctly over a closed fold. Solution: Use the same code as used for "j"/"k" to go to the next/previous line. (Luuk van Baal, closes #12007) Patch 9.0.1325 Problem: 'colorcolumn' highlight wrong with virtual text above. Solution: Adjust column of 'colorcolumn' for text property. (closes #12004) Patch 9.0.1326 Problem: Relative line number not updated with virtual text above. Solution: Adjust the row for the line number for virtual text above. (closes #12004) Patch 9.0.1327 Problem: Cursor in wrong position below line with virtual text below ending in multi-byte character. Solution: When checking for last character take care of multi-byte character. Patch 9.0.1328 Problem: Error when using "none" for GUI color is confusing. Solution: Mention that the name should perhaps be "NONE". (closes #1400) Patch 9.0.1329 Problem: Completion of map includes simplified ones. Solution: Do not complete simplified mappings. (closes #12013) Patch 9.0.1330 Problem: Handling new value of an option has a long "else if" chain. Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015) Patch 9.0.1331 Problem: Illegal memory access when using :ball in Visual mode. Solution: Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923) Patch 9.0.1332 Problem: Crash when using buffer-local user command in cmdline window. (Karl Yngve Lervåg) Solution: Use the right buffer to find the user command. (closes #12030, closes #12029) Patch 9.0.1333 Problem: When redo'ing twice <ScriptCmd> may not get the script ID. Solution: When "last_used_map" map is not set use "last_used_sid". (closes #11930) Patch 9.0.1334 Problem: Using tt_member for the class leads to mistakes. Solution: Add a separate tt_class field. Patch 9.0.1335 Problem: No test for bad use of spaces in help files. Solution: Add checks for use of spaces in help files. Ignore intentional spaces. (Hirohito Higashi, closes #11952) Patch 9.0.1336 Problem: Functions without arguments are not always declared properly. Solution: Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031) Patch 9.0.1337 Problem: Yuck files are not recognized. Solution: Add a filetype pattern for yuck files. (Amaan Qureshi, closes #12033) Patch 9.0.1338 Problem: :defcompile and :disassemble can't find class method. (Ernie Rael) Solution: Make a class name and class.method name work. (closes #11984) Patch 9.0.1339 Problem: No test for :disassemble with class function. Solution: Add a test. Patch 9.0.1340 Problem: Coverity warns for using NULL pointer. Solution: Check that lhs_type is not NULL. Patch 9.0.1341 Problem: Build error with mzscheme but without GUI. Solution: Adjust #ifdefs. (Ken Takata, closes #12042) Also fix function argument. Patch 9.0.1342 Problem: MS-Windows: linking may fail with space in directory name. Solution: Add quotes. (closes #12050) Patch 9.0.1343 Problem: Check for OSC escape sequence doesn't work. Solution: Move square bracket to the right place. (Johan Mattsson, closes #12048) Patch 9.0.1344 Problem: Check for OSC escape sequence doesn't work. Solution: Fix typo in index. Patch 9.0.1345 Problem: Too many "else if" statements for handling options. Solution: Add more functions to handle options. (Yegappan Lakshmanan, closes #12051) Patch 9.0.1346 Problem: Starlark files are not recognized. Solution: Add patterns for Starlark files. (Amaan Qureshi, closes #12049) Patch 9.0.1347 Problem: "gr CTRL-O" stays in Insert mode. (Pierre Ganty) Solution: Do not set restart_edit when "cmdchar" is 'v'. (closes #12045) Patch 9.0.1348 Problem: Un-grammar files are not recognized. Solution: Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034) Patch 9.0.1349 Problem: "gr" with a count fails. Solution: Break out of the loop only after using the count. Patch 9.0.1350 Problem: CPON files are not recognized. Solution: Add patterns for CPON files. (Amaan Qureshi, closes #12053) Patch 9.0.1351 Problem: Dhall files are not recognized. Solution: Add patterns for Dhall files. (Amaan Qureshi, closes #12052) Patch 9.0.1352 Problem: "ignore" files are outdated. Solution: Update "ignore" files. (Ken Takata, closes #12056) Patch 9.0.1353 Problem: Too many "else if" statements to handle option values. Solution: Add more functions to handle option value changes. (Yegappan Lakshmanan, closes #12058) Patch 9.0.1354 Problem: "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty) Solution: Prepend CTRL-V before control characters. (closes #12045) Patch 9.0.1355 Problem: No error when declaring a class twice. (Ernie Rael) Solution: Pass different flags when declaring the class. (closes #12057) Patch 9.0.1356 Problem: Cannot cancel "gr" with Esc. Solution: Make "gr<Esc>" do nothing. (closes #12064) Patch 9.0.1357 Problem: Using null_object results in an internal error. (Ernie Rael) Solution: Add instructions for pushing an object and class. (closes #12044) Patch 9.0.1358 Problem: Compilation error with some compilers. Solution: Avoid using "class" as member name. Patch 9.0.1359 Problem: Too many "else if" statements in handling options. Solution: Add more functions for handling option changes. (Yegappan Lakshmanan, closes #12060) Patch 9.0.1360 Problem: Cue files are not recognized. Solution: Add patterns for Cue files. (Amaan Qureshi, closes #12067) Patch 9.0.1361 Problem: extendnew() not sufficiently tested. Solution: Add a few more test cases for extendnew(). (closes #12075) Patch 9.0.1362 Problem: ml_get error when going to another tab. (Daniel J. Perry) Solution: Do not call update_topline() if "curwin" is invalid. (closes #11907) Patch 9.0.1363 Problem: Crash when :def function has :break in skipped block. (Ernie Rael) Solution: Don't generate a jump for a skipped :break. (closes #12077) Patch 9.0.1364 Problem: Build error with older Mac OS. Solution: Adjust #ifdef. (Yee Cheng Chin, closes #12074) Patch 9.0.1365 Problem: Dead test code. Solution: Remove code that depends on Farsi, which has been removed. (closes #12084) Patch 9.0.1366 Problem: Functions for setting options are in random order. Solution: Sort functions alphabetically. (Yegappan Lakshmanan, closes #12082) Patch 9.0.1367 Problem: Divide by zero in zero-width window. Solution: Check the width is positive. Patch 9.0.1368 Problem: Bass files are not recognized. Solution: Add patterns for Bass files. (Amaan Qureshi, closes #12088) Patch 9.0.1369 Problem: Still some "else if" constructs for setting options. Solution: Add a few more functions for handling options. (Yegappan Lakshmanan, closes #12090) Patch 9.0.1370 Problem: Crash when using a NULL object. (Ernie Rael) Solution: Check for NULL and give an error message. (closes #12083) Patch 9.0.1371 Problem: Ballooneval interferes with Insert completion. Solution: Ignore mouse-move events when completing. (closes #12094, closes #12092) Patch 9.0.1372 Problem: Test for 'toolbariconsize' may fail. Solution: Only test 'toolbariconsize' when it is supported. (James McCoy, closes #12095) Patch 9.0.1373 Problem: Wrong text displayed when using both 'linebreak' and 'list'. Solution: Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito Higashi, closes #12065) Patch 9.0.1374 Problem: Function for setting options not used consistently. Solution: Use a function for 'encoding' and terminal options. (Yegappan Lakshmanan, closes #12099) Patch 9.0.1375 Problem: Crash when getting member of obj of unknown class. Solution: Check for NULL class and give an error message. (Ernie Rael, closes #12096) Patch 9.0.1376 Problem: Accessing invalid memory with put in Visual block mode. Solution: Adjust the cursor column if needed. Patch 9.0.1377 Problem: job_status() may return "dead" if the process parent changed. Solution: Call mch_process_running() to check if the job is still alive. Patch 9.0.1378 Problem: Illegal memory access when using virtual editing. Solution: Make sure "startspaces" is not negative. Patch 9.0.1379 Problem: Functions for handling options are not ordered. Solution: Put functions in alphabetical order. (Yegappan Lakshmanan, closes #12101) Patch 9.0.1380 Problem: CTRL-X on 2**64 subtracts two. (James McCoy) Solution: Correct computation for large number. (closes #12103) Patch 9.0.1381 Problem: ACCESS_ names have a conflict with on some systems. Solution: Rename by prepending VIM_. (Ola Söder, closes #12105) Patch 9.0.1382 Problem: Failing test for strptime() doesn't show returned value. Solution: Use assert_equal() instead of assert_true(). Patch 9.0.1383 Problem: xxd: combination of little endian and cols fails. (Aapo Rantalainen) Solution: Round up the space taken by the hex output. (closes #12097) Patch 9.0.1384 Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew version 4. Solution: Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008) Patch 9.0.1385 Problem: g'Esc is considered an error. Solution: Make g'Esc silently abandon the command. (closes #12110) Patch 9.0.1386 Problem: Options test fails with some window width. Solution: Adjust what text the test checks with. (closes #12111) Patch 9.0.1387 Problem: Scrollbar test sporadically fails. Solution: Mark the scrollbar test as flaky. (Christian Brabandt, closes #12113) Patch 9.0.1388 Problem: Amiga: not all builds use gethostname(). Solution: Use gethostname() for all builds except AROS. (Ola Söder, closes #12107) Patch 9.0.1389 Problem: Amiga: a couple of include files are included twice. Solution: Remove duplicate includes. (Ola Söder, closes #12106) Patch 9.0.1390 Problem: FOR_ALL_ macros are defined in an unexpected file. Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS. (Yegappan Lakshmanan, closes #12109) Patch 9.0.1391 Problem: "clear" macros are not always used. Solution: Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more places. (Yegappan Lakshmanan, closes #12104) Patch 9.0.1392 Problem: Using NULL pointer with nested :open command. Solution: Check that ccline.cmdbuff is not NULL. Patch 9.0.1393 Problem: Cairo files are not recognized. Solution: Add a pattern for Cairo files. (Amaan Qureshi, closes #12118) Patch 9.0.1394 Problem: Unx Tal files are not recognized. Solution: Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117) Patch 9.0.1395 Problem: Odin files are not recognized. Solution: Add a pattern for Odin files. (Amaan Qureshi, closes #12122) Patch 9.0.1396 Problem: sort(list, 'N') does not work in Vim9 script context. Solution: Convert string to number without giving an error. (closes #12061) Patch 9.0.1397 Problem: Highlight for popupmenu kind and extra cannot be set. Solution: Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel highlight groups and use them. (Gianmaria Bajo, closes #12114) Patch 9.0.1398 Problem: Profile test repeats the headers many times. Solution: Put the headers in script variables. Patch 9.0.1399 Problem: Highlight test script has a few problems. Solution: Rewrite the script in Vim9 syntax. (closes #10379) Patch 9.0.1400 Problem: find_file_in_path() is not reentrant. Solution: Instead of global variables pass pointers to the functions. (closes #12093) Patch 9.0.1401 Problem: Condition is always true. Solution: Remove the condition. (closes #12139) Patch 9.0.1402 Problem: Crash when using null_class. Solution: Give an error when trying to use a null class. Patch 9.0.1403 Problem: Unused variables and functions. Solution: Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145) Patch 9.0.1404 Problem: Compilation error with some compilers. Solution: Adjust array initialization. (John Marriott) Patch 9.0.1405 Problem: Missing check for out-of-memory. Solution: Check for alloc() returning NULL pointer. (closes #12149) Patch 9.0.1406 Problem: ILE RPG files are not recognized. Solution: Add patterns for ILE RPG files. (Andreas Louv, issue #12152) Patch 9.0.1407 Problem: TableGen files are not recognized. Solution: Add a pattern for TableGen files. (Amaan Qureshi, closes #12156) Patch 9.0.1408 Problem: QMLdir files are not recognized. Solution: Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161) Patch 9.0.1409 Problem: Racket files are recognized as scheme. Solution: Recognize rackets files separately. (Gabriel Kakizaki, closes #12164, closes #12162) Patch 9.0.1410 Problem: MacOS: sed fails on .po files. Solution: Set $LANG to "C". (Yee Cheng Chin, closes #12153) Patch 9.0.1411 Problem: Accuracy of profiling is not optimal. Solution: Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129) Patch 9.0.1412 Problem: Pony files are not recognized. Solution: Add a pattern for Pony files. (Amaan Qureshi, closes #12155) Patch 9.0.1413 Problem: Compiler warning for unused variable. Solution: Move variable declaration. (John Marriott) Patch 9.0.1414 Problem: <M-S-x> in Kitty does not use the Shift modifier. Solution: Apply the Shift modifier to ASCII letters. (closes #11913) Patch 9.0.1415 Problem: Crystal files are not recognized. Solution: Add a pattern for Crystal files. (Amaan Qureshi, closes #12175) Patch 9.0.1416 Problem: Crash when collection is modified when using filter(). Solution: Lock the list/dict/blob. (Ernie Rael, closes #12183) Patch 9.0.1417 Problem: ESDL files are not recognized. Solution: Add a pattern for ESDL files. (Amaan Qureshi, closes #12174) Patch 9.0.1418 Problem: The included xdiff code is a bit outdated. Solution: Sync with the latest git xdiff code. (Yee Cheng Chin, closes #12181) Patch 9.0.1419 Problem: Lean files are not recognized. Solution: Add a pattern for Lean files. (Amaan Qureshi, closes #12177) Patch 9.0.1420 Problem: Build failure because SIZE_MAX is not defined. Solution: Define SIZE_MAX when missing. (John Marriott) Patch 9.0.1421 Problem: Nu files are not recognized. Solution: Add a pattern for Nu files. (Amaan Qureshi, closes #12172) Patch 9.0.1422 Problem: Sage files are not recognized. Solution: Add a pattern for Sage files. (Amaan Qureshi, closes #12176) Patch 9.0.1423 Problem: WebAssembly Interface Type files are not recognized. Solution: Add a pattern for WIT files. (Amaan Qureshi, closes #12173) Patch 9.0.1424 Problem: Unused macros are defined. Solution: Remove the unused macros. Patch 9.0.1425 Problem: "wat" and "wast" files are one filetype. Solution: Add a separate filetype for "wat" files. (Amaan Qureshi, closes #12165) Patch 9.0.1426 Problem: Indent wrong after "export namespace" in C++. Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, closes #12134, closes #12133) Patch 9.0.1427 Problem: Warning for uninitialized variable. (Tony Mechelynck) Solution: Add #ifdef. Patch 9.0.1428 Problem: Cursor in wrong position when leaving insert mode. Solution: Update the w_valid flags. Position the cursor also when not redrawing. (closes #12137) Patch 9.0.1429 Problem: Invalid memory access when ending insert mode. Solution: Check if the insert_skip value is valid. Patch 9.0.1430 Problem: Livebook files are not recognized. Solution: Add a pattern for Livebook files. (Mathias Jean Johansen, closes #12203) Patch 9.0.1431 Problem: getscriptinfo() loops even when specific SID is given. Solution: Only loop when needed. Give a clearer error message. (closes #12207) Patch 9.0.1432 Problem: Completion popup in wrong position with virtual text "above". Solution: Adjust the column. (closes #12210) Patch 9.0.1433 Problem: On some systems the Lua library is not found. Solution: Check if a subdirectory for Lua exists. (closes #4475) Patch 9.0.1434 Problem: Crash when adding package already in 'runtimepath'. Solution: Change order for using 'runtimepath' entries. (closes #12215) Patch 9.0.1435 Problem: Scrolling too many lines when 'wrap' and 'diff' are set. Solution: Only scroll by screenlines for 'diff' when 'wrap' is not set. (closes #12211) Patch 9.0.1436 Problem: Cannot compare a typed variable with v:none. Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194) Patch 9.0.1437 Problem: Test fails with different error number. Solution: Adjust the expected error. Patch 9.0.1438 Problem: .fs files are falsely recognized as forth files. Solution: Check 100 lines for something that looks like forth. (Johan Kotlinski, closes #12219, closes #11988) Patch 9.0.1439 Problem: Start Insert mode when accessing a hidden prompt buffer. Solution: Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst, closes #12148, closes #12147) Patch 9.0.1440 Problem: "rvim" can execute a shell through :diffpatch. Solution: Disallow the shell "patch" command. Patch 9.0.1441 Problem: MacOS: Python 3 using framework do not set dll name properly. Solution: Use the framework prefix. (Yee Cheng Chin, closes #12189) Patch 9.0.1442 Problem: mapset() does not restore non-script context. Solution: Also accept negative sid. (closes #12132) Patch 9.0.1443 Problem: Ending Insert mode when accessing a hidden prompt buffer. Solution: Don't stop Insert mode when it was active before. (closes #12237) Patch 9.0.1444 Problem: Crash when passing NULL to setcmdline(). (Andreas Louv) Solution: Use tv_get_string() instead of using v_string directly. (closes #12231, closes #12227) Patch 9.0.1445 Problem: openSUSE: configure doesn't find the Motif library. (Tony Mechelynck) Solution: Also search in /usr/lib64. Patch 9.0.1446 Problem: Unnecessary checks for the "skip" flag when skipping. Solution: Remove the unnecessary checks. (closes #12254) Patch 9.0.1447 Problem: Condition is always true. Solution: Remove the useless condition. (closes #12253) Patch 9.0.1448 Problem: Diff test fails on MacOS 13. Solution: Install GNU diffutils. (Ozaki Kiichi, closes #12258) Patch 9.0.1449 Problem: Test for prompt buffer is flaky. Solution: Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi, closes #12247) Patch 9.0.1450 Problem: MacOS: building fails if clock_gettime() is not available. Solution: Add a configure check for clock_gettime(). (closes #12242) Patch 9.0.1451 Problem: Unnecessary redrawing when 'showcmdloc' is not "last". Solution: Redraw later when "showcmd_is_clear" is set. (Luuk van Baal, closes #12260) Patch 9.0.1452 Problem: Code using EVAL_CONSTANT is dead, it is never set. Solution: Remove EVAL_CONSTANT. (closes #12252) Patch 9.0.1453 Problem: Typos in source code and tests. Solution: Fix the typos. (Dominique Pellé, closes #12217) Patch 9.0.1454 Problem: Code indenting is confused by macros. Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi, closes #12257) Patch 9.0.1455 Problem: C++ 20 modules are not recognized. Solution: Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson, closes #12261) Patch 9.0.1456 Problem: Shortmess test depends on order of test execution. Solution: Clear messages. (closes #12264) Patch 9.0.1457 Problem: No regression test for what patch 9.0.1333 fixes. Solution: Extend existing test to cover the fixed problem. (issue #11930) Patch 9.0.1458 Problem: Buffer overflow when expanding long file name. Solution: Use a larger buffer and avoid overflowing it. (Yee Cheng Chin, closes #12201) Patch 9.0.1459 Problem: Typo in name of type. Solution: Change funccal_T to funccall_T. (closes #12265) Patch 9.0.1460 Problem: Insufficient testing for getcmdcompltype(). Solution: Add a few more test cases. (closes #12268) Patch 9.0.1461 Problem: Ruler not drawn correctly when using 'rulerformat'. Solution: Adjust formatting depending on whether the ruler is drawn in the statusline or the command line. (Sean Dewar, closes #12246) Patch 9.0.1462 Problem: Recursively calling :defer function if it does :qa. Solution: Clear the defer entry before calling the function. (closes #12266) Patch 9.0.1463 Problem: Virtual text truncation only works with Unicode 'encoding'. Solution: Convert the ellipsis character to 'encoding' if needed. (Hirohito Higashi, closes #12233) Patch 9.0.1464 Problem: Strace filetype detection is expensive. Solution: Match with a cheap pattern first. (Federico Mengozzi, closes #12220) Patch 9.0.1465 Problem: Haiku build fails. Solution: Do not include globals.h and proto.h twice. (Ozaki Kiichi, closes #12273) Patch 9.0.1466 Problem: Cannot use an object member name as a method argument. Solution: Do not give an error for using an object member name for a method argument. (Hirohito Higashi, closes #12241, closes #12225) Fix line number for other argument error. Patch 9.0.1467 Problem: Jenkinsfiles are not recognized as groovy. Solution: Add a pattern for Jenkinsfiles. (closes #12236) Patch 9.0.1468 Problem: Recursively calling :defer function if it does :qa in a compiled function. Solution: Clear the defer entry before calling the function. (closes #12271) Patch 9.0.1469 Problem: Deferred functions not called from autocommands. Solution: Also go through the funccal_stack. (closes #12267) Patch 9.0.1470 Problem: Deferred functions invoked in unexpected order when using :qa and autocommands. Solution: Call deferred functions for the current funccal before using the stack. (closes #12278) Patch 9.0.1471 Problem: Warnings for function declarations. Solution: Add argument types. (Michael Jarvis, closes #12277) Patch 9.0.1472 Problem: ":drop fname" may change the last used tab page. Solution: Restore the last used tab page when :drop has changed it. (closes #12087) Patch 9.0.1473 Problem: CI does not run sound tests. Solution: Re-enable sound tests. Use "apt-get" instead of "apt". (Ozaki Kiichi, closes #12280) Patch 9.0.1474 Problem: CI runs with old version of Ubuntu and tools. Solution: Update CI to more recent versions. (closes #11092) Patch 9.0.1475 Problem: Busted configuration files are not recognized. Solution: Recognize busted configuration files as Lua. (Craig MacEachern, closes #12209) Patch 9.0.1476 Problem: Lines put in non-current window are not displayed. (Marius Gedminas) Solution: Don't increment the topline when inserting just above it. (closes #12212) Patch 9.0.1477 Problem: Crash when recovering from corrupted swap file. Solution: Check for a valid page count. (closes #12275) Patch 9.0.1478 Problem: Filetypes for *.v files not detected properly. Solution: Use the file contents to detect the filetype. (Turiiya, closes #12281) Patch 9.0.1479 Problem: Small source file problems; outdated list of distributed files. Solution: Small updates to source files and list of distributed files. Patch 9.0.1480 Problem: Using popup menu may leave text in the command line. Solution: Clear the command line if the popup menu covered it. (Luuk van Baal, closes #12286) Patch 9.0.1481 Problem: Decrypting with libsodium may fail if the library changes. Solution: Add parameters used to the encrypted file header. (Christian Brabandt, closes #12279) Patch 9.0.1482 Problem: Crash when textprop has a very large "padding" value. (Yegappan Lakshmanan) Solution: Avoid the "after" count to go negative. Patch 9.0.1483 Problem: += operator does not work on class member. Solution: Do not skip as if "this." was used. (Christian Brabandt, closes #12263) Patch 9.0.1484 Problem: Coverity warns for using invalid array index. Solution: Add entry for Xchacha, even though it is not used. Patch 9.0.1485 Problem: no functions for converting from/to UTF-16 index. Solution: Add UTF-16 flag to existing functions and add strutf16len() and utf16idx(). (Yegappan Lakshmanan, closes #12216) Patch 9.0.1486 Problem: Parallel make might not work. Solution: Add missing dependencies. (Samuel Dionne-Riel, closes #12288) Patch 9.0.1487 Problem: Content-type header for LSP channel not according to spec. Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan Lakshmanan, closes #12295) Patch 9.0.1488 Problem: xchacha20v2 crypt header is platform dependent. Solution: Avoid using "size_t". (Ozaki Kiichi, closes #12296) Patch 9.0.1489 Problem: Crypt with libsodium is not tested on CI. Solution: Configure testing with libsodium. (Ozaki Kiichi, closes #12297) Patch 9.0.1490 Problem: The ModeChanged event may be triggered too often. Solution: Only trigger ModeChanged when no operator is pending. (closes #12298) Patch 9.0.1491 Problem: Wrong scrolling with ls=0 and :botright split. Solution: Add statusline before calling frame_new_height(). (closes #12299) Patch 9.0.1492 Problem: Using uninitialized memory when argument is missing. Solution: Check there are sufficient arguments before the base. (closes #12302) Patch 9.0.1493 Problem: Popup menu position wrong in window with toolbar. Solution: Take the window toolbar into account when positioning the popup menu. (closes #12308) Patch 9.0.1494 Problem: Crash when recovering from corrupted swap file. Solution: Bail out when the line index looks wrong. (closes #12276) Patch 9.0.1495 Problem: GTK3: hiding the mouse pointer does not work. (Rory O’Kane) Solution: Set alpha level to zero. (Kenny Stauffer, closes #12293, closes #3256) Patch 9.0.1496 Problem: Test restoring register with wrong value. Solution: Correct name of variable. (closes #12310) Patch 9.0.1497 Problem: The ruler percentage can't be localized. Solution: Use a string that can be translated. (Emir Sari, closes #12311) Patch 9.0.1498 Problem: In a terminal window the cursor may jump around. (Kenny Stauffer) Solution: Do not move the cursor to the position for terminal-normal mode. (closes #12312) Patch 9.0.1499 Problem: Using uninitialized memory with fuzzy matching. Solution: Initialize the arrays used to store match positions. Patch 9.0.1500 Problem: The falsy operator is not tested properly. Solution: Add a few more test cases. (closes #12319) Patch 9.0.1501 Problem: Crash with nested :try and :throw in catch block. Solution: Jump to :endtry before returning from function. (closes #12245) Patch 9.0.1502 Problem: No test for deleting the end of a long wrapped line. Solution: Add a test to check the right text is displayed. (Luuk van Baal, closes #12318) Patch 9.0.1503 Problem: Luau files are not recognized. Solution: Add a patter for Luau files. (Amaan Qureshi, closes #12317) Patch 9.0.1504 Problem: No error when calling remote_startserver() with an empty string. Solution: Give an error for an empty string. (Hirohito Higashi, closes #12327) Patch 9.0.1505 Problem: Error when heredoc content looks like heredoc. Solution: Handle curly expressions. (closes #12325) Patch 9.0.1506 Problem: Line number not displayed when using 'smoothscroll'. Solution: Adjust condition for showing the line number. (closes #12333) Patch 9.0.1507 Problem: Assert message is confusing with boolean result. assert_inrange() replaces message instead of adding it. Solution: Don't put quotes around expected boolean value. Append message for assert_inrange(). (closes #12342, closes #12341) Patch 9.0.1508 Problem: Catch does not work when lines are joined with a newline. Solution: Set "nextcmd" appropriately. (closes #12348) Patch 9.0.1509 Problem: Error message lacks mentioning the erroneous argument. Solution: Specify the argument that the error is for. Patch 9.0.1510 Problem: Misleading variable name for error message. Solution: Change "name" to "number". (closes #12345) Patch 9.0.1511 Problem: Crash when using wrong arg types to assert_match(). Solution: Check for NULL pointer. (closes #12349) Patch 9.0.1512 Problem: Inserting lines when scrolling with 'smoothscroll' set. Solution: Adjust line height computation for w_skipcol. (Luuk van Baal, closes #12350) Patch 9.0.1513 Problem: Text scrolls unnecessarily when splitting and 'splitkeep' is not "cursor". Solution: Avoid resetting w_skipcol. (Luuk van Baal, closes #12334) Patch 9.0.1514 Problem: Test waits unnecessarily long before checking screendump. Solution: Remove TermWait() call. Patch 9.0.1515 Problem: reverse() does not work for a String. Solution: Implement reverse() for a String. (Yegappan Lakshmanan, closes #12179) Patch 9.0.1516 Problem: Cannot use special keys in <Cmd> mapping. Solution: Do allow for special keys in <Cmd> and <ScriptCmd> mappings. (closes #12326) Patch 9.0.1517 Problem: MacOS: configure removes -O2 from $CFLAGS. Solution: Only adjust $CFLAGS for gcc. (closes #12351) Patch 9.0.1518 Problem: Search stats not always visible when searching backwards. Solution: Do not display the top/bot message on top of the search stats. (Christian Brabandt, closes #12322, closes #12222) Patch 9.0.1519 Problem: Global 'filetype' is set when it is detected from the file content. Solution: Set the local 'filetype' option value. Patch 9.0.1520 Problem: Completion for option name includes all bool options. Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when appropriate. Patch 9.0.1521 Problem: Failing redo of command with control characters. Solution: Use AppendToRedobuffLit() for colon commands. (closes #12354) Patch 9.0.1522 Problem: Some functions give two error messages. Solution: Do not give a second error message. (closes #12352) Patch 9.0.1523 Problem: Some error messages are not marked for translation. Solution: Surround the messages in _(). (closes #12356) Patch 9.0.1524 Problem: Passing -1 for bool is not always rejected. Solution: Check for error in a better way. (closes #12358) Patch 9.0.1525 Problem: 'smoothscroll' does not always work properly. Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van Baal, closes #12360, closes #12199, closes #12323) Patch 9.0.1526 Problem: Condition is always true. Solution: Remove unnecessary condition. (closes #12359) Patch 9.0.1527 Problem: Crash when using negative value for term_cols. Solution: Check for invalid term_cols value. (Kenta Sato, closes #12362) Patch 9.0.1528 Problem: Libsodium encryption is only used with "huge" features, even when manually enabled through configure. (Tony Mechelynck) Solution: Remove the condition on FEAT_HUGE. Patch 9.0.1529 Problem: Code style test doesn't check for space after "if". Solution: Add a test for space. Patch 9.0.1530 Problem: Cursor moves to wrong line when 'foldmethod' is "diff". (Rick Howe) Solution: Adjust logic for scrolling. (Luuk van Baal, closes #12364, closes #12218) Patch 9.0.1531 Problem: Crash when register contents ends up being invalid. Solution: Check "y_array" is not NULL. Patch 9.0.1532 Problem: Crash when expanding "~" in substitute causes very long text. Solution: Limit the text length to MAXCOL. Patch 9.0.1533 Problem: Test for 'smoothscroll' is ineffective. Solution: Change the order of testing "zb" and "zt". (Luuk van Baal, closes #12366) Patch 9.0.1534 Problem: Test for expanding "~" in substitute takes too long. Solution: Disable the test for now. Patch 9.0.1535 Problem: Test commented out in a wrong way. Solution: Use legacy script comment character. Patch 9.0.1536 Problem: CI: sound dummy stopped working. Solution: Temporarily stop using sound dummy. Patch 9.0.1537 Problem: Message for opening the cmdline window is not translated. Solution: Add gettext() and scan the defaults script for text to be translated. (closes #12371) Patch 9.0.1538 Problem: :wqall does not trigger ExitPre. (Bart Libert) Solution: Move preparations for :qall to a common function. (closes #12374) Patch 9.0.1539 Problem: Typst filetype is not recognized. Solution: Distinguish between sql and typst. (Gaetan Lepage, closes #12363) Patch 9.0.1540 Problem: reverse() on string doesn't work in compiled function. Solution: Accept string in argument type check. (Yegappan Lakshmanan, closes #12377) Patch 9.0.1541 Problem: CI: sound dummy is disabled. Solution: Make sound dummy work again. (closes #12380) Patch 9.0.1542 Problem: Line not fully displayed if it doesn't fit in the screen. Solution: Do not reset s_skipcol if not needed. (Luuk van Baal, closes #12376) Patch 9.0.1543 Problem: Display errors when making topline shorter and 'smoothscroll' is set. Solution: Reset w_skipcol when the topline becomes shorter than its current value. (Luuk van Baal, closes #12367) Patch 9.0.1544 Problem: Recent glibc marks sigset() as a deprecated. Solution: Use sigaction() in mch_signal() if possible. (Ozaki Kiichi, closes #12373) Patch 9.0.1545 Problem: Text not scrolled when cursor moved with "g0" and "h". Solution: Adjust w_skipcol when needed. (Luuk van Baal, closes #12387) Patch 9.0.1546 Problem: Some commands for opening a file don't use 'switchbuf'. Solution: Use 'switchbuf' for more commands. (Yegappan Lakshmanan, closes #12383, closes #12381) Patch 9.0.1547 Problem: Coveralls workflow on CI is commented out. Solution: Remove the Coveralls workflow. (closes #12389) Patch 9.0.1548 Problem: CI: check in sound-dummy module may throw an error. Solution: Check whether apt-cache can show the package description. (Christian Brabandt, closes #12390) Patch 9.0.1549 Problem: USD filetype is not recognized. Solution: Add patterns for USD filetype. (Colin Kennedy, closes #12370) Patch 9.0.1550 Problem: In cmdline window S-Tab does not select previous completion. (Maxim Kim) Solution: Add a mapping for S-Tab. (closes #12116) Patch 9.0.1551 Problem: Position of marker for 'smoothscroll' not computed correctly. Solution: Take 'list' and other options into account. (Luuk van Baal, closes #12393) Patch 9.0.1552 Problem: CI: sound-dummy module is not installed. Solution: Invert using the result of the condition. (closes #12394) Patch 9.0.1553 Problem: CI: using slightly outdated gcc version. Solution: Use "brew" to get a more recent gcc version. (closes #12391) Patch 9.0.1554 Problem: Code for handling 'switchbuf' is repeated. Solution: Add a function to handle 'switchbuf'. (Yegappan Lakshmanan, closes #12397) Patch 9.0.1555 Problem: setcharsearch() does not clear last searched char properly. Solution: Do not accept lastc_bytelen smaller than one. (closes #12398) Patch 9.0.1556 Problem: Vim9: error for missing "return" after "throw". Solution: Set had_return flag for "throw". (closes #12262) Patch 9.0.1557 Problem: Test failures for unreachable code. Solution: Add a test override to ignore unreachable code. Patch 9.0.1558 Problem: Wrong error for unreachable code after :throw. Solution: Adjust the error message. Patch 9.0.1559 Problem: Function argument types not always checked and using v:none may cause an error. Solution: Check argument types once the function type is known. Do not give an error for using v:none as an argument. (closes #12200) Patch 9.0.1560 Problem: Win32: When 'encoding' is set $PATH has duplicate entries. Solution: Only append the directory if it is not there yet. (Ken Takata, closes #12400, closes #12372) Patch 9.0.1561 Problem: Display wrong when moving cursor to above the top line and 'smoothscroll' is set. Solution: Call adjust_skipcol() in more places and make it work better. (Luuk van Baal, closes #12395) Patch 9.0.1562 Problem: Mixing package managers is not a good idea. Solution: Install gcc 13 with apt-get. (closes #12405) Patch 9.0.1563 Problem: GTK3: window manager resize hints are incomplete. Solution: Use NULL for second argument of gtk_window_set_geometry_hints(). (Kenny Stauffer closes #11055) Patch 9.0.1564 Problem: Display moves up and down with 'incsearch' and 'smoothscroll'. Solution: Do not check if w_skipcol changed. (Luuk van Baal, closes #12410, closes #12409) Patch 9.0.1565 Problem: Json lines files are not recognized. Solution: Add a pattern to detect "jsonl" files. (issue #7520) Patch 9.0.1566 Problem: Motif: GUI scrollbar test fails in 24 lines terminal. Solution: Skip the part of the test that fails for now. Patch 9.0.1567 Problem: Profiler calculation may be wrong on 32 bit builds. Solution: Use 64 bit variable if possible. (Isao Sato, closes #12412) Patch 9.0.1568 Problem: With 'smoothscroll' cursor may move below botline. Solution: Call redraw_later() if needed, Compute cursor row with adjusted condition. (Luuk van Baal, closes #12415) Patch 9.0.1569 Problem: Cannot use "this.member" in lambda in class method. Solution: Adjust check for reserved keyword. (Hirohito Higashi, closes #12416, closes #12076, closes #12336) Patch 9.0.1570 Problem: Some tests are slow. Solution: Make a few test cases faster. Patch 9.0.1571 Problem: RedrawingDisabled not used consistently. Solution: Avoid RedrawingDisabled going negative. Set RedrawingDisabled in win_split_ins(). (closes #11961) Patch 9.0.1572 Problem: Error messages are not translated. Solution: Add _(). Patch 9.0.1573 Problem: Error for function name has wrong line number. Solution: Set the line number before giving the error. Patch 9.0.1574 Problem: MS-Windows: list of translation input files incomplete. Solution: Move the list of files to a common file. (closes #12426) Patch 9.0.1575 Problem: "file N of M" message is not translated. Solution: Make argument count message translatable. (close #12429) Patch 9.0.1576 Problem: Users may not know what to do with an internal error. Solution: Add a translated message with instructions. Patch 9.0.1577 Problem: MS-Windows: context menu translations may be wrong. Solution: Set the encoding before using gettext(). (Ken Takata, closes #12441, closes #12431) Patch 9.0.1578 Problem: SpellCap highlight not always updated when needed. Solution: Handle updating line below closed fold and other situations where only part of the window is redrawn. (Luuk van Baal, closes #12428, closes #12420) Patch 9.0.1579 Problem: Some error messages are not translated. Solution: Add the N_() marker on messages. (closes #12427) Patch 9.0.1580 Problem: CI: indent test hangs on FreeBSD. Solution: Set 'nomore' when running the indent tests. (Ozaki Kiichi, closes #12446) Patch 9.0.1581 Problem: Translation does not work for plural argument. Solution: Use PLURAL_MSG() for errors and with xgettext. (closes #12443) Patch 9.0.1582 Problem: :stopinsert may not work in a popup close handler. (Ben Jackson) Solution: Restore stop_insert_mode when appropriate. (closes #12452, closes #12434) Patch 9.0.1583 Problem: Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott) Solution: Add 4th crypt method to block zero ID check. Avoid syncing a swap file before reading the file. (closes #12433) Patch 9.0.1584 Problem: Not all meson files are recognized. Solution: Add "meson.options". (Liam Beguin, closes #12444) Patch 9.0.1585 Problem: Weird use of static variables for spell checking. Solution: Move the variables to a structure and pass them from win_update() to win_line(). (Luuk van Baal, closes #12448) Patch 9.0.1586 Problem: Checking translations gives an error for using two messages with ngettext() that differ in "%" items. Solution: Adjust the check script to tolerate omitting one "%" item. Patch 9.0.1587 Problem: Corn config files are not recognized. Solution: Add a pattern for Corn config files. (Jake Stanger, closes #12449) Patch 9.0.1588 Problem: Incsearch not triggered when pasting clipboard register on the command line. Solution: Also set "literally" when using a clipboard register. (Ken Takata, closes #12460) Patch 9.0.1589 Problem: Filetype test contains too many special characters. Solution: Use Vim9 syntax for a few things. Patch 9.0.1590 Problem: Filetype test has trailing white space. Solution: Remove trailing white space. Patch 9.0.1591 Problem: Some "gomod" files are not recognized. Solution: Check for "go.mod" file name before checking out the contents. (Omar El Halabi, closes #12462) Patch 9.0.1592 Problem: Not all timer tests are marked as flaky. Solution: Set the flaky flag for all timer tests. (closes #12355) Patch 9.0.1593 Problem: MS-Windows: assert error when compiled with debug mode. Solution: Adjust arguments to setvbuf(). (Ken Takata, closes #12467) Patch 9.0.1594 Problem: Some internal error messages are translated. Solution: Consistently do not translate internal error messages. (closes #12459) Patch 9.0.1595 Problem: Line pointer becomes invalid when using spell checking. Solution: Call ml_get() at the right places. (Luuk van Baal, closes #12456) Patch 9.0.1596 Problem: :registers command does not work in sandbox. Solution: Add flag to the command. (closes #12473) Patch 9.0.1597 Problem: Cursor ends up below the window after a put. Solution: Mark w_crow and w_botline invalid when changing the cursor line. (closes #12465) Patch 9.0.1598 Problem: screenchar(), screenchars() and screenstring() do not work properly when 'encoding' is set to a double-byte encoding. Solution: Fix the way the bytes of the characters are obtained. (issue #12469) Patch 9.0.1599 Problem: Cursor not adjusted when near top or bottom of window and 'splitkeep' is not "cursor". Solution: Move boundary checks to outer cursor move functions, inner functions should only return valid cursor positions. (Luuk van Baal, closes #12480) Patch 9.0.1600 Problem: screenpos() does not take w_skipcol into account. Solution: Subtract w_skipcol from column. (closes #12486, closes #12476) Patch 9.0.1601 Problem: Filetype detection fails for *.conf file without comments. (Dmitrii Tcyganok) Solution: Use "conf" filetype as a fallback for an empty .conf file. (closes #12487, closes #12483) Patch 9.0.1602 Problem: Stray character is visible if 'smoothscroll' marker is displayed on top of a double-wide character. Solution: When overwriting a double-width character with the 'smoothscroll' marker clear the second half. (closes #12469) Patch 9.0.1603 Problem: Display wrong when scrolling multiple lines with 'smoothscroll' set. Solution: Redraw when w_skipcol changed. (closes #12477, closes #12468) Patch 9.0.1604 Problem: Errors from the codestyle test are a bit confusing. Solution: Use assert_report() with a clearer message. Avoid a warning for an existing swap file. Patch 9.0.1605 Problem: Crash when calling method on super in child constructor. (Israel Chauca Fuentes) Solution: Clear the type list. (Ernie Rael, closes #12489, closes #12471) Patch 9.0.1606 Problem: Using freed memory when 'foldcolumn' is set. Solution: Save extra pointer to free it later. (closes #12492) Patch 9.0.1607 Problem: screenpos() returns wrong row with diff filler lines. Solution: Only add filler lines when appropriate. Also don't add the 'smoothscroll' marker when w_skipcol is zero. (closes #12485, closes #12484) Patch 9.0.1608 Problem: update_topline() is called twice. Solution: Do not call update_topline() before curs_columns(). (Luuk van Baal, closes #12495) Patch 9.0.1609 Problem: Crash when an object indirectly references itself. Solution: Avoid clearing an object while it is already being cleared. (closes #12494) Patch 9.0.1610 Problem: Display is wrong when 'smoothscroll' is set and scrolling multiple lines. Solution: Redraw with UPD_NOT_VALID when "skipcol" is or was set. (closes #12490, closes #12468) Patch 9.0.1611 Problem: v:maxcol can be changed in a :for loop. Solution: Check for read-only loop variable. (closes #12470) Patch 9.0.1612 Problem: "skipcol" not reset when using multi-byte characters. Solution: Compare with w_virtcol instead of w_cursor.col. (closes #12457) Patch 9.0.1613 Problem: Some make output gets picked up by 'errorformat'. Solution: Ignore make output by default. (Gregory Anders, closes #12481) Patch 9.0.1614 Problem: strlen() called too often for :spellrepall. Solution: Store the result in a variable. (closes #12497) Patch 9.0.1615 Problem: URL shortcut files are not recognized. Solution: Add a pattern for URL shortcut files. (closes #12474) Patch 9.0.1616 Problem: Quickfix text field is truncated. Solution: Fix output of text field after pattern field in quickfix buffer. (Shane Harper, closes #12498) Patch 9.0.1617 Problem: charidx() and utf16idx() result is not consistent with byteidx(). Solution: When the index is equal to the length of the text return the length of the text instead of -1. (Yegappan Lakshmanan, closes #12503) Patch 9.0.1618 Problem: Trace32 files are not recognized. Solution: Add patterns for the t32 filetype. (Christoph Sax, closes #12505) Patch 9.0.1619 Problem: The focus gained/lost escape sequences cause trouble for a terminal where Vim does not expect them. Solution: Always recognize the codes for focus gained/lost. (closes #12499) Patch 9.0.1620 Problem: Nix files are not recognized from the hashbang line. Solution: Add a hashbang check. (issue #12507) Patch 9.0.1621 Problem: FILETYPE_FILE is defined to the same value multiple times. Same for a few similar macros. Solution: Define FILETYPE_FILE and others in feature.h only Patch 9.0.1622 Problem: Filetype name t32 is a bit obscure. Solution: Rename t32 to trace32. (Christoph Sax, closes #12512) Patch 9.0.1623 Problem: The program to filetype translation is not exported. Solution: Export Exe2filetype(). Patch 9.0.1624 Problem: Crash when calling object constructor from legacy script. (Israel Chauca Fuentes) Solution: Pass a pointer for "ufunc". (closes #12502) Patch 9.0.1625 Problem: "super" is not considered a reserved name. Solution: Add "super" to the list of reserved names. (closes #12515) Patch 9.0.1626 Problem: Visual area not shown when using 'showbreak' and start of line is not visible. (Jaehwang Jung) Solution: Adjust "fromcol" for the space taken by 'showbreak'. (closes #12514) Patch 9.0.1627 Problem: No generic mechanism to test syntax plugins. Solution: Add a syntax plugin test mechanism, using screendumps. Add a simple test for "c". Patch 9.0.1628 Problem: Syntax tests fail on FreeBSD. Solution: Pass the Vim executable path with VIMPROG. (Ken Takata, closes #12535) Adjust the paths. Patch 9.0.1629 Problem: Having utf16idx() rounding up is inconvenient. Solution: Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523) Patch 9.0.1630 Problem: "make clean" at the toplevel fails. Solution: Clean the indent and syntax directories in a sub-shell. (Ben Jackson, closes #12536, closes #12526) Patch 9.0.1631 Problem: Passing a wrong variable type to an option gives multiple errors. Solution: Bail out early on failure. (closes #12504) Patch 9.0.1632 Problem: Not all cabal config files are recognized. Solution: Add a couple of patterns. (Marcin Szamotulski, closes #12463) Patch 9.0.1633 Problem: Duplicate code for converting float to string. Solution: Use tv_get_string(). (closes #12521) Patch 9.0.1634 Problem: Message is cleared when removing mode message (Gary Johnson). Solution: Do not clear the command line after displaying a message. Patch 9.0.1635 Problem: Error message is cleared when removing mode message. Solution: Also reset flags when the message is further down. Patch 9.0.1636 Problem: Expanding a pattern interferes with command line completion. Solution: Set the file index only when appropriate. (closes #12519) Patch 9.0.1637 Problem: Compiler warning for uninitialized variable. Solution: Move the variable to an inner block and initialize it. (Christian Brabandt, closes #12549) Patch 9.0.1638 Problem: crypt tests hang and cause memory errors Solution: Move variable to start of function. Patch 9.0.1639 Problem: Build failure without the crypt feature. Solution: Adjust #ifdefs Patch 9.0.1640 Problem: Compiler warning for unused variables without the crypt feature. Solution: Adjust #ifdefs Patch 9.0.1641 Problem: The log file does not give information about window sizes. Solution: Add a few log messages about obtaining the window size. Patch 9.0.1642 Problem: Build failure with tiny features. Solution: Add #ifdef's. Patch 9.0.1643 Problem: Filetype detection fails if file name ends in many '~'. Solution: Strip multiple '~' at the same time. (closes #12553) Patch 9.0.1644 Problem: Not all filetype file name matches are tested. Solution: Add more file names to test with. (Jonas Strittmatter, closes #12569) Patch 9.0.1645 Problem: zserio files are not recognized. Solution: Add a pattern for zserio files. (Dominique Pellé, closes #12544) Patch 9.0.1646 Problem: CI: codecov may take a very long time to run. Solution: Add a timeout. (Philip Heiduck, closes #12559) Patch 9.0.1647 Problem: Insufficient testing for syntax plugins. Solution: Add shell file examples. (Charles Campbell) Create a messages file for easier debugging and reporting the test results. Patch 9.0.1648 Problem: Result of syntax tests is hard to see. Solution: List the failed tests. Patch 9.0.1649 Problem: Syntax test failure causes script to abort. Solution: Fix appending string to list. Patch 9.0.1650 Problem: MS-Windows: default 'viewdir' may include read-only directory. Solution: Use $HOME instead of $VIM for 'viewdir' default. (closes #12119) Patch 9.0.1651 Problem: Unclear why syntax test fails on Mac. Solution: Temporarily show the whole "messages" file. Patch 9.0.1652 Problem: Unclear why syntax test fails on Mac. Solution: Echo v:errors when it's not empty. Patch 9.0.1653 Problem: Amiga: default 'viewdir' may not work. Solution: Use "home:" instead of "$VIM". Add a test. (Christian Brabandt, closes #12576) Patch 9.0.1654 Problem: MS-Windows: test for default 'viewdir' fails. Solution: Escape the pattern. Patch 9.0.1655 Problem: Syntax test fails when Vim window is not tall enough. Solution: Make sure each terminal window is closed. Patch 9.0.1656 Problem: Syntax test fails when detected shell type differs. Solution: Avoid using "/bin/sh", it depends on the system. Add a check that the shell type detection is correct. Patch 9.0.1657 Problem: One more syntax test depends on the system. Solution: Use "dash" instead of "sh". Patch 9.0.1658 Problem: Autoload files for "zig" are not installed. Solution: Add install and uninstall rules in the makefile. (Christian Brabandt, closes #12577, closes #12567) Patch 9.0.1659 Problem: Termdebug: default highlight cleared when changing colorscheme. Solution: Use a ColorScheme autocommand. (Christian Brabandt, closes #12566, closes #12555) Patch 9.0.1660 Problem: Error for using matchfuzzy() in Vim9 script returning a list of dicts. Solution: Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan, closes #12574) Patch 9.0.1661 Problem: BUCK files are not recognized. Solution: Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564) Patch 9.0.1662 Problem: Crash when using a class member twice. (Christian J. Robinson) Solution: Make a copy of the value. Patch 9.0.1663 Problem: Termdebug on MS-Windows: some file names are not recognized. Solution: Do not always change \t and \n. (Christian Brabandt, closes #12565, closes #12560, closes #12550) Patch 9.0.1664 Problem: Divide by zero when scrolling with 'smoothscroll' set. Solution: Avoid using a negative width. (closes #12540, closes #12528) Patch 9.0.1665 Problem: Empty CmdlineEnter autocommand causes errors in Ex mode. Solution: Save and restore ex_pressedreturn. (Christian Brabandt, closes # 12581, closes #12578) Patch 9.0.1666 Problem: Compiler may warn for uninitialized variable. Solution: Initialize this_props_len. (Christian Brabandt, closes #12599) Patch 9.0.1667 Problem: Regression test doesn't fail when fix is reverted. Solution: Add "n" to 'cpoptions' instead of using :winsize. (closes #12587, issue #12528) Patch 9.0.1668 Problem: PEM files are not recognized. Solution: Add patterns to match PEM files. (closes #12582) Patch 9.0.1669 Problem: Crash syncing swapfile in new buffer when using sodium crypt. (James McCoy) Solution: Add checks for sodium encryption. (Christian Brabandt, closes #12591, closes #12585) Patch 9.0.1670 Problem: Resetting local option to global value is inconsistent. Solution: Handle "<" specifically for 'scrolloff' and 'sidescrolloff'. (closes #12594) Patch 9.0.1671 Problem: Termdebug: error with more than 99 breakpoints. Solution: Use a different sign for breakpoint 100 and over. (closes #12589, closes #12588) Patch 9.0.1672 Problem: Tabline highlight wrong after truncated double width label. Solution: Fill up half a double width character later. (closes #12614) Patch 9.0.1673 Problem: Cannot produce a status 418 or 503 message. Solution: Add err_teapot(). Patch 9.0.1674 Problem: Help for builtin functions is not sorted properly. Solution: Put err_teapot() help in the right position. Patch 9.0.1675 Problem: Test may run into timeout when using valgrind. Solution: Use a longer timeout when using valgrind. Patch 9.0.1676 Problem: Warning for buffer in use when exiting early. Solution: Change file names to be able to see what buffer is in use when exiting. Patch 9.0.1677 Problem: Typo in syntax test input file. Solution: Fix the typo and the expected dump files. (THARAK HEGDE, closes #12635) Patch 9.0.1678 Problem: Blade files are not recognized. Solution: Add a pattern for Blade files. (closes #12650) Patch 9.0.1679 Problem: Tests may leave leftover files around Solution: Clean up tests and remove files Patch 9.0.1680 Problem: sodium test fails in Github CI Solution: Catch sodium_mlock() errors and do not error out Patch 9.0.1681 Problem: Build Failure with Perl 5.38 Solution: Fix Build Failure Patch 9.0.1682 Problem: crypt: sodium encryption is not portable Solution: use little-endian byte order for sodium encrypted files Patch 9.0.1683 Problem: need runtime files updated Solution: merge various github PRs Patch 9.0.1684 Problem: libvterm slightly outdated Solution: Update libvterm from rev 818 to rev 839 Patch 9.0.1685 Problem: Python 3.11 interface throws deprecation warnings Solution: ignore those warnings for gcc and clang Patch 9.0.1686 Problem: undotree() only works for the current buffer Solution: Add an optional "buffer number" parameter to undotree(). If omitted, use the current buffer for backwards compatibility. Patch 9.0.1687 Problem: mapset() not properly handling script ID Solution: replace_termcodes() may accept a script ID Patch 9.0.1688 Problem: cannot store custom data in quickfix list Solution: add `user_data` field for the quickfix list Patch 9.0.1689 Problem: python 3.12 produces warnings and fails test Solution: Make use of raw strings in python3 tests Patch 9.0.1690 Problem: popup_create() not aborting on errors Solution: check for errors in arguments given and abort if an error occurred Patch 9.0.1691 Problem: wrong viewport restored for incsearch and smoothscroll Solution: Save and restore skipcol as well Patch 9.0.1692 Problem: Android not handling AI_V4MAPPED ai_flag Solution: don't set AI_V4MAPPED flag when on Android, since Android's getaddrinfo returns EAI_BADFLAGS if ai_flags contains it Patch 9.0.1693 Problem: Ctrl-Q not handled like Ctrl-V in replace mode Solution: Handle Ctrl-Q like Ctrl-V Patch 9.0.1694 Problem: wrong mapping applied when replaying a char search Solution: Store a NOP after the ESC Patch 9.0.1695 Problem: Crash with overlong textprop above Solution: Consider only positive padding Patch 9.0.1696 Problem: sodium_mlock may still fail in CI Solution: Catch E1230 in testscript and skip test Patch 9.0.1697 Problem: incsearch test not sufficient (after 9.0.1691) Solution: add an additional test Patch 9.0.1698 Problem: Test_map_restore_sid fails in GUI Solution: Feed an unsimplified Ctrl-B Patch 9.0.1699 Problem: compile warning for xdiff/xutils on MS-Windows Solution: add explicit type cast from size_t to long Patch 9.0.1700 Problem: Cannot compile with dynamic perl < 5.38 (after 9.0.1681) Solution: Fix if_perl/dyn from perl 5.32 to 5.38 Patch 9.0.1701 Problem: vim9 crash when class member overridden Solution: Use method_count field instead Patch 9.0.1702 Problem: Undo test is flaky. Solution: Apply filter and change time to "1 second ago" in both dumps. Patch 9.0.1703 Problem: Vim9 Calling a method in an extended class fails Solution: use method index directly Patch 9.0.1704 Problem: Cannot use positional arguments for printf() Solution: Support positional arguments in string formatting Patch 9.0.1705 Problem: cursor position wrong when clicking on an unprintable char Solution: Don't update prev_ptr when wlv.n_extra is not zero. Patch 9.0.1706 Problem: typos in the xxd manpage Solution: Fix typos and formatting Patch 9.0.1707 Problem: Cannot wrap around in popup_filter_menu() Solution: Allow to wrap around by default Patch 9.0.1708 Problem: getcompletion() fails for user-defined commands Solution: set context for completion function Patch 9.0.1709 Problem: dynamic build with python 3.12 breaks Solution: if_python3.c: Fix building dynamic Python3 interpreter Patch 9.0.1710 Problem: sidescrolloff and scrolloff options work slightly different than other global-local options Solution: Make it behave consistent for all global-local options Patch 9.0.1711 Problem: dead code in charset.c Solution: remove it Patch 9.0.1712 Problem: missing null check in object_clear() Solution: Add null check of cl Patch 9.0.1713 Problem: Github CI fails to load snd-dummy kernel module Solution: Make installation of linux-modules-extra optional Patch 9.0.1714 Problem: getcompletion() "cmdline" fails after :autocmd Solution: Use set_cmd_context() instead of set_one_cmd_context(). Patch 9.0.1715 Problem: duplicate test in message_test.c Solution: Remove duplicate test and make functions static Patch 9.0.1716 Problem: Windows build with python 3.12 and clang fails Solution: Remove the PyBool_Type function pointer for python 3.12 Patch 9.0.1717 Problem: virtcol2col returns last byte of a multi-byte char Solution: Make it return the first byte for a multi-byte char Patch 9.0.1718 Problem: dict-completion does not respect region Solution: respect selected region in dict completion Patch 9.0.1719 Problem: if_lua: crash for Lua functions invoked via Vim callbacks Solution: Use Lua registry rather than upvalues for udata cache Patch 9.0.1720 Problem: Vim9 class using wrong index for overridden method Solution: Use correct index for overridden method Patch 9.0.1721 Problem: Build failure on Windows with dynamic lua (after 9.0.1719) Solution: move definition further down in if_lua Patch 9.0.1722 Problem: wrong error messages when passing wrong types to count() Solution: fix it Patch 9.0.1723 Problem: Fix regression in {func} argument of reduce() Solution: pass function name as string again Patch 9.0.1724 Problem: vim9class constructor argument type checking bug Solution: fix it Patch 9.0.1725 Problem: Wrong cursor position when clicking after concealed text with 'virtualedit'. Solution: Store virtual columns in ScreenCols[] instead of text columns, and always use coladvance() when clicking. Patch 9.0.1726 Problem: incorrect heights in win_size_restore() Solution: avoid restoring incorrect heights in win_size_restore() Patch 9.0.1727 Problem: minor problems with the teapot() Solution: remove the null check, update documentation Patch 9.0.1728 Problem: missing winid argument for virtcol() Solution: Add a {winid} argument to virtcol() Patch 9.0.1729 Problem: screenpos() wrong result with w_skipcol and cpoptions+=n Solution: Use adjust_plines_for_skipcol() instead of subtracting w_skipcol. Patch 9.0.1730 Problem: passing multiple patterns to runtime not working Solution: prepend prefix to each argument separately Patch 9.0.1731 Problem: blockwise Visual highlight not working with virtual text Solution: Reset the correct variable at the end of virtual selection and Check for double-width char inside virtual text. Patch 9.0.1732 Problem: vimexpr: shadowing variable Solution: Rename local variable Patch 9.0.1733 Problem: CI: cannot cache linux-modules-extra Solution: Enable caching and reduce failed downloads Patch 9.0.1734 Problem: runtime completion fails for multiple args Solution: Make it work Patch 9.0.1735 Problem: Rename completion specific findex var Solution: Move "findex" static variable to xp_selected in expand_T Patch 9.0.1736 Problem: Github Actions times out after 20 minutes Solution: Increase the timeout to 25 minutes Patch 9.0.1737 Problem: Calling a base class method through an extended class fails Solution: Create lookup table for member index in the interface to to the member class implementing the interface Patch 9.0.1738 Problem: Duplicate code to reverse a string Solution: Move reverse_text() to strings.c and remove string_reverse(). Patch 9.0.1739 Problem: leftover files in libvterm Solution: Fix cleaning of libvterm directory Patch 9.0.1740 Problem: segfault when reading invalid viminfo file Solution: Check the expected type in the viminfo file Patch 9.0.1741 Problem: No type checking in interfaces Solution: Implement member type check in vim9 interfaces Patch 9.0.1742 Problem: Wrong curswant when clicking and the second cell of a double-width char. Solution: Don't copy virtcol of the first char to the second one. Patch 9.0.1743 Problem: Parameter of gui_gtk:gui_mch_browse incorrectly marked as UNUSED. Solution: Remove UNUSED flag. Patch 9.0.1744 Problem: Dead code in open_cmdwin() Solution: Remove it Patch 9.0.1745 Problem: Missing test coverage for blockwise Visual highlight with virtual that starts with a double-width char. Solution: Add a new virtual text to the test. Some other small fixes. Patch 9.0.1746 Problem: vim9class compile error for char/char_u conversion Solution: Correctly cast to (char *) Patch 9.0.1747 Problem: screenpos() may cause unnecessary redraw. Solution: Don't unnecessarily reset VALID_WROW flag. Patch 9.0.1748 Problem: CI: cannot label issues automatically Solution: Create CI labeler Patch 9.0.1749 Problem: Text property highlight doesn't override a sign highlight over a tab character Solution: Let text_property override tab highlighting Patch 9.0.1750 Problem: CI: fails because of changed error messages (after: 9.0.1741) Solution: Adjust expected error messages Patch 9.0.1751 Problem: CI: labeler configuration not found (after 9.0.1748) Solution: set configuration path Patch 9.0.1752 Problem: CI: Coveralls is no longer used Solution: Remove .coveralls.yml Patch 9.0.1753 Problem: can't move to last non-blank char Solution: Make g<end> behave like that Patch 9.0.1754 Problem: still ci breakage (after 9.0.1741) Solution: fix remaining issue Patch 9.0.1755 Problem: CI still fails with sodium mlock error Solution: catch mlock failure Patch 9.0.1756 Problem: failing cursorline sign test Solution: only reset char attr, if cursorline option is not set Patch 9.0.1757 Problem: ex_class() function is too long Solution: refactor it Patch 9.0.1758 Problem: vim9 no class identifiers in stack dumps Solution: Prefix class members in stack traces with the class name followed by a dot. Patch 9.0.1759 Problem: Visual highlight not working with cursor at end of screen line and 'showbreak'. Solution: Only update "vcol_prev" when drawing buffer text. Patch 9.0.1760 Problem: vim9 class problem with new() constructor Solution: Don't allow a return type for the new() class constructor. Patch 9.0.1761 Problem: g<kEnd> behaves different from g<end> Solution: Make g<kEnd> behave like g<End> Patch 9.0.1762 Problem: Not able to get the virtual text property Solution: Make prop_list() return virtual text and alignment Patch 9.0.1763 Problem: crash when passing invalid buffer to undotree() Solution: Use get_buf_arg() instead of tv_get_buf_from_arg(). Patch 9.0.1764 Problem: CI: label should not be set on all yml files Solution: only set it for specific yml files in .github Patch 9.0.1765 Problem: Error when cross-compiling Vim Solution: use AC_CHECK_SIZEOF to find sizeof(wchar_t) Patch 9.0.1766 Problem: Runtime: Missing QML support Solution: Add QML support to Vim Patch 9.0.1767 Problem: '.-' no allowed in highlight group names Solution: Allow dot and hyphen characters in highlight group names Patch 9.0.1768 Problem: Runtime: no support for bicep files Solution: Add filetype support for bicepparam Patch 9.0.1769 Problem: executable() ignoring symlinks on Windows Solution: resolve reparse points Patch 9.0.1770 Problem: lines disappear when modifying chars before virt text Solution: take virtual text property length into account Patch 9.0.1771 Problem: regex: combining chars in collections not handled Solution: Check for following combining characters for NFA and BT engine Patch 9.0.1772 Problem: Cursor is adjusted in window that did not change in size by 'splitkeep'. Solution: Only check that cursor position is valid in a window that has changed in size. Patch 9.0.1773 Problem: cannot distinguish Forth and Fortran *.f files Solution: Add Filetype detection Code Patch 9.0.1774 Problem: no support for custom cmdline completion Solution: Add new vimscript functions Patch 9.0.1775 Problem: Wrong comparison in vim9type.c Solution: Change condition to false Patch 9.0.1776 Problem: No support for stable Python 3 ABI Solution: Support Python 3 stable ABI Patch 9.0.1777 Problem: patch 9.0.1771 causes problems Solution: revert it Patch 9.0.1778 Problem: if_py_both: code-style issue Solution: add space Patch 9.0.1779 Problem: Need more state() tests Solution: Add a few more tests for operator pending mode and register yank command Patch 9.0.1780 Problem: Vim9 type not defined during object creation Solution: Define type during object creation and not during class definition, parse multi-line member initializers, fix lock initialization Patch 9.0.1781 Problem: Problems when setting bin/paste option Solution: When setting binary/paste, remember that this also affects depending options, so that :verbose set returns the right location. Patch 9.0.1782 Problem: prop_list() does not return text_padding_left Solution: Store and return the text_padding_left value for text properties Patch 9.0.1783 Problem: Wrong display with wrapping virtual text or unprintable chars, 'showbreak' and 'smoothscroll'. Solution: Don't skip cells taken by 'showbreak' in screen lines before "w_skipcol". Combined "n_skip" and "skip_cells". Patch 9.0.1784 Problem: redundant else in pum_set_selected() Solution: Remove it Patch 9.0.1785 Problem: wrong cursor position with 'showbreak' and lcs-eol Solution: Add size of 'showbreak' before when 'listchars' "eol" is used. Also fix wrong cursor position with wrapping virtual text on empty line and 'showbreak'. Patch 9.0.1786 Problem: Vim9: need instanceof() function Solution: Implement instanceof() builtin Patch 9.0.1787 Problem: Cannot build with latest luajit Solution: adjust sed regexp and don't expect '-' in version output Patch 9.0.1788 Problem: C4090 warnings in strings.c Solution: Add type casts Patch 9.0.1789 Problem: too early declaration of variable in pum_set_selected() Solution: Move declaration to where it is actually used Patch 9.0.1790 Problem: The Content-Type header is an optional header that some LSP servers struggle with and may crash when encountering it. Solution: Drop the Content-Type header from all messages, because we use the default value anyway. Patch 9.0.1791 Problem: No tests for the Termdebug plugin Solution: Add some simple tests for the Termdebug plugin Patch 9.0.1792 Problem: Normal mode "gM", "gj", "gk" commands behave incorrectly with virtual text. Solution: Use linetabsize() instead of linetabsize_str(). Patch 9.0.1793 Problem: obsolete macros in configure script Solution: Remove those and start moving to autoconf 2.71 Patch 9.0.1794 Problem: autoconf: not correctly detecting include dirs Solution: make use of python3 to generate includedirs Patch 9.0.1795 Problem: Indentation issues Solution: Fix code indentation issues. Patch 9.0.1796 Problem: Vim9 problems with null_objects Solution: Vim9 improve null_object usage Patch 9.0.1797 Problem: Vimball/Visual Basic filetype detection conflict Solution: runtime(vb): Improve Vimball and Visual Basic detection logic Patch 9.0.1798 Problem: The 'syntax' option has no completion. Solution: Add syntax option completion. Patch 9.0.1799 Problem: Russian menu translation can be improved Solution: update the Russian menu files Patch 9.0.1800 Problem: Cursor position still wrong with 'showbreak' and virtual text after last character or 'listchars' "eol". Solution: Remove unnecessary w_wcol adjustment in curs_columns(). Also fix first char of virtual text not shown at the start of a screen line. Patch 9.0.1801 Problem: Vim9 instanceof() fails in a def func Solution: allow Objects in compile time check Patch 9.0.1802 Problem: Multiline regex with Visual selection fails when Visual selection contains virtual text after last char. Solution: Only include virtual text after last char when getting full line length. Patch 9.0.1803 Problem: Cannot detect norg markup files Solution: Add norg markup language detection Patch 9.0.1804 Problem: Vim9: no support for private object methods Solution: Add support for private object/class methods Patch 9.0.1805 Problem: Vim9: problem compiling object method as function call arg Solution: After a object/class method call, remove the object/class from the stack. Patch 9.0.1806 Problem: Vim9: bogus error on export Solution: Don't error out when the export command is not executed Patch 9.0.1807 Problem: runtime: crystal scripts not recognised Solution: Filetype detect Crystal scripts by shebang line Patch 9.0.1808 Problem: Termdebug: Typo in Termdebug test Solution: fix the typos Patch 9.0.1809 Problem: Termdebug test flaky Solution: wait slightly longer Patch 9.0.1810 Problem: camel-case spelling has issues with digits Solution: Improve the camCase spell checking by taking digits and caps into account Patch 9.0.1811 Problem: still some issues with term_debug test Solution: Use WaitForAssert() Patch 9.0.1812 Problem: CI still fails with sodium_mlock error() Solution: Catch and ignore E1230 error in test_crypt Patch 9.0.1813 Problem: 'linebreak' is incorrectly drawn after 'breakindent'. Solution: Don't include 'breakindent' size when already after it. Patch 9.0.1814 Problem: Vim9 no error on duplicate object member var Solution: detect duplicate members and error out Patch 9.0.1815 Problem: pango_coverage_unref() deprecated in pango > 1.51 Solution: use g_object_unref() instead Patch 9.0.1816 Problem: configure: sed uses non-portable regex Solution: use '*' modifier instead of '\?' in regex for luajit version detection Patch 9.0.1817 Problem: configure: using obsolete AC_HEADER_STDC Solution: Remove it and re-create configure Patch 9.0.1818 Problem: dynamically linking perl is broken Solution: Fix all issues Patch 9.0.1819 Problem: Github CI too complex Solution: CI: Tidy up matrix Patch 9.0.1820 Problem: Rexx files may not be recognised Solution: Add shebang detection and improve disambiguation of *.cls files Patch 9.0.1821 Problem: Vim9 constructors are always static Solution: make the "static" keyword an error Patch 9.0.1822 Problem: Vim9: no check for duplicate members in extended classes Solution: Check for duplicate members in extended classes. Fix memory leak. Patch 9.0.1823 Problem: Autoconf 2.69 too old Solution: Migrate to Autoconf 2.71 Patch 9.0.1824 Problem: Vim9: private members may be modifiable Solution: prevent modification for def function Patch 9.0.1825 Problem: Wrong cursor position with virtual text before a whitespace character and 'linebreak'. Solution: Always set "col_adj" to "size - 1" and apply 'linebreak' after adding the size of 'breakindent' and 'showbreak'. Patch 9.0.1826 Problem: keytrans() doesn't translate recorded key typed in a GUI Solution: Handle CSI like K_SPECIAL, like in mb_unescape() Patch 9.0.1827 Problem: xxd: no color support Solution: Add color support using xxd -R Patch 9.0.1828 Problem: Wrong cursor position with virtual text before double-width char at window edge. Solution: Check for double-width char before adding virtual text size. Patch 9.0.1829 Problem: Vim9 missing access-checks for private vars Solution: Use the proper check for private/readonly variable. Access level for a member cannot be changed in a class implementing an interface. Update the code indentation Patch 9.0.1830 Problem: Vim9: crash when accessing a null object Solution: Check accessing a NULL object in def function Patch 9.0.1831 Problem: Vim9: failing null test Solution: Use required public keyword Patch 9.0.1832 Problem: xxd: reporting wrong version (after 9.0.1827) Solution: Update version string Patch 9.0.1833 Problem: runtime files may execute code in current dir Solution: only execute, if not run from current directory Patch 9.0.1834 Problem: Some problems with xxd coloring Solution: Fix the following problems: Patch 9.0.1835 Problem: Perl interface has problems with load PL_current_context Solution: Fix Perl interface to load PL_current_context from library Patch 9.0.1836 Problem: Wrong display with "above" virtual text and 'linebreak' or 'breakindent' and 'showbreak'. Solution: Exclude size of "above" virtual text when calculating them. Patch 9.0.1837 Problem: Vim9: class_member_type() can be optimized Solution: class_member_type() provides more information; safe an additional alloc()/free() Patch 9.0.1838 Problem: Vim9: Cannot modify class member vars from def function Solution: Add support for modifying class member variables from a def function Patch 9.0.1839 Problem: No Makefile rule to build cscope database Solution: Add rule Patch 9.0.1840 Problem: use-after-free in do_ecmd Solution: Verify oldwin pointer after reset_VIsual() Patch 9.0.1841 Problem: style: trailing whitespace in ex_cmds.c Solution: remove it Patch 9.0.1842 Problem: Need more accurate profiling Solution: Improve profiling results Patch 9.0.1843 Problem: xxd color test flaky Solution: Filter unneeded lines Patch 9.0.1844 Problem: doc helptags may not be up to date Solution: Add CI jobs to verify helptags are updated Patch 9.0.1845 Problem: xxd: Test_xxd_color start failing Solution: Revert changes to dump file Patch 9.0.1846 Problem: crash in fullcommand Solution: Check for typeval correctly Patch 9.0.1847 Problem: potential oob write in do_addsub() Solution: don't overflow buf2, check size in for loop() Patch 9.0.1848 Problem: buffer-overflow in vim_regsub_both() Solution: Check remaining space Patch 9.0.1849 Problem: CI error on different signedness Solution: cast unsigned to int Patch 9.0.1850 Problem: Vim9: wrong line number where options set Solution: Set source line number earlier Patch 9.0.1851 Problem: Virtual text at a column causes 'breakindent' and 'showbreak' to be missing (after patch 9.0.1124). Solution: Add check for "tp_col" in another place where TP_FLAG_WRAP is checked. Patch 9.0.1852 Problem: i_CTRL-O does not reset Select Mode Solution: Reset select mode on CTRL-O in insert mode Patch 9.0.1853 Problem: CI error on different signedness in regexp.c (after patch 9.0.1848) Solution: Cast strlen() call to int Patch 9.0.1854 Problem: test_crash1() fails on CI Solution: don't run Screendump test, verify that it doesn't crash by running it through a shell command line, testing the exit value and concatenating success cmd using '&&' Patch 9.0.1855 Problem: mode() doesn't indicate command line for terminal Solution: make it return 'ct' for command-line from Terminal mode Patch 9.0.1856 Problem: issues with formatting positional arguments Solution: fix them, add tests and documentation Patch 9.0.1857 Problem: heap-use-after-free in is_qf_win() Solution: Check buffer is valid before accessing it Patch 9.0.1858 Problem: heap use after free in ins_compl_get_exp() Solution: validate buffer before accessing it Patch 9.0.1859 Problem: heap-use-after-free in bt_normal() Solution: check that buffer is still valid Patch 9.0.1860 Problem: CI: test_crash1() is flaky Solution: Wait a bit longer Patch 9.0.1861 Problem: xxd: issue when -R is specified several times Solution: Fix command line parsing Patch 9.0.1862 Problem: Vim9 Garbage Collection issues Solution: Class members are garbage collected early leading to use-after-free problems. Handle the garbage collection of classes properly. Patch 9.0.1863 Problem: wrong format specifiers in e_aptypes_is_null_str_nr Solution: Fix the wrong format specifier Patch 9.0.1864 Problem: crash with bt_quickfix1_poc when cleaning up and EXITFREE is defined Solution: Test if buffer is valid in a window, else close window directly, don't try to access buffer properties Patch 9.0.1865 Problem: Vim9: garbage collection may cause crash Solution: validate that class members typeval is not null Patch 9.0.1866 Problem: Undo is synced after character find. Solution: Set no_u_sync when calling gotchars_nop(). Patch 9.0.1867 Problem: Vim9: access to interface statics possible Solution: Prevent direct access to interface statics Patch 9.0.1868 Problem: test_crash still fails for circle ci Solution: give even more time to complete Patch 9.0.1869 Problem: Coverity warns about uninitialized var Solution: initialize it Patch 9.0.1870 Problem: Vim9: disassemble does not show static Solution: Show static flag Patch 9.0.1871 Problem: Github CI does not run i386 job Solution: Add a i386 architecture Patch 9.0.1872 Problem: CI: test_crash() fails on CI Solution: Skip test on BSD Patch 9.0.1873 Problem: heap-buffer-overflow in vim_regsub_both Solution: Disallow exchanging windows when textlock is active Patch 9.0.1874 Problem: CI may fail in test_recover_empty_swap Solution: Set directory option Patch 9.0.1875 Problem: Vim9: improve test for disassemble + static Solution: Add a Vim9 script disassemble test for an interface with static members Patch 9.0.1876 Problem: Vim9: parsing commands with newlines wrong Solution: Accept a '\n' for parsing lists and command arguments Patch 9.0.1877 Problem: missing test for patch 9.0.1873 Solution: add a test trying to exchange windows Patch 9.0.1878 Problem: tests running sh have problems Solution: Check that dash is installed Patch 9.0.1879 Problem: Vim9: incorrect duplicate class member detection Solution: Incorrect duplicate class member detection when variable names have the same prefix. Not able to access class member variables using an object. Fix coding style issues Patch 9.0.1880 Problem: Vim9: Need more tests for inheritance Solution: Add access tests and fixes. Patch 9.0.1881 Problem: Test_crash fails on Mac Solution: Skip test on Mac Patch 9.0.1882 Problem: Trailing white space in tests Solution: Delete it Patch 9.0.1883 Problem: Vim9: Calling an interface method using a child object fails Solution: Search methods of parent class Patch 9.0.1884 Problem: Wrong order of arguments for error messages Solution: Reverse order or arguments for e_aptypes_is_null_nr_str Patch 9.0.1885 Problem: Vim9: no support for abstract methods Solution: Add support for defining abstract methods in an abstract class Patch 9.0.1886 Problem: Various Typos Solution: Fix Typos Patch 9.0.1887 Problem: Vim9: class members are accessible via object Solution: Disable class member variable access using an object Patch 9.0.1888 Problem: Vim9: Problem trying to invoke class method Solution: Lookup the class method insider other classes Patch 9.0.1889 Problem: Vim9 static tests fail Solution: Fix tests, make CI happy ;) Patch 9.0.1890 Problem: Vim9: lookup code for class/object repeated Solution: Refactor and make use of lookup functions Patch 9.0.1891 Problem: No runtime support for Mojo Solution: Add basic filetype and syntax plugins Patch 9.0.1892 Problem: CI: no FreeBSD 14 support Solution: Drop support for FreeBSD 12, add FreeBSD 14 Patch 9.0.1893 Problem: CI: strptime test fails on BSD14 Solution: Skip the test Patch 9.0.1894 Problem: CI: trailing white space in tests Solution: clean up the trailing white space Patch 9.0.1895 Problem: Vim9: finding method/member is inefficient Solution: Use lookups Patch 9.0.1896 Problem: "below" virtual text doesn't work with 'rightleft'. Solution: Use column from right border with 'rightleft'. Patch 9.0.1897 Problem: Vim9: confusing error with .= in compiled functions Solution: Check in error condition, if .= was attempted and in that case give a different error message. Patch 9.0.1898 Problem: Vim9: restrict access to static vars and methods Solution: Class members are accessible only from the class where they are defined. Patch 9.0.1899 Problem: potential buffer overflow in PBYTE macro Solution: Check returned memline length Patch 9.0.1900 Problem: Configure script uses non-portable == comparison Solution: Use the standard and portable "=" instead Patch 9.0.1901 Problem: win32: not correctly freeing environment Solution: After we call GetEnvironmentStringsW, we should call FreeEnvironmentStringsW Patch 9.0.1902 Problem: Vim9: Coverity complains about dead code Solution: Copy only object methods from the super class to a subclass when extending a class. Fix Coverity warning. Patch 9.0.1903 Problem: Github Actions fails because snd-dummy modules missing in current runner images Solution: ignore modprobe error Patch 9.0.1904 Problem: Cirrus-CI fails because we have used all credits Solution: Remove FreeBSD 13.1 and MacOS M1 Patch 9.0.1905 Problem: FEAT_FLOAT no longer defined Solution: Remove last existing FEAT_FLOAT ifdefs in message_test Patch 9.0.1906 Problem: Vim9: Interfaces should not support class methods and variables Solution: Make sure interface follow the interface specification Patch 9.0.1907 Problem: No support for liquidsoap filetypes Solution: Add liquidsoap filetype detection code Patch 9.0.1908 Problem: undefined behaviour upper/lower function ptrs Solution: Fix UBSAN error in regexp and simplify upper/lowercase modifier code Patch 9.0.1909 Problem: Vim9: problem calling class method from other class Solution: Fix this problem, fix readonly object access, update error messages. Patch 9.0.1910 Problem: Mac OS X: missing sound support on older versions Solution: Check Macro MAC_OS_X_VERSION_MIN_REQUIRED Patch 9.0.1911 Problem: Vim9: segfault with null object and instanceof() Solution: return early Patch 9.0.1912 Problem: Cirrus-CI running out of credits Solution: disable Cirrus-CI for now Patch 9.0.1913 Problem: if_python: undefined behaviour for function pointers Solution: Fix if_python undefined behavior for function pointer casts Patch 9.0.1914 Problem: Vim9: few issues when accessing object members Solution: When calling an object method, check for null object. Accessing a Dict object member doesn't work. Patch 9.0.1915 Problem: r_CTRL-C works differently in visual mode Solution: Make r_CTRL-C behave consistent in visual mode in terminal and Windows GUI Patch 9.0.1916 Problem: Crash when allocating large terminal screen Solution: Don't allow values > 1000 for terminal screen columns and rows Patch 9.0.1917 Problem: undefined behaviour with python function pointer Solution: correctly cast function pointers from void Patch 9.0.1918 Problem: No filetype detection for Authzed filetypes Solution: Detect the *.zed file extension as authzed filetype Patch 9.0.1919 Problem: Wrong curswant when clicking on empty line or with vsplits. Solution: Don't check for ScreenCols[] before the start of the window and handle empty line properly. Patch 9.0.1920 Problem: Vim9: cannot write public var in nested object Solution: Write variable in nested read-only object reference. Also test write fails. Patch 9.0.1921 Problem: not possible to use the jumplist like a stack Solution: Add the 'jumpoptions' setting to make the jumplist a stack. Patch 9.0.1922 Problem: LSP server request message is misinterpreted as a response message Solution: Check that the message does not have the "message" field Patch 9.0.1923 Problem: curswant wrong on click with 've' and 'wrap' set Solution: Add w_leftcol to mouse click column. Patch 9.0.1924 Problem: LSP server message still wrongly handled (after 9.0.1922) Solution: Handle 'method' messages properly, don't discard them, add tests. Patch 9.0.1925 Problem: if_python: still undefined behaviour with function pointer Solution: fix remaining problems Patch 9.0.1926 Problem: Vim9: not enough info in error message Solution: Add class name, change member to variable, quote names Patch 9.0.1927 Problem: patch 1916 (fixed terminal size) not optimal Solution: Add defines to make it easier changeable later Patch 9.0.1928 Problem: Vim9: constructor type checking bug Solution: Fix class constructor regression Patch 9.0.1929 Problem: runtime tests fail with tiny vim Solution: check for tiny vim, run runtime tests in CI even for tiny version Patch 9.0.1930 Problem: compiler warnings with clang-17 Solution: Fix function prototypes and function pointer Patch 9.0.1931 Problem: make test_compilers fails on ubuntu Solution: set LC_ALL=C Patch 9.0.1932 Problem: Vim9: error when using null object constructor Solution: Check for a null object only when calling an object method Patch 9.0.1933 Problem: Can change the type of a v: variable using if_lua. Solution: Add additional handling of v: variables like :let. Patch 9.0.1934 Problem: bwipe fails after switching window from aucmd_win. Solution: Decrement b_nwindows after switching back to aucmd_win. Patch 9.0.1935 Problem: Vim9: not consistent error messages Solution: Make error messages more consistent. Use "variable" for (object/class) member Patch 9.0.1936 Problem: test: using wrong expected message in test_crypt Solution: make use of single quotes Patch 9.0.1937 Problem: missing test for mouse click + 'virtedit' Solution: Add test for clicking after eol with 'virtualedit' and wrapped line Patch 9.0.1938 Problem: multispace wrong when scrolling horizontally Solution: Update position in "multispace" or "leadmultispace" also in skipped chars. Reorder conditions to be more consistent. Patch 9.0.1939 Problem: still a problem when processing LSP RPC requests Solution: When processing async LSP RPC requests, compare sequence numbers only in response messages Patch 9.0.1940 Problem: wrong upstream version in libvterm README Solution: correct version to 839 Patch 9.0.1941 Problem: Memory leak detected (after 9.0.1928) Solution: Free arg_objm in get_lambda_tv() Patch 9.0.1942 Problem: Vim9: execution stack invalidated with null object Solution: Check for a null object before adjusting the execution stack Patch 9.0.1943 Problem: CI not run with clang-17 Solution: Update CI to use clang-17 Patch 9.0.1944 Problem: Vim9: function instruction pointer invalidated Solution: Use the funcref index instead of the instruction pointer Patch 9.0.1945 Problem: Vim9: missing support for ro-vars in interface Solution: Support only read-only object variables in an interface, add additional checks when parsing class definitions. Patch 9.0.1946 Problem: filename expansion using ** in bash may fail Solution: Try to enable the globstar setting Patch 9.0.1947 Problem: Bash Expansion test fails on Windows/MacOS Solution: Disable Test_glob_extended_bash for now Patch 9.0.1948 Problem: Vim9: object variable "this." should only be used in constructor Solution: Disallow to this in normal object methods (other than constructors) Patch 9.0.1949 Problem: Vim9: allows reserved keywords as members Solution: Disallow reserved keywords, disallow duplicate object and class variables Patch 9.0.1950 Problem: Vim9: error codes spread out Solution: group them together and reserve 100 more for future use Patch 9.0.1951 Problem: Vim9: hard to debug vim9_class errors from CI Solution: Include the line number in assert_xxx() calls. Include the entire error message in the tests. Fix the indentation in the test file. Add tags for new error codes. Patch 9.0.1952 Problem: Vim9: unused static field Solution: remove it and simplify code Patch 9.0.1953 Problem: Misplaced comment in errors.h Solution: Move it up Patch 9.0.1954 Problem: CI: change netrw label in labeller bot Solution: Rename it to 'plugin-netrw' Patch 9.0.1955 Problem: Vim9: lockvar issues with objects/classes Solution: fix `get_lhs()` object/class access and avoid `SEGV`, make error messages more accurate. Patch 9.0.1956 Problem: Custom cmdline completion skips original cmdline when pressing Ctrl-P at first match if completion function invokes glob(). Solution: Move orig_save into struct expand_T. Patch 9.0.1957 Problem: termcap options should change on keyprotocol setting Solution: Apply termcap entries when 'keyprotocol' changes Patch 9.0.1958 Problem: cannot complete option values Solution: Add completion functions for several options Patch 9.0.1959 Problem: Vim9: methods parameters and types are covariant Solution: Support contra-variant type check for object method arguments (similar to Dart). Patch 9.0.1960 Problem: Make CI checks more strict Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, fix uncovered problems Patch 9.0.1961 Problem: Cmdline completion for 'listchars' fields doesn't include "multispace" and "leadmultispace" (after 9.0.1958). Solution: Include "multispace" and "leadmultispace" in lcstab. Patch 9.0.1962 Problem: No support for writing extended attributes Solution: Add extended attribute support for linux Patch 9.0.1963 Problem: Configure script may not detect xattr correctly Solution: include sys/xattr instead of attr/xattr, make Test_write_with_xattr_support() test xattr feature correctly Patch 9.0.1964 Problem: xattr support fails to build on MacOS X Solution: Disable xattr support for MacOS X Patch 9.0.1965 Problem: wrong auto/configure script Solution: regenerate with autoconf 2.71 Patch 9.0.1966 Problem: configure prints stray 6 when checking libruby Solution: redirect stdout to dev/null Patch 9.0.1967 Problem: xattr errors not translated Solution: mark for translation, consistently capitalize first letter. Patch 9.0.1968 Problem: cmdline completion should consider key option Solution: Disable cmdline completion for key option, slightly refactor how P_NO_CMD_EXPAND is handled Patch 9.0.1969 Problem: buffer-overflow in trunc_string() Solution: Add NULL at end of buffer Patch 9.0.1970 Problem: win32: high-dpi support can be improved Solution: implement WM_GETDPISCALEDSIZE Patch 9.0.1971 Problem: macOS: FEAT_SOUND guard too restrictive Solution: check for older macOS support properly Patch 9.0.1972 Problem: win32: missing '**' expansion test (after v9.0.1947) Solution: Add test for MS-Windows Patch 9.0.1973 Problem: Clean up cmdline option completion code Solution: Fix various minor problems Patch 9.0.1974 Problem: vim9: using contra-variant type-checks (after v9.0.1959) Solution: Use invariant type checking instead Patch 9.0.1975 Problem: xattr: permission-denied errors on write Solution: ignore those errors Patch 9.0.1976 Problem: style: space before tab in optionstr.c Solution: remove the space Patch 9.0.1977 Problem: Vim9: object members can change type Solution: Check type during assignment to object/class var Patch 9.0.1978 Problem: No filetype detection for just files Solution: Detect just files (*.just, justfile, etc) Patch 9.0.1979 Problem: Cirrus CI disabled Solution: re-enable Cirrus CI Patch 9.0.1980 Problem: win32: issues with stable python ABI Solution: if_python3,win32: Fix Python3 stable ABI Patch 9.0.1981 Problem: Cannot scroll up in diff mode with many filler lines and zero 'scrolloff'. Solution: Invalidate w_cline_row before calling comp_botline(). Patch 9.0.1982 Problem: vim9: clean up from v9.0.1955 Solution: Fix a few remaining issues, improve error message Patch 9.0.1983 Problem: Scrolling non-current window using mouse is inconsistent depending on 'scrollbind'/'scrolloff' and different from GUI vertical scrollbar when 'cursorbind' is set. Solution: Don't move cursor in non-current windows for 'cursorbind' if cursor in the current window didn't move. Patch 9.0.1984 Problem: CI: Test_open_delay*() fails on FreeBSD 14 Solution: Skip it on BSD Patch 9.0.1985 Problem: CI: codecov is intrusive Solution: disable codecov comments Patch 9.0.1986 Problem: Vim9: accepting type-annotations Solution: Reject type annotations outside of declarations. Patch 9.0.1987 Problem: win32: font-size calculation can be improved Solution: calculate font size before the window size Patch 9.0.1988 Problem: Vim9: potential use-after-free for class members Solution: Use the class-related grow array for storing the member type instead of using a temporary type list grow array Patch 9.0.1989 Problem: Vim9: double error message given Solution: Only give second error message, if ther wasn't one given before Patch 9.0.1990 Problem: strange error number Solution: change error number, add doc tag for E1507 Patch 9.0.1991 Problem: no cmdline completion for setting the font Solution: enable it on Win32 and GTK builds Patch 9.0.1992 Problem: segfault in exmode when redrawing Solution: skip gui_scroll when exmode_active Patch 9.0.1993 Problem: warning about unused function definition Solution: add ifdefs Patch 9.0.1994 Problem: inconsistent feature description Solution: delete old mentioned feature sets small and big Patch 9.0.1995 Problem: Invalid memory access when 'foldexpr' returns empty string. Solution: Check for NUL. Patch 9.0.1996 Problem: Cannot build with python312 Solution: Define wrapper types and functions for python 3.12 Patch 9.0.1997 Problem: Some unused code in move.c and string.c Solution: Remove it Patch 9.0.1998 Problem: xxd: cannot reverse a bit dump Solution: implement reversing the bit dump using -b -r Patch 9.0.1999 Problem: Vim9: some error messages can be improved Solution: Mention the defining class for variable access error message Patch 9.0.2000 Problem: Vim9: use-after-free in deep call stack Solution: Get the objct pointer from execution stack Patch 9.0.2001 Problem: Vim9: segfault with islocked() Solution: Check that the lval pointer is not null for objects and class variables Patch 9.0.2002 Problem: Vim9: need cleanup of class related interface code Solution: Remove the unused class variable and class method related code for interfaces. Patch 9.0.2003 Problem: xxd: compilation warning Solution: initialize variables Patch 9.0.2004 Problem: Missing test file Solution: git-add the file to the repo Patch 9.0.2005 Problem: partially revert patch v9.0.1997 Solution: add a comment, to make clear it's not used Patch 9.0.2006 Problem: Vim9: need more tests Solution: add additional disassembly tests Patch 9.0.2007 Problem: Vim9: covariant parameter types allowed when assigning functions Solution: Enforce invariant type check for arguments and return value when assigning a funcref Patch 9.0.2008 Problem: test: undofile left behind Solution: cleanup undofile Patch 9.0.2009 Problem: cmdline-completion for comma-separated options wrong Solution: Fix command-line expansions for options with filenames with commas Patch 9.0.2010 Problem: [security] use-after-free from buf_contents_changed() Solution: block autocommands Patch 9.0.2011 Problem: INI files not detected Solution: detect uppercase .INI as dosini files Patch 9.0.2012 Problem: Vim9: error message can be more accurate Solution: Fix the error messages Patch 9.0.2013 Problem: Unicode tables outdated Solution: Update Unicode tables to v15.1 (released 23.09.2023) Patch 9.0.2014 Problem: confusing ifdefs in if_<lang>.c Solution: refactor ifndefs to #ifdefs Patch 9.0.2015 Problem: Vim9: does not handle islocked() from a method correctly Solution: Handle islocked() builtin from a method. Patch 9.0.2016 Problem: Vim9: assignment operators don't work for class vars Solution: implement it Patch 9.0.2017 Problem: linebreak applies for leading whitespace Solution: only apply linebreak, once we have found non-breakat chars in the line Patch 9.0.2018 Problem: complete_info() returns wrong index Solution: Make order of 'info' in completion_info consistent Patch 9.0.2019 Problem: Vim9: no support for funcrefs Solution: Add support for object/class funcref members Patch 9.0.2020 Problem: Vim9: islocked() needs more work Solution: rework islocked() and remove sync_root from get_lval() Patch 9.0.2021 Problem: Coverity complains about change in charset (after v9.0.2017) Solution: check pointer t at index 0 Patch 9.0.2022 Problem: When clicking in the middle of a TAB, getmousepos() returns the column of the next char instead of the TAB. Solution: Break out of the loop when the vcol to find is inside current char. Fix invalid memory access when calling virtcol2col() on an empty line. Patch 9.0.2023 Problem: need more tests for :cq Solution: Add more tests, including wraparound on linux Patch 9.0.2024 Problem: no filetype detection for Debian sources Solution: Add new deb822sources filetype Patch 9.0.2025 Problem: no cmdline completion for ++opt args Solution: Add cmdline completion for :e ++opt=arg and :terminal [++options] Patch 9.0.2026 Problem: win32: python3 dll loading can be improved Solution: Load DLL from registry path Patch 9.0.2027 Problem: Vim9: no support for bitwise operators in lambda funcs Solution: move "evaluate" assignment a bit up in order to decide to perform bitwise operations Patch 9.0.2028 Problem: confusing build dependencies Solution: clean them up, make them parallelizable Patch 9.0.2029 Problem: Vim9: no support for partials using call() Solution: Add support Patch 9.0.2030 Problem: no max callback recursion limit Solution: bail out, if max call recursion for callback functions has been reached. Patch 9.0.2031 Problem: `TextChangedI` can trigger on entering Insert mode if there was previously a change not in Insert mode. Solution: Make it trigger only when text is actually changed in Insert mode. Patch 9.0.2032 Problem: Cannot accurately get mouse clicking position when clicking on a TAB or with virtual text. Solution: Add a "coladd" field to getmousepos() result. Patch 9.0.2033 Problem: gcc overflow-warning for f_resolve Solution: use pointer p instead of pointer q[-1] Patch 9.0.2034 Problem: don't try to copy SMACK attribute, when none exist Solution: return early if SMACK extended attributes do not exist or if they are not supported Patch 9.0.2035 Problem: [security] use-after-free with wildmenu Solution: properly clean up the wildmenu when exiting Patch 9.0.2036 Problem: if_python: rework python3.12 build dependency (after 9.0.1996) Solution: use PyTuple_Size instead of inlining the Py_SIZE into the Vim code base Patch 9.0.2037 Problem: A few remaining cmdline completion issues with C-E/Y Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not used at the end Patch 9.0.2038 Problem: Vim9: object method funcref not cleaned up after use Solution: Clean up type stack after using object method funcref, remove now longer used ISN_DEFEROBJ instruction Patch 9.0.2039 Problem: completion shows current word after completion restart Solution: remove the word being completed after completion restart Patch 9.0.2040 Problem: trim(): hard to use default mask Solution: Use default 'mask' when it is v:none Patch 9.0.2041 Problem: trim(): hard to use default mask (partly revert v9.0.2040) Solution: use default mask when it is empty Patch 9.0.2042 Problem: Test_cq_zero_exmode fails without channel feature Solution: Make the test check the channel feature Patch 9.0.2043 Problem: Vim9: issue with funcref assignment and varargs Solution: Fix funcref type checking Patch 9.0.2044 Problem: Vim9: exceptions confuse deferred functions Solution: save and restore exception state when calling deferred functions Patch 9.0.2045 Problem: tests: checking for swap files takes time Solution: don't check for swap files when test has been skipped Patch 9.0.2046 Problem: win32,python: warning that MS_WIN64 got re-defined Solution: Do not define MS_WIN64, as it is no longer used Patch 9.0.2047 Problem: perl: warning about inconsistent dll linkage Solution: suppress warning Patch 9.0.2048 Problem: python: uninitialized warning Solution: initialize 'minor' always Patch 9.0.2049 Problem: Vim9: not recognizing qualified class vars for infix ops Solution: Drop the class type from the stack before generating the CLASSMEMBER instruction Patch 9.0.2050 Problem: Vim9: crash with deferred function call and exception Solution: Save and restore exception state Patch 9.0.2051 Problem: Vim9: wrong error for non-existing object var Solution: mention object or class depending on whether the var is an object or class variable. Patch 9.0.2052 Problem: win32: using deprecated wsock32 api Solution: Use winsock2 (ws2_32) consistently Patch 9.0.2053 Problem: zig filetype detection test wrong Solution: Remove .zir pattern, add new test for .zon pattern Patch 9.0.2054 Problem: win32: iscygpty needs update Solution: Update iscygpty to the latest version, make use iswascii() API function Patch 9.0.2055 Problem: Vim9: non-consistent error messages Solution: make error messages more consistent with common structure Patch 9.0.2056 Problem: no digraph for quadruple prime Solution: add quadruple prime digraph using 4' Patch 9.0.2057 Problem: Vim9: no strict type checks for funcrefs varargs Solution: Perform strict type checking when declaring funcrefs with vararg declaration, add tests Patch 9.0.2058 Problem: tests: avoid error when no swap files exist Solution: use unlet! so that no error message is reported in case the variable does not exists Patch 9.0.2059 Problem: outstanding exceptions may be skipped Solution: When restoring exception state, process remaining outstanding exceptions Patch 9.0.2060 Problem: *.{gn,gni} files are not recognized Solution: Detect some as gn filetype (without adding an extra filetype) Patch 9.0.2061 Problem: not able to detect xkb filetypes Solution: Detect files below /u/s/X11/xkb as xkb files (without adding an extra filetype) Patch 9.0.2062 Problem: Janet files are not recognised Solution: Add filename and shebang detection (without adding an extra filetype plugin) Patch 9.0.2063 Problem: pacman hooks are detected as conf filetype Solution: make it consistent to pacman.conf and detect those hooks as confini Patch 9.0.2064 Problem: cannot use buffer-number for errorformat Solution: add support for parsing a buffer number using '%b' in 'errorformat' Patch 9.0.2065 Problem: EXPAND flag set for filetype option Solution: Remove P_EXPAND flag from the 'filetype' option Patch 9.0.2066 Problem: xxd: corrupting files when reversing bit dumps Solution: handle reversing bit dump slightly differently Patch 9.0.2067 Problem: xxd: coloring was disabled on Cygwin Solution: don't include WIN32 Patch 9.0.2068 Problem: [security] overflow in :history Solution: Check that value fits into int Patch 9.0.2069 Problem: possible to escape bracketed paste mode with Ctrl-C Solution: Do not handle Ctrl-C specially when key_protocol is in use, makes bracketed paste mode more robust Patch 9.0.2070 Problem: [security] disallow setting env in restricted mode Solution: Setting environment variables in restricted mode could potentially be used to execute shell commands. Disallow this. Patch 9.0.2071 Problem: objdump files not recognized Solution: detect *.objdump files, add a filetype plugin Patch 9.0.2072 Problem: Vim9: no nr2str conversion in list-unpack Solution: Generate 2STRING instruction to convert dict index to string Patch 9.0.2073 Problem: typo in quickfix.c comments Solution: fix them Patch 9.0.2074 Problem: Completion menu may be wrong Solution: Check for the original direction of the completion menu, add more tests, make it work with 'noselect' Patch 9.0.2075 Problem: TextChangedI may not always trigger Solution: trigger it in more cases: for insert/ append/change operations, and when opening a new line, Patch 9.0.2076 Problem: Vim9: No support for type aliases Solution: Implement :type command Patch 9.0.2077 Problem: CI fails because of trailing whitespace in test Solution: Remove it Patch 9.0.2078 Problem: several problems with type aliases Solution: Check for more error conditions, add tests, fix issues Patch 9.0.2079 Problem: Not all Dart files detected Solution: Add shebang filetype detection for Dart Patch 9.0.2080 Problem: vim9_script test too large Solution: split vim9 type alias test into separate test file Patch 9.0.2081 Problem: With 'smoothscroll' set, "w_skipcol" is not reset when unsetting 'wrap'. Resulting in incorrect calculation of the cursor position. Solution: Reset "w_skipcol" when unsetting 'wrap'. Patch 9.0.2082 Problem: test_channel may fail because of IPv6 config issues Solution: Catch and skip the test, if getaddrinfo() fails with 'Address family not supported' Patch 9.0.2083 Problem: Perl: xsubpp may be in non-standard location Solution: Add --with-subpp configure option Patch 9.0.2084 Problem: Vim9: abstract static methods are possible Solution: Disallow abstract static methods Patch 9.0.2085 Problem: Vim9: abstract can be used in interface Solution: Disallow the use of abstract in an interface Patch 9.0.2086 Problem: code cleanup for option callbacks needed Solution: remove flag os_doskip, it's not necessary, as we can check, whether an error message was returned Patch 9.0.2087 Problem: build-failure in vim9class Solution: reference correct error message, disable non-failing test Patch 9.0.2088 Problem: Vim9: still allows abstract static methods (after v9.0.2084, v9.0.2085 and v9.0.2087) Solution: Disallow abstract static methods Patch 9.0.2089 Problem: sound_playfile() fails when using powershell Solution: quote filename using doublequotes, don't escape filename, because it doesn't use the shell Patch 9.0.2090 Problem: complete_info() skips entries with 'noselect' Solution: Check, if first entry is at original text state Patch 9.0.2091 Problem: Vim9: cannot convert list to string using += (after 9.0.2072) Solution: convert dict index to string later in compile_member() Patch 9.0.2092 Problem: tests: failure in test_arabic Solution: adjust the test for the changed arabic keymap Patch 9.0.2093 Problem: Unsupported option causes rest of modeline test to be skipped. Solution: Revert the change from patch 8.2.1432. Patch 9.0.2094 Problem: Vim9: need more assignment tests Solution: Add test for using different types in assignment, function arguments and return values Patch 9.0.2095 Problem: statusline may look different than expected Solution: do not check for highlighting of stl and stlnc characters Patch 9.0.2096 Problem: Vim9: confusing usage of private Solution: clarify and use protected keyword instead Patch 9.0.2097 Problem: No support for cypher files Solution: Add cypher filetype detection Patch 9.0.2098 Problem: No filetype support for xcompose files Solution: Add filetype detection Patch 9.0.2099 Problem: Terminal control codes¹ are sent even when silent mode is on, causing the terminal to clear up Solution: Block any terminal codes when silent mode is on Patch 9.0.2100 Problem: CI: test_Termdebug fails Solution: only test for a changed winlayout, if the window width actually changed Patch 9.0.2101 Problem: CI: test_termdebug may still fail Solution: use term_wait() to make it more robust Patch 9.0.2102 Problem: matchparen highlight not cleared in completion mode Solution: Clear matchparen highlighting in completion mode Patch 9.0.2103 Problem: recursive callback may cause issues on some archs Solution: Decrease the limit drastically to 20 Patch 9.0.2104 Problem: wast filetype should be replaced by wat filetype Solution: start using the official wat filetype name Patch 9.0.2105 Problem: Skipcol is not reset when topline changed scrolling cursor to top Solution: reset skipcol Patch 9.0.2106 Problem: [security]: Use-after-free in win_close() Solution: Check window is valid, before accessing it Patch 9.0.2107 Problem: [security]: FPE in adjust_plines_for_skipcol Solution: don't divide by zero, return zero Patch 9.0.2108 Problem: [security]: overflow with count for :s command Solution: Abort the :s command if the count is too large Patch 9.0.2109 Problem: [security]: overflow in nv_z_get_count Solution: break out, if count is too large Patch 9.0.2110 Problem: [security]: overflow in ex address parsing Solution: Verify that lnum is positive, before subtracting from LONG_MAX Patch 9.0.2111 Problem: [security]: overflow in get_number Solution: Return 0 when the count gets too large Patch 9.0.2112 Problem: [security]: overflow in shift_line Solution: allow a max indent of INT_MAX Patch 9.0.2113 Problem: Coverity warns for another overflow in shift_line() Solution: Test for INT_MAX after the if condition, cast integer values to (long long) before multiplying. Patch 9.0.2114 Problem: overflow detection not accurate when adding digits Solution: Use a helper function Patch 9.0.2115 Problem: crash when callback function aborts because of recursiveness Solution: correctly initialize rettv Patch 9.0.2116 Problem: No test for defining sign without attribute Solution: Add test for defining sign without attributes Patch 9.0.2117 Problem: [security] use-after-free in qf_free_items Solution: only access qfpnext, if it hasn't been freed Patch 9.0.2118 Problem: [security]: avoid double-free Solution: Only fee plain_font, when it is not the same as bold_font Patch 9.0.2119 Problem: remove dead-condition in ex_class() Solution: remove the extra condition Patch 9.0.2120 Problem: un-used assignment in do_source_buffer_init Solution: Remove it Patch 9.0.2121 Problem: [security]: use-after-free in ex_substitute Solution: always allocate memory Patch 9.0.2122 Problem: [security]: prevent overflow in indenting Solution: use long long and remove cast to (int) Patch 9.0.2123 Problem: Problem with initializing the length of range() lists Solution: Set length explicitly when it shouldn't contain any items Patch 9.0.2124 Problem: INT overflow logic can be simplified Solution: introduce trim_to_int() function Patch 9.0.2125 Problem: File info disappears immediately when 'cmdheight' has just decreased due to switching tabpage and 'shortmess' doesn't contain 'o' or 'O'. Solution: Make sure msg_row isn't smaller than cmdline_row. Patch 9.0.2126 Problem: Unused assignments when checking the value of 'listchars'. Solution: Loop only once when just checking the value. Add a test to check that this change doesn't cause double-free. Patch 9.0.2127 Problem: translation Makefiles can be improved Solution: Modified and extended po-related Makefiles and related files Patch 9.0.2128 Problem: No runtime files for SWIG filetypes Solution: Add syntax and filetype plugins for SWIG (Simplified Wrapper Interface Generator) description files. Patch 9.0.2129 Problem: [security]: use-after-free in call_dfunc() Solution: Refresh dfunc pointer Patch 9.0.2130 Problem: some errors with translation Makefiles Solution: fix issues Patch 9.0.2131 Problem: not all nushell files detected Solution: use *.nu to detect nushell files Patch 9.0.2132 Problem: Duplicate Netbeans Error Message Solution: Remove duplicate message Patch 9.0.2133 Problem: Cannot detect overstrike mode in Cmdline mode Solution: Make mode() return "cr" for overstrike Patch 9.0.2134 Problem: ml_get error when scrolling after delete Solution: mark topline to be validated in main_loop if it is larger than current buffers line count Patch 9.0.2135 Problem: No test for mode() when executing Ex commands Solution: Add some test cases and simplify several other test cases. Also add a few more test cases for ModeChanged. Patch 9.0.2136 Problem: MSVC errorformat can be improved Solution: parse error type and column number in MSVC errorformat Patch 9.0.2137 Problem: Can't detect angular & mustache filetypes Solution: Detect *.mustache as Mustache filetype; detect *.component.html as html.angular filetype Patch 9.0.2138 Problem: Overflow logic requires long long Solution: Define vimlong_T data type to make life easier for porters Patch 9.0.2139 Problem: html.angular ft is problematic Solution: partly revert v9.0.2137 Patch 9.0.2140 Problem: [security]: use-after-free in win-enter Solution: validate window pointer before calling win_enter() Patch 9.0.2141 Problem: [security]: buffer-overflow in suggest_trie_walk Solution: Check n before using it as index into bytes array Patch 9.0.2142 Problem: [security]: stack-buffer-overflow in option callback functions Solution: pass size of errbuf down the call stack, use snprintf() instead of sprintf() Patch 9.0.2143 Problem: [security]: buffer-overflow in ex_substitute Solution: clear memory after allocating Patch 9.0.2144 Problem: Text properties causes wrong line wrapping to be drawn. Solution: Find the index of the last text property that inserts text. Patch 9.0.2145 Problem: Wrong scrolling in Insert mode with 'smoothscroll' at the bottom of the window. Solution: Don't use set_topline() when 'smoothscroll' is set. Patch 9.0.2146 Problem: text-property without type errors when joining Solution: count all text-properties, with or without type before joining lines Patch 9.0.2147 Problem: Type check tests fail without the channel feature Solution: only run tests, when Vim was build with +channel Patch 9.0.2148 Problem: Vim does not detect pacman.log file Solution: Detect pacmanlogs and add syntax highlighting Patch 9.0.2149 Problem: [security]: use-after-free in exec_instructions() Solution: get tv pointer again Patch 9.0.2150 Problem: Using int for errbuflen in option funcs Solution: Use size_t for errbuflen in string option functions Patch 9.0.2151 Problem: 'breakindent' is not drawn after diff filler lines. Solution: Correct check for whether 'breakindent' should be drawn. Patch 9.0.2152 Problem: Using type unknown for List/Dict containers Solution: Use 'any' instead Patch 9.0.2153 Problem: no support to build on OpenVMS Solution: Add OpenVMS X86_64 platform port Patch 9.0.2154 Problem: The options[] array is not sorted alphabetically. Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop iterations in findoption(). Patch 9.0.2155 Problem: Vim9: type not kept when assigning vars Solution: When assigning a List or a Dict value to a variable of type 'any', keep the type Patch 9.0.2156 Problem: Vim9: can use typealias in an assignment Solution: Generate errors when class/typealias involved in the rhs of an assignment Patch 9.0.2157 Problem: Vim9: incorrectly parses :def func definitions Solution: check for more context when parsing function args Patch 9.0.2158 Problem: [security]: use-after-free in check_argument_type Solution: Reset function type pointer when freeing the function type list Patch 9.0.2159 Problem: screenpos() may crash with neg. column Solution: validate and correct column Patch 9.0.2160 Problem: instanceof() should use varargs as second arg Solution: Modify `instanceof()` to use varargs instead of list Patch 9.0.2161 Problem: Vim9: not able to use imported interfaces and classes Solution: Detect imported class/interfaces names correctly Patch 9.0.2162 Problem: Vim9: type documentation out-dated Solution: Update documentation, fix typo in type alias definition Patch 9.0.2163 Problem: Vim9: type can be assigned to list/dict Solution: Prevent assigning a `type` to a `list` or `dict` Patch 9.0.2164 Problem: Vim9: can use type a func arg/return value Solution: Check if using type as function argument or return value Patch 9.0.2165 Problem: Vim9: can simplify arg type checking code Solution: In `f_argcheck` array use `arg_any`, instead of NULL Patch 9.0.2166 Problem: Memory leak in Configure Script when checking GTK Solution: Free the allocated memory Patch 9.0.2167 Problem: Vim9-script object/class variable declarations use syntax that is inconsistent with the rest of the language. Solution: Use :var to declare object and class variables. Patch 9.0.2168 Problem: Moving tabpages on :drop may cause an endless loop Solution: Disallow moving tabpages on :drop when cleaning up the arglist first Patch 9.0.2169 Problem: Vim9: builtin funcs may accept a non-value Solution: Restrict builtin functions that accept `type` Patch 9.0.2170 Problem: Vim9: no support for const/final class/objects vars Solution: Support final and const object and class variables Patch 9.0.2171 Problem: The options[] array is still not sorted alphabetically (after: v9.0.2154), causing test failures Solution: Sort the remaining items Patch 9.0.2172 Problem: Vim9: compiling :defer may fail Solution: compile defer, when ctx_skip is not SKIP_YES Patch 9.0.2173 Problem: Vim9: Vim crashes when compiling a for statement with a non-existing type Solution: Error out when lhs_type is not null Patch 9.0.2174 Problem: Vim9: segfault when assigning to type Solution: do not clear typeval, add missing patch number Patch 9.0.2175 Problem: Compiler warning for uninitialized var Solution: initialize variable to NULL Patch 9.0.2176 Problem: Compile error with Motif UI + mouse support (after v9.0.1262) Solution: Use correct oldval option pointer Patch 9.0.2177 Problem: Wrong cursor position when dragging out of window. Solution: Don't use ScreenCols[] when mouse is not in current window. Patch 9.0.2178 Problem: reg_executing() returns wrong result in :normal with range when 'showcmd' is set (after 8.2.4705). Solution: Reset "pending_end_reg_executing" when executing a register. Patch 9.0.2179 Problem: no filetype detection for execline scripts Solution: Add filetype detection for execline Patch 9.0.2180 Problem: POSIX function name in exarg struct causes issues on OpenVMS Solution: Rename getline member in exarg struct to ea_getline, remove isinf() workaround for VMS Patch 9.0.2181 Problem: Vim9: missing error messages Solution: Add one more error message Patch 9.0.2182 Problem: Vim9: need a way to reserve future extension Solution: reserve double underscore prefix for future use (Yegappan Lakshmanan) Patch 9.0.2183 Problem: Maximum callback depth is not configurable. Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test. (zeertzjq) Patch 9.0.2184 Problem: Vim9: inconsistent :type/:class messages Solution: Update the Messages (Ernie Rael) Patch 9.0.2185 Problem: Coverity complains about not checking return value in compare_isn_not_values (after 9.0.2184) Solution: cast return value to "(void)" to make intention clear Patch 9.0.2186 Problem: LTCG compile error on Win/ARM64 for `write_chars()` Solution: Explicitly initialise the storage to use data rather than BSS (Saleem Abdulrasool) Patch 9.0.2187 Problem: Visual selection isn't drawn with 'breakindent' when the line doesn't fit in the window (Jaehwang Jung) Solution: Adjust wlv->fromcol also for 'breakindent' (zeertzjq) Patch 9.0.2188 Problem: cursor wrong after { in single line buffer (Edwin Chan) Solution: do not place the cursor at the end for a single line buffer when moving backwards (Gary Johnson) Patch 9.0.2189 Problem: Wrong display when 'breakindentopt' contains "sbr" and 'showbreak' and 'nobreakindent' are set. Solution: Always reset wlv->need_showbreak regardless of the values of 'breakindent' and 'showbreak', as they aren't checked when setting wlv->need_showbreak (zeertzjq) Patch 9.0.2190 Problem: proto files need update Solution: re-generate them vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual: