*version9.txt* For Vim version 8.2. Last change: 2022 Mar 08 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 Vim9 script syntax is introduced. This file mentions all the new items and changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be found here: |vim-8.2|. 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| Various new items |new-items-9| INCOMPATIBLE CHANGES |incompatible-9| IMPROVEMENTS |improvements-9| COMPILE TIME CHANGES |compile-changes-9| PATCHES |patches-9| 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/ 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! ============================================================================== 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 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. 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. All the information about Vim9 script can be found in the |Vim9| help file. Various new items *new-items-9* ----------------- TODO: Visual/Insert/Cmdline mode commands? Options: ~ 'autoshelldir' change directory to the shell's current directory 'cdhome' change directory to the home directory by ":cd" 'guiligatures' GTK GUI: ASCII characters that can form shapes '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| |: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 |: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 |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 |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 |list2blob()| get a blob from a list of numbers |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 |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 is 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 |VimSuspend| when suspending Vim |VimResume| when Vim is resumed after being suspended New runtime files: ~ Too many to list here. ============================================================================== INCOMPATIBLE CHANGES *incompatible-9* These changes are incompatible with previous releases. Check this list if you run into a problem when upgrading from Vim 8.2.0 to 9.0. TODO ============================================================================== IMPROVEMENTS *improvements-9* Many memory leaks, invalid memory accesses and crashes have been fixed. See the list of patches below. TODO ============================================================================== COMPILE TIME CHANGES *compile-changes-9* TODO ============================================================================== 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 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 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