version9

version9.txt 适用于 Vim 9.0 版本。 最近更新: 2023年2月 VIM 参考手册 by Bram Moolenaar 译者: Willis vim-9.0 vim-9 version-9.0 version9.0 欢迎来到 Vim 版本 9!自从上一版以来,几年过去了。修正了大量的漏洞,增加了很多 好用的特性,而且 Vim9 脚本语法来了!本文档列出 Vim 8.2.0 以来所有加入的新项目 和已有特性的改动。Vim 8.2 及之前的补丁可见: vim-8.2 。 使用此命令可见正在使用的 Vim 程序的完整版本和特性信息: :version 新 特 性 new-9 Vim 脚本增强 new-vim-script-9 用弹出菜单的命令行补全 new-popup-compl 更新的色彩方案 new-colorschemes-9 若干新项目 new-items-9 不 兼 容 的 改 动 incompatible-9 改 进 improvements-9 编 译 时 的 改 变 compile-changes-9 补 丁 patches-9 vi_diff.txt 提供 Vi 和 Vim 9.0 的区别的一个概述。 version4.txtversion5.txtversion6.txtversion7.txtversion8.txt 说明其它版本间的区别。 包含最重要改动的概览 (根据 Martin Tournoij) 可见: https://www.arp242.net/vimlog/ Sven-Guckes Vim version 9.0 要特别向 Sven Guckes 致敬,在准备发布期间,他于 2022 年二月过 世。Sven 是 Vim 的长期支持者。他注册了 vim.org 域名,并创建了首个 Vim 网站。我 们永远怀念他!

新 特 性 new-9

首先给出最有意思的新特性的概述。下面再给出完整列表。 Vim9 脚本 new-vim-script-9 很多年来,Vim 脚本语言在维持后向兼容的基础上循序渐进地调整。早期的若干设计决 定,阻碍了语言的更好发展。同时,Vim 脚本越来越常用,因为众多插件需要使用。 Vim9 脚本提供了和其他语言更相近的语法。换而言之: "不太怪异"。它引入经编译的函 数,从而速度可以大幅提高。可以期待有十倍提速甚至更快。换来的代价是 Vim9 脚本不 再后向兼容。但不用担心,旧的脚本依然可用,提供了新的脚本语言,它不会替代老式脚 本。 关于 Vim9 脚本的信息可见 Vim9 帮助文件。 用弹出菜单的命令行补全 new-popup-compl 之前有 'wildmenu' 选项,使用状态行之上一行来显示匹配。只能放进少量匹配。 现在把 'wildoptions' 设为 "pum" 可使用弹出菜单。这可以显示多很多的匹配。需要更 多显示重画,但电脑现在够快,应该不是问题。 更新的色彩方案 new-colorschemes-9 包含了 https://github.com/vim/colorschemes 的色彩方案。做了一些调整使许多类型 的终端上体验保持一致。大体上这是一种改进,但个人判断不可避免。如果喜欢旧版本, 你可以从这里找到: https://github.com/vim/colorschemes/blob/master/legacy_colors/ 若干新项目 new-items-9 选项: 'autoshelldir' 切换目录为外壳的当前目录 'cdhome' ":cd" 切换目录为主目录 'cinscopedecls' 'cino-g' 识别的单词 'guiligatures' GTK GUI: 可以构成字形的 ASCII 字符 'mousemoveevent'<MouseMove> 报告鼠标移动 'quickfixtextfunc' 用于快速修复窗口中文本的函数 'spelloptions' 拼写检查选项 'thesaurusfunc' 用于同义词补全的函数 'xtermcodes' 从 xterm 中请求终端代码 Ex 命令: :abstract (保留将来使用) :argdedupe 删除参数列表中的重复项目 :balt 类似于 ":badd" 但同时设置轮换文件 :class (保留将来使用) :def 定义 Vim9 用户函数 :defcompile 在当前脚本编译 Vim9 用户函数 :disassemble 反汇编 Vim9 用户函数 :echoconsole 类似于 :echomsg,但写入标准输出 :endinterface (保留将来使用) :endclass (保留将来使用) :enddef :def 开始的用户函数的结束 :endenum (保留将来使用) :enum (保留将来使用) :eval 计算表达式并丢弃结果 :export Vim9: 从脚本导出项目 :final Vim9 的不可变变量声明 :import Vim9: 从另一脚本导入项目 :interface (保留将来使用) :static (保留将来使用) :type (保留将来使用) :var Vim9 的变量声明 :vim9script 指示 Vim9 脚本文件 Ex 命令修饰符: :legacy 使其后一个命令使用老式脚本语法 :vim9cmd 使其后一个命令使用 Vim9 脚本语法 新函数及功能扩展的函数: assert_nobeep() 断言命令不会响铃 autocmd_add() 新增一组自动命令和组 autocmd_delete() 删除一组自动命令和组 autocmd_get() 返回自动命令的列表 blob2list() 返回 blob 对应的数值列表 charclass() 字符类 charcol() 光标或位置标记的字符数 (译者注: 应为列号) charidx() 字符串里某字节的字符索引 digraph_get() 得到二合字母 digraph_getlist() 得到所有二合字母 digraph_set() 注册二合字母 digraph_setlist() 注册多个二合字母 echoraw() 照原样输出字符 exists_compiled() 类似于 exists() 但在编译时检查 extendnew() 创建新字典并附加项目 flatten() 展平列表 flattennew() 展平列表的备份 fullcommand() 得到完整命令名 getcharpos() 得到光标、位置标记等的字符位置 getcharstr() 从用户处得到一个字符,以字符串形式返回 getcmdcompltype() 返回当前命令行补全类型 getcmdscreenpos() 返回命令行的当前光标位置 getcursorcharpos() 得到光标的字符位置 getmarklist() 全局/局部位置标记的列表 getreginfo() 得到寄存器的信息 gettext() 查找信息翻译 hlget() 得到高亮组的属性 hlset() 设置高亮组的属性 isabsolutepath() 检查路径是否绝对路径 list2blob() 从数值列表中还原为 blob maplist() 所有映射的列表,每项为一个字典 mapnew() 用经过改变的项目创建新列表 mapset() 恢复映射 matchfuzzy() 在字符串列表中模糊匹配字符串 matchfuzzypos() 在字符串列表中模糊匹配字符串 menu_info() 得到菜单项的信息 popup_list() 得到所有弹出窗口 ID 的列表 prompt_getprompt() 得到缓冲区的实际提示文本 prop_add_list() 在多个位置附属文本属性 prop_find() 搜索文本属性 readblob() 读取文件到 blob readdirex() 得到文件信息列表,每项是一个字典 reduce() 缩减列表到一个值 searchcount() 得到光标前/后的匹配数目 setcellwidths() 设置字符单元宽度覆盖 setcharpos() 设置光标、位置标记等的字符位置 setcursorcharpos() 设置光标的字符位置 slice() 得到列表的切片 strcharlen() 字符串以字符计算的长度 terminalprops() 终端属性 test_gui_event() 生成 GUI 事件,测试用 test_null_function() 返回 null funcref test_srand_seed() 设置 srand() 的种子值 test_unknown() 返回未知类型的值 test_void() 返回 void 类型的值 typename() 变量类型,以文本返回 virtcol2col() 屏幕上字符的字节索引 win_gettype() 得到窗口类型 win_move_separator() 移动窗口垂直分割符 win_move_statusline() 移动窗口状态行 windowsversion() 得到 MS-Windows 版本 新 Vim 变量: v:numbermax 数值的最大值 v:numbermin 数值的最小值 (负数) v:numbersize 数值的位数 v:collate 当前 locale 设置的排序规则 v:exiting vim 退出代码 v:colornames 映射色彩名到十六制色彩字符串的字典 v:sizeofint int 的位数 v:sizeoflong long 的位数 v:sizeofpointer 指针的字节数 v:maxcol 最大行长 新自动命令事件: CompleteDonePre 插入模式补全完成后,清除信息前 DirChangedPre 切换工作目录前 InsertLeavePre 刚刚离开插入模式前 ModeChanged 切换模式后 SigUSR1 检测到 SIGUSR1 信号后 WinClosed 关闭窗口后 WinScrolled 滚动窗口或改变窗口大小后 VimSuspend 暂停 Vim 时 VimResume Vim 暂停后继续运行时 新操作符: >> 按位右移 << 按位左移 ?? 准假值操作符 新运行时文件: 数目太多,恕不一一列举。

不 兼 容 的 改 动 incompatible-9

和之前版本只有一处不兼容: - Lua 数组现在以一为基,过去以零为基。 注意 使用 Vim9 脚本时有若干不同,见 vim9-differences

改 进 improvements-9

Vim 8.2 以来,有若干小但有用的改进,以下是一个小结。 修正了许多内存泄露,非法内存访问和崩溃。见下面的补丁列表: bug-fixes-9 。 支持在字符串内部计算 Vim 表达式。 interpolated-string 支持在 heredoc 内部计算 Vim 表达式。 :let-heredoc 支持模糊匹配: - 字符串列表中查找字符串。 fuzzy-matching - 用 'wildoptions' 进行命令行补全的补全支持。 - 用于 :vimgrep 。 增加 Haiku OS 的支持。 支持 "lsp" 通道模式以简化 LSP 服务器 RPC 通信 language-server-protocol 。 支持 channel 中使用 Unix 域套接字。 通道的 IPv6 支持 channel-address 。 支持执行当前缓冲区上的行。 :source-range 终端窗口改进: - 支持在弹出窗口中打开终端。 popup-terminal - 支持终端设置下划线色彩。 - 检测终端的焦点事件 ( FocusGainedFocusLost )。 - 为终端窗口增加响铃支持。('belloff') - 终端窗口中支持鼠标左右滚动。 支持停止 Vim 脚本的剖视: `:profile stop` 和写入报告到文件: `:profile dump`。 :profile 补全改进: - :breakadd:breakdel:diffget:diffput:profile:profdel:scriptnames 命令的参数补全支持。 - 补全函数中支持使用任何 Vim 类型的 user_data ( complete-items )。 - 停止插入模式补全且不改变文本 ( i_CTRL-X_CTRL-Z )。 - 加入 getcompletion() 的 "cmdline" 选项以返回命令行参数。 支持设置 'foldtext''completefunc''omnifunc', 'operatorfunc''thesaurusfunc''quickfixtextfunc''tagfunc', 'imactivatefunc''imstatusfunc' 选项为函数引用或匿名函数或局部于脚本的函数。 支持直接设置 'balloonexpr''charconvert' 'foldexpr', 'formatexpr''includeexpr''printexpr''patchexpr''indentexpr', 'modelineexpr''diffexpr''printexpr' 选项为局部于脚本的函数。 'fillchars' 的改进: - 支持配置用于标记折叠开始、显示关闭折叠和显示折叠分割符的字符,分别用 'fillchars' 里的 "foldopen"、"foldclose" 和 "foldsep"。 - 支持配置代表不存在行的显示字符,用 'fillchars' 里的 "eob"。 - 'fillchars' 选项里的 "stl"、"stlnc"、"foldopen"、"foldclose" 和 "foldsep" 项 目支持使用多字节。 支持 XChaCha20 加密方法。'cryptmethod' 拼写检查: - 即使 'spell' 关闭,也可用 z= 来为当前单词进行拼写检查。 - 为 'spellsuggest' 加上 "timeout" 以限制拼写建议的搜索时间。 - 新增支持,为 'spelloptions' 加上 "camel" 可对驼峰式大小写单词进行拼写检查。 支持在映射里执行 Ex 命令而不改变当前模式 <Cmd><ScriptCmd>:cquit 新增可选错误码。 'nrformats' 里置位 "unsigned" 时识别数值为无符号数。 用 expand('<SID>') 来扩展脚本 ID,用 expand('<script>') 来扩展脚本名。 expand()g<Tab> 跳转到最近访问的标签页, :tabnext 等命令支持最近访问的标签页。 :sortsort() 支持 locale 敏感的排序。 用 :sleep! 睡眠时隐藏光标。 新增 'listchars' 的 "multispace" 以显示在任何地方出现的两个或多个空格。 新增 'listchars' 的 "leadmultispace" 以显示两个或多个引导空格。 新增 'listchars' 的 "lead" 以设置用于显示引导空格的字符。 支持 'listchars' 里指定字符时使用十六进制记法 (\x, \u and \U)。 使 'listchars', 'virtualedit' and 'thesaurusfunc' 成为全局-局部选项。 支持用 :for 遍历字符串内容。 'diffopt' 里置位 "followwrap" 时比较窗口不复位 'wrap'。 支持 'statusline' 表达式结果当作状态行格式字符串重新计算 (%{% expr %}) 新增 zpzP ,在列块模式下粘贴而不带拖尾空白。 新增 zy ,在列块模式下抽出时不带拖尾空白。 新增可视模式下的 'P' 命令,在可视模式下粘贴文本而不把删除文本抽出到无名寄存 器。 put-Visual-mode 新增 \%.l、\%<.l 和 \%>.l 匹配原以匹配光标所在行。详见 /\%l 。 新增 'breakindentopt' 的 "list" 来为编号或无编号列表提供额外缩进。新增 'breakindentopt' 的 "column" 使软回绕行缩进到指定列。 新增 hl-CursorLineSignhl-CursorLineFold 缺省高亮组以调整用于 'cursorline' 的标号高亮。 新增 hl-CurSearch 缺省高亮组用于当前搜索匹配。 新增 Vim 启动时记录的支持 ( --log )。 新增用 'quickfixtextfunc' 定制快速修复缓冲区内容的支持。 支持 errorformat 的 "note" 错误类型 (%t)。 新增 'errorformat' 解析结束行号 (%e) 和 结束列号 (%k) 的支持。 支持 settagstack() 裁短标签栈。 :set 带 "!" 在单独行显示每个选项。 新增 'backspace' 的 "nostop" 以允许 CTRL-WCTRL-U 退格也可以越过插入的 开始处。 置位 'fsync' 时同步撤销文件。 支持用 'sessionoptions' 的 "skiprtp" 从会话文件里排除 'runtimepath''packpath' 选项。 支持用 getbufinfo() 获取缓冲区的行数。 支持 filter()map() 用于 blob 和字符串类型。 支持标签类型 (kind) 使用多字节字符。 tags-file-format 新增用 exists() 检查函数名是否合法的支持。 更新 xdiff 到版本 2.33。更新 libvterm 到修订版 789。 支持 'trim' 用于 Python/Lua/Perl/Tcl/Ruby/MzScheme 界面的 here 文档。 新增 t_AUt_8u termcap 码以支持下划线和下曲。新增 t_fd 和 t_fe termcap 码以检测焦点事件。 支持像正常代码那样缩进 C 编译指示 (pragma)。( cino-P ) 新增定义语法折叠级别的支持。( :syn-foldlevel ) 新增字符串中用 \<*xxx> 在字符前加上修饰符的支持。( expr-quote ) 新增 trim() 在字符串头部或尾部裁剪字符的支持。 使 ":verbose pwd" 显示目录的作用域。 :pwd-verbose 新增指定八进制数的 "0o" 记法。 scriptversion-4 支持用 "tcd -" 和 "lcd -" 命令切换到上次局部于标签页和窗口的目录。( :tcd-:lcd- ) 新增用 search() 时跳过表达式的支持。 新增 readdir()readdirex() 函数返回的目录内容按大小写敏感或不敏感排序的 支持。 新增执行包含续行的寄存器 ( :@ ) 的支持。 Lua 支持: - 从 Lua 里调用 Vim 函数 (vim.call() 和 vim.fn())。 - 把 Lua 函数和闭包转换为 Vim 函数引用,以便在 Vim 脚本里引用 ( lua-funcref )。 - 后向不兼容: Lua 数组现在以一为基。 - 新增在 Vim 列表上使用 table.insert() 和 table.remove() 函数的支持。 - 支持用 vim.command() 运行多个 Ex-模式命令。 - 新增 vim.lua_version 以获取 Lua 版本。 - 新增从 Lua 访问 Via 命名空间字典的支持 ( lua-vim-variables )。 支持 Unicode 版本 13 新的 UTF-8 字符。 支持定义 :command:autocmd 时使用命令块 ( :command-repl )。 支持 :z! ,使用 Vim 显示高度而不是当前窗口高度。 支持 ":delcommand -buffer {cmd}" 来删除局部于缓冲区的命令。 排版语句之后的 // 注释时,找到行注释的开始处,插入注释头然后正确缩进注释 ( fo-/ )。 新增 `:sign define` 的 "numhl" 参数,为标号放置行的行号使用单独的高亮组。 :sign-define $SHELL 以 "nologin" 或 "false" 结尾时,以受限模式启动 Vim。 TermDebug 改进: - 支持在单独窗口显示反汇编码。 - 支持 GDB 的 until 命令。 - 支持用于标号的单独组。 xxd: 支持以十进制显示位移 (-d)。 C 全能补全插件 ( ft-c-omni )、文件类型检测脚本 (ft.vim) 和语法菜单生成脚本 (makemenu.vim) 用 Vim9 脚本语法进行了改写。 新增大量测试以检验 Vim 功能。多数旧风格的测试被改写以使用新风格的 assert_* 函 数。 修正了众多的 Coverity 静态分析警告

编 译 时 的 改 变 compile-changes-9

所有构造版本现在都打开以下特性: +cindent +jumplist +lispindent +num64 +smartindent +tag_binary +title 删除以下特性。或者已废弃,或者不能正常工作: - Athena 和 neXTaw GUI 支持 (用 Motif 来代替) - EBCDIC 支持 - Atari MiNT 和 BeOS - Mac Carbon GUI (用 MacVim 来代替) 不再包含 rgb.txt 文件,用 colors/lists/default.vim 来代替。 几个大的源文件被分割,主要是便于检测代码覆盖信息。源代码重整也便于维护。 MS-Windows 上支持用 Mingw64 clang 编译器来编译 Vim。 编译 Vim 时支持 Python 3.10、Lua 5.4.4、Perl 5.34 和 Ruby 3.1.0。

PATCHES patches-9 bug-fixes-9

patches-after-8.2 包含了从 8.2.0 开始的补丁列表。这包括所有的新特性,但不包括运行时文件的改动 (语法、缩进、帮助等等)。 Patch 8.2.0001 问题: #endif comments do not reflect corresponding #ifdef. 解决方案: Update the comments. (Rene Nyffenegger, closes #5351) 文件: src/ui.c Patch 8.2.0002 问题: "dj" only deletes first line of closed fold. 解决方案: Adjust last line of operator for linewise motion. (closes #5354) 文件: src/ops.c, src/testdir/test_fold.vim Patch 8.2.0003 问题: Build file dependencies are incomplete. 解决方案: Fix the dependencies. (Ken Takata, closes #5356) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile Patch 8.2.0004 问题: Get E685 and E931 if buffer reload is interrupted. 解决方案: Do not abort deleting a dummy buffer. (closes #5361) 文件: 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 问题: Duplication in version info. 解决方案: Use preprocessor string concatenation. (Ken Takata, closes #5357) 文件: src/version.h Patch 8.2.0006 问题: Test using long file name may fail. (Vladimir Lomov) 解决方案: Limit the name length. (Christian Brabandt, closes #5358) 文件: src/testdir/test_display.vim Patch 8.2.0007 问题: Popup menu positioned wrong with folding in two tabs. 解决方案: Update the cursor line height. (closes #5353) 文件: 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 问题: Test72 is old style. 解决方案: Convert to new style test. (Yegappan Lakshmanan, closes #5362) 文件: 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 问题: VMS: terminal version doesn't build. 解决方案: Move MIN definition. Adjust #ifdefs. (Zoltan Arpadffy) 文件: src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms Patch 8.2.0010 问题: Test64 is old style. 解决方案: Convert to new style test. (Yegappan Lakshmanan, closes #5363) 文件: 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 问题: Screen updating wrong when opening preview window. 解决方案: Redraw the window when the preview window opens. 文件: src/popupmenu.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_pum_with_preview_win.dump Patch 8.2.0012 问题: Some undo functionality is not tested. 解决方案: Add a few more test cases. (Dominique Pellé, closes #5364) 文件: src/testdir/test_undo.vim Patch 8.2.0013 问题: Not using a typedef for condstack. 解决方案: Add a typedef. 文件: 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 问题: Test69 and test95 are old style. 解决方案: Convert to new style tests. (Yegappan Lakshmanan, closes #5365) 文件: 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 问题: Not all modeline variants are tested. 解决方案: Add modeline tests. (Dominique Pellé, closes #5369) 文件: src/testdir/test_modeline.vim Patch 8.2.0016 问题: Test name used twice, option not restored properly. 解决方案: Rename function, restore option with "&". 文件: src/testdir/test_textformat.vim Patch 8.2.0017 问题: OS/2 and MS-DOS are still mentioned, even though support was removed long ago. 解决方案: Update documentation. (Yegappan Lakshmanan, closes #5368) 文件: 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 问题: :join does not add white space where it should. (Zdenek Dohnal) 解决方案: Handle joining multiple lines properly. 文件: src/ops.c, src/testdir/test_join.vim Patch 8.2.0019 问题: Cannot get number of lines of another buffer. 解决方案: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto, closes #5370) 文件: src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim, runtime/doc/eval.txt Patch 8.2.0020 问题: Mouse clicks in the command line not tested. 解决方案: Add tests. (Dominique Pellé, closes #5366) 文件: src/testdir/test_termcodes.vim Patch 8.2.0021 问题: Timer test fails too often on Travis with macOS. 解决方案: Be less strict with the time. 文件: src/testdir/test_timers.vim Patch 8.2.0022 问题: Click in popup window doesn't close it in the GUI. (Sergey Vlasov) 解决方案: When processing the selection also send a button release event. (closes #5367) 文件: src/gui.c Patch 8.2.0023 问题: Command line editing not sufficiently tested. 解决方案: Add more tests. (Dominique Pellé, closes #5374) 文件: 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 问题: Filetype Rego not recognized. 解决方案: Add *.rego. (Matt Dunford, closes #5376) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0025 问题: Repeated word in comment. 解决方案: Remove one. (Rene Nyffenegger, closes #5384) 文件: src/structs.h Patch 8.2.0026 问题: Still some /* */ comments. 解决方案: Convert to // comments. 文件: src/message.c, src/message_test.c, src/misc1.c, src/misc2.c, src/move.c Patch 8.2.0027 问题: Still some /* */ comments. 解决方案: Convert to // comments. 文件: src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c, src/version.c Patch 8.2.0028 问题: Searchpairpos() is not tested. 解决方案: Add tests. Also improve searchpair() testing. (Dominique Pellé, closes #5388) 文件: src/testdir/test_search.vim Patch 8.2.0029 问题: MS-Windows: crash with empty job command. 解决方案: Check for NULL result. (Yasuhiro Matsumoto, closes #5390) 文件: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0030 问题: "gF" does not work on output of "verbose command". 解决方案: Recognize " line " and translations. (closes #5391) 文件: src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim Patch 8.2.0031 (after 8.2.0029) 问题: MS-Windows: test for empty job fails 解决方案: Check for error message, make it also fail on Unix. 文件: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0032 (after 8.2.0031) 问题: MS-Windows: test for blank job fails 解决方案: Check before escaping. 文件: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0033 问题: Crash when make_extmatch() runs out of memory. 解决方案: Check for NULL. (Dominique Pellé, closes #5392) 文件: src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.0034 问题: Missing check for out of memory. 解决方案: Check for NULL after vim_strsave(). (Dominique Pellé, closes #5393) 文件: src/filepath.c Patch 8.2.0035 问题: Saving and restoring called_emsg is clumsy. 解决方案: Count the number of error messages. 文件: 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 问题: Not enough test coverage for match functions. 解决方案: Add a few more test cases. (Dominique Pellé, closes #5394) Add error number. 文件: src/testdir/test_match.vim Patch 8.2.0037 问题: Missing renamed message. 解决方案: Now really add the error number. 文件: src/highlight.c Patch 8.2.0038 问题: Spell suggestions insufficiently tested. 解决方案: Add spell suggestion tests. (Dominique Pellé, closes #5398) 文件: src/testdir/test_spell.vim Patch 8.2.0039 问题: Memory access error when "z=" has no suggestions. 解决方案: Check for negative index. 文件: src/testdir/test_spell.vim, src/spellsuggest.c Patch 8.2.0040 问题: Timers test is still flaky on Travis for Mac. 解决方案: Run separately instead of as part of test_alot. 文件: src/testdir/Make_all.mak, src/testdir/test_alot.vim Patch 8.2.0041 问题: Leaking memory when selecting spell suggestion. 解决方案: Free previous value at the right time. 文件: src/spellsuggest.c Patch 8.2.0042 问题: Clearing funccal values twice. 解决方案: Remove clearing individual fields. 文件: src/userfunc.c Patch 8.2.0043 问题: Timers test is still flaky on Travis for Mac. 解决方案: Increase maximum expected time. 文件: src/testdir/test_timers.vim Patch 8.2.0044 问题: Expression type is used inconsistently. 解决方案: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename "TYPE_" to "ETYPE_" to avoid confusion. 文件: src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c Patch 8.2.0045 (after 8.2.0044) 问题: Script test fails. 解决方案: For numbers "is" and "isnot" work like "==" and "!=". 文件: src/eval.c Patch 8.2.0046 问题: Tests for spell suggestions are slow. 解决方案: Use shorter words. Test with latin1 and utf-8 to cover more code. (Dominique Pellé, closes #5399) 文件: src/testdir/test_spell.vim Patch 8.2.0047 问题: Cannot skip tests for specific MS-Windows platform. 解决方案: Add windowsversion(). 文件: 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 问题: Another timers test is flaky on Travis for Mac. 解决方案: Increase maximum expected time. 文件: src/testdir/test_timers.vim Patch 8.2.0049 问题: Command line completion not fully tested. 解决方案: Add more test cases. Make help sorting stable. (Dominique Pellé, closes #5402) 文件: 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 问题: After deleting a file mark it is still in viminfo. 解决方案: 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) 文件: src/mark.c, src/testdir/test_marks.vim, src/testdir/test_viminfo.vim, src/viminfo.c Patch 8.2.0051 (after 8.2.0049) 问题: Command line completion test skipped. (Christian Brabandt) 解决方案: Invert condition. 文件: src/testdir/test_cmdline.vim Patch 8.2.0052 问题: More-prompt not properly tested. 解决方案: Add a test case. (Dominique Pellé, closes #5404) 文件: src/testdir/test_messages.vim Patch 8.2.0053 问题: windowsversion() does not always return the right value. 解决方案: Add a compatibility section in the manifest. (Ken Takata, closes #5407) 文件: src/gvim.exe.mnf Patch 8.2.0054 问题: :diffget and :diffput don't have good completion. 解决方案: Add proper completion. (Dominique Pellé, closes #5409) 文件: 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 问题: Cannot use ":gui" in vimrc with VIMDLL enabled. 解决方案: Change the logic, check "gui.starting". (Ken Takata, closes #5408) 文件: src/gui.c Patch 8.2.0056 问题: Execution stack is incomplete and inefficient. 解决方案: Introduce a proper execution stack and use it instead of sourcing_name/sourcing_lnum. Create a string only when used. 文件: 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) 问题: Cannot build with small features. 解决方案: Add #ifdefs. 文件: src/scriptfile.c Patch 8.2.0058 问题: Running tests changes ~/.viminfo. 解决方案: Make 'viminfo' empty when summarizing tests results. (closes #5414) 文件: src/testdir/summarize.vim Patch 8.2.0059 问题: Compiler warnings for unused variables in small build. (Tony Mechelynck) 解决方案: Add #ifdef. 文件: src/scriptfile.c Patch 8.2.0060 问题: Message test only runs with one encoding. (Dominique Pellé) 解决方案: Run the test with "utf-8" and "latin1". Fix underflow. (related to #5410) 文件: src/message_test.c, src/message.c Patch 8.2.0061 问题: The execute stack can grow big and never shrinks. 解决方案: Reduce the size in garbage collect. 文件: src/eval.c Patch 8.2.0062 问题: Memory test is flaky on FreeBSD. 解决方案: Add a short sleep before getting the first size. 文件: src/testdir/test_memory_usage.vim Patch 8.2.0063 问题: Wrong size argument to vim_snprintf(). (Dominique Pellé) 解决方案: Reduce the size by the length. (related to #5410) 文件: src/ops.c Patch 8.2.0064 问题: Diffmode completion doesn't use per-window setting. 解决方案: Check if a window is in diff mode. (Dominique Pellé, closes #5419) 文件: src/buffer.c, src/testdir/test_diffmode.vim Patch 8.2.0065 问题: Amiga and alikes: autoopen only used on Amiga OS4. 解决方案: Adjust #ifdefs. (Ola Söder, closes #5413) 文件: src/os_amiga.c Patch 8.2.0066 问题: Some corners of vim_snprintf() are not tested. 解决方案: Add a test in C. (Dominique Pellé, closes #5422) 文件: src/message_test.c Patch 8.2.0067 问题: ERROR_UNKNOWN clashes on some systems. 解决方案: Rename ERROR_ to FCERR_. (Ola Söder, closes #5415) 文件: src/evalfunc.c, src/userfunc.c, src/vim.h Patch 8.2.0068 问题: Crash when using Python 3 with "utf32" encoding. (Dominique Pellé) 解决方案: Use "utf-8" whenever enc_utf8 is set. (closes #5423) 文件: src/testdir/test_python3.vim, src/if_py_both.h Patch 8.2.0069 问题: ETYPE_ is used for two different enums. 解决方案: Rename one to use EXPR_. 文件: src/structs.h, src/eval.c, src/debugger.c Patch 8.2.0070 问题: Crash when using Python 3 with "debug" encoding. (Dominique Pellé) 解决方案: Use "euc-jp" whenever enc_dbcs is set. 文件: src/testdir/test_python3.vim, src/if_py_both.h Patch 8.2.0071 问题: Memory test often fails on Cirrus CI. 解决方案: Allow for more tolerance in the upper limit. Remove sleep. 文件: src/testdir/test_memory_usage.vim Patch 8.2.0072 (after 8.2.0071) 问题: Memory test still fails on Cirrus CI. 解决方案: Allow for a tiny bit more tolerance in the upper limit. 文件: src/testdir/test_memory_usage.vim Patch 8.2.0073 问题: Initializing globals with COMMA is clumsy. 解决方案: Use INIT2(), INIT3(), etc. 文件: src/vim.h, src/globals.h Patch 8.2.0074 问题: Python 3 unicode test sometimes fails. 解决方案: Make 'termencoding' empty. Correct number of error message. 文件: src/change.c, runtime/doc/options.txt, runtime/doc/message.txt, src/testdir/test_python3.vim Patch 8.2.0075 问题: Python 3 unicode test still sometimes fails. 解决方案: Skip the test when 'termencoding' is not empty. 文件: src/testdir/test_python3.vim Patch 8.2.0076 问题: Python 3 unicode test fails on MS-Windows. 解决方案: Do not set 'encoding' to "debug" on MS-Windows. 文件: src/testdir/test_python3.vim Patch 8.2.0077 问题: settagstack() cannot truncate at current index. 解决方案: Add the "t" action. (Yegappan Lakshmanan, closes #5417) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.0078 问题: Expanding <sfile> works differently the second time. 解决方案: Keep the expanded name when redefining a function. (closes #5425) 文件: src/testdir/test_vimscript.vim, src/userfunc.c Patch 8.2.0079 问题: Python 3 unicode test still fails on MS-Windows. 解决方案: Do not set 'encoding' to "euc-tw" on MS-Windows. 文件: src/testdir/test_python3.vim Patch 8.2.0080 问题: Globals using INIT4() are not in the tags file. 解决方案: Adjust the tags command. 文件: src/configure.ac, src/auto/configure Patch 8.2.0081 问题: MS-Windows also need the change to support INIT4(). 解决方案: Add the ctags arguments. (Ken Takata) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0082 问题: When reusing a buffer listeners are not cleared. (Axel Forsman) 解决方案: Clear listeners when reusing a buffer. (closes #5431) 文件: src/testdir/test_listener.vim, src/buffer.c Patch 8.2.0083 问题: Text properties wrong when tabs and spaces are exchanged. 解决方案: Take text properties into account. (Nobuhiro Takasaki, closes #5427) 文件: src/edit.c, src/testdir/test_textprop.vim Patch 8.2.0084 问题: Complete item "user_data" can only be a string. 解决方案: Accept any type of variable. (closes #5412) 文件: 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 问题: Dead code in builtin functions. 解决方案: Clean up the code. 文件: src/evalvars.c, src/sound.c, src/textprop.c Patch 8.2.0086 (after 8.2.0084) 问题: Build error for small version. (Tony Mechelynck) 解决方案: Only use "user_data" with the +eval feature. Remove unused variable. 文件: src/insexpand.c, src/dict.c Patch 8.2.0087 问题: Crash in command line expansion when out of memory. 解决方案: Check for NULL pointer. Also make ExpandGeneric() static. (Dominique Pellé, closes #5437) 文件: src/cmdexpand.c, src/proto/cmdexpand.pro Patch 8.2.0088 问题: Insufficient tests for tags; bug in using extra tag field when using an ex command to position the cursor. 解决方案: Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439) 文件: 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 问题: Crash when running out of memory in :setfiletype completion. 解决方案: Do not allocate memory. (Dominique Pellé, closes #5438) 文件: src/cmdexpand.c Patch 8.2.0090 问题: Generated files show up in git status. 解决方案: Ignore a few more files. 文件: .gitignore Patch 8.2.0091 问题: Compiler warnings for size_t / int types. 解决方案: Change type to size_t. (Mike Williams) 文件: src/scriptfile.c Patch 8.2.0092 问题: Tags functionality insufficiently tested. 解决方案: Add more tags tests. (Yegappan Lakshmanan, closes #5446) 文件: src/testdir/test_tagjump.vim Patch 8.2.0093 问题: win_splitmove() can make Vim hang. 解决方案: Check windows exists in the current tab page. (closes #5444) 文件: src/testdir/test_window_cmd.vim, src/evalwindow.c Patch 8.2.0094 问题: MS-Windows: cannot build with Strawberry Perl 5.30. 解决方案: Define __builtin_expect() as a workaround. (Ken Takata, closes #5267) 文件: src/if_perl.xs Patch 8.2.0095 问题: Cannot specify exit code for :cquit. 解决方案: Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442) 文件: runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_quickfix.vim Patch 8.2.0096 问题: Cannot create tiny popup window in last column. (Daniel Steinberg) 解决方案: Remove position limit. (closes #5447) 文件: 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 问题: Crash with autocommand and spellfile. (Tim Pope) 解决方案: Do not pop exestack when not pushed. (closes #5450) 文件: src/testdir/test_autocmd.vim, src/spellfile.c Patch 8.2.0098 问题: Exe stack length can be wrong without being detected. 解决方案: Add a check when ABORT_ON_INTERNAL_ERROR is defined. 文件: 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 问题: Use of NULL pointer when out of memory. 解决方案: Check for NULL pointer. (Dominique Pellé, closes #5449) 文件: src/cmdexpand.c Patch 8.2.0100 问题: Macros for Ruby are too complicated. 解决方案: Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata, closes #5452) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/configure.ac, src/if_ruby.c Patch 8.2.0101 问题: Crash when passing null object to ":echomsg". 解决方案: Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460) 文件: src/eval.c, src/testdir/test_messages.vim Patch 8.2.0102 问题: Messages test fails in small version. 解决方案: Only use test_null_job() when available. 文件: src/testdir/test_messages.vim Patch 8.2.0103 问题: Using null object with execute() has strange effects. 解决方案: Give an error message for Job and Channel. 文件: src/testdir/test_execute_func.vim, src/globals.h, src/eval.c, src/evalfunc.c Patch 8.2.0104 问题: Using channel or job with ":execute" has strange effects. 解决方案: Give an error message for Job and Channel. 文件: src/testdir/test_eval_stuff.vim, src/eval.c Patch 8.2.0105 问题: Vim license not easy to find on github. 解决方案: Add a separate LICENCE file. (closes #5458) 文件: LICENSE, Filelist Patch 8.2.0106 问题: Printf formats are not exactly right. 解决方案: Adjust signed/unsigned conversions. (Frazer Clews, closes #5456) 文件: runtime/tools/ccfilter.c, src/libvterm/src/parser.c, src/libvterm/src/pen.c, src/ui.c Patch 8.2.0107 问题: Hgignore is out of sync from gitignore. 解决方案: Add lines to hgignore. (Ken Takata) 文件: .hgignore Patch 8.2.0108 问题: When sign text is changed a manual redraw is needed. (Pontus Lietzler) 解决方案: Redraw automatically. (closes #5455) 文件: 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 问题: Corrupted text properties when expanding spaces. 解决方案: Reallocate the line. (Nobuhiro Takasaki, closes #5457) 文件: src/edit.c, src/testdir/test_textprop.vim Patch 8.2.0110 问题: prop_find() is not implemented. 解决方案: Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970) 文件: src/evalfunc.c, src/proto/textprop.pro, src/testdir/test_textprop.vim, src/textprop.c, runtime/doc/textprop.txt Patch 8.2.0111 问题: VAR_SPECIAL is also used for booleans. 解决方案: Add VAR_BOOL for better type checking. 文件: 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 问题: Illegal memory access when using 'cindent'. 解决方案: Check for NUL byte. (Dominique Pellé, closes #5470) 文件: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.0113 (after 8.2.0095) 问题: "make cmdidxs" fails. 解决方案: Allow address for ":cquit". Add --not-a-term to avoid a delay. 文件: src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0114 问题: Info about sourced scripts is scattered. 解决方案: Use scriptitem_T for info about a script, including s: variables. Drop ga_scripts. 文件: src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c Patch 8.2.0115 问题: Byte2line() does not work correctly with text properties. (Billie Cleek) 解决方案: Take the bytes of the text properties into account. (closes #5334) 文件: src/testdir/test_textprop.vim, src/memline.c Patch 8.2.0116 问题: BufEnter autocmd not triggered on ":tab drop". (Andy Stewart) 解决方案: Decrement autocmd_no_enter for the last file. (closes #1660, closes #5473) 文件: src/arglist.c, src/testdir/test_tabpage.vim Patch 8.2.0117 问题: Crash when using gettabwinvar() with invalid arguments. (Yilin Yang) 解决方案: Use "curtab" if "tp" is NULL. (closes #5475) 文件: src/evalwindow.c, src/testdir/test_getvar.vim Patch 8.2.0118 问题: Crash when cycling to buffers involving popup window . 解决方案: Do not decrement buffer reference count. 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_infopopup_7.dump Patch 8.2.0119 问题: Message test fails on some platforms. (Elimar Riesebieter) 解决方案: Add type cast to vim_snprintf() argument. (Dominique Pellé) 文件: src/message_test.c Patch 8.2.0120 问题: virtcol() does not check arguments to be valid, which may lead to a crash. 解决方案: Check the column to be valid. Do not decrement MAXCOL. (closes #5480) 文件: src/evalfunc.c, src/testdir/test_marks.vim Patch 8.2.0121 问题: filter() and map() on blob don't work. 解决方案: Correct the code. (closes #5483) 文件: src/list.c, src/testdir/test_blob.vim Patch 8.2.0122 问题: Readme files still mention MS-DOS. 解决方案: Update readme files. (Ken Takata, closes #5486) 文件: 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 问题: complete_info() does not work when CompleteDone is triggered. 解决方案: Trigger CompleteDone before clearing the info. 文件: src/insexpand.c, runtime/doc/autocmd.txt, src/testdir/test_ins_complete.vim Patch 8.2.0124 问题: Compiler warnings for variable types. 解决方案: Change type, add type cast. (Mike Williams) 文件: src/memline.c Patch 8.2.0125 问题: :mode no longer works for any system. 解决方案: Always give an error message. 文件: 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) 问题: Textprop test fails. 解决方案: Fix sign in computation. 文件: src/memline.c Patch 8.2.0127 问题: Some buffer commands work in a popup window. 解决方案: Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494) 文件: src/ex_docmd.c, src/testdir/test_popupwin.vim Patch 8.2.0128 问题: Cannot list options one per line. 解决方案: Use ":set!" to list one option per line. 文件: 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 问题: MS-Windows installer doesn't use Turkish translations. 解决方案: Enable the Turkish translations and fix a few. (Emir Sarı, closes #5493) 文件: nsis/gvim.nsi, nsis/lang/turkish.nsi Patch 8.2.0130 问题: Python3 ranges are not tested. 解决方案: Add test. (Dominique Pellé, closes #5498) 文件: src/testdir/test_python3.vim Patch 8.2.0131 问题: Command line is not cleared when switching tabs and the command line height differs. 解决方案: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino, closes #5495) 文件: src/testdir/dumps/Test_cmdlineclear_tabenter.dump, src/testdir/test_cmdline.vim, src/window.c Patch 8.2.0132 问题: Script may be re-used when deleting and creating a new one. 解决方案: When the inode matches, also check the file name. 文件: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.0133 问题: Invalid memory access with search command. 解决方案: When :normal runs out of characters in bracketed paste mode break out of the loop.(closes #5511) 文件: src/testdir/test_search.vim, src/edit.c Patch 8.2.0134 问题: Some map functionality not covered by tests. 解决方案: Add tests. (Yegappan Lakshmanan, closes #5504) 文件: src/testdir/test_maparg.vim, src/testdir/test_mapping.vim Patch 8.2.0135 (after 8.2.0133) 问题: Bracketed paste can still cause invalid memory access. (Dominique Pellé) 解决方案: Check for NULL pointer. 文件: src/edit.c, src/testdir/test_search.vim Patch 8.2.0136 问题: Stray ch_logfile() call. 解决方案: Remove it. (closes #5503) 文件: src/testdir/test_source.vim Patch 8.2.0137 问题: Crash when using win_execute() from a new tab. 解决方案: Set the tp_*win pointers. (Ozaki Kiichi, closes #5512) 文件: src/testdir/test_winbuf_close.vim, src/window.c Patch 8.2.0138 问题: Memory leak when starting a job fails. 解决方案: Free the list of arguments. (Ozaki Kiichi, closes #5510) 文件: src/channel.c, src/testdir/test_channel.vim Patch 8.2.0139 问题: MS-Windows: default for IME is inconsistent. 解决方案: Also make IME default enabled with MVC. (Ken Takata, closes #5508) 文件: src/Make_mvc.mak Patch 8.2.0140 问题: CI does not test building doc tags. 解决方案: Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi, closes #5513) 文件: .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 问题: No swift filetype detection. 解决方案: Add swift, swiftgyb and sil. (Emir Sarı, closes #5517) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0142 问题: Possible to enter popup window with CTRL-W p. (John Devin) 解决方案: Check entered window is not a popup window. (closes #5515) 文件: 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 问题: Coverity warning for possible use of NULL pointer. 解决方案: Check argv is not NULL. 文件: src/channel.c Patch 8.2.0144 问题: Some mapping code is not fully tested. 解决方案: Add more test cases. (Yegappan Lakshmanan, closes #5519) 文件: src/testdir/test_langmap.vim, src/testdir/test_maparg.vim, src/testdir/test_mapping.vim Patch 8.2.0145 问题: Using #error for compilation errors should be OK now. 解决方案: Use #error. (Ken Takata, closes #5299) 文件: src/blowfish.c, src/vim.h Patch 8.2.0146 问题: Wrong indent when 'showbreak' and 'breakindent' are set and 'briopt' includes "sbr". 解决方案: Reset "need_showbreak" where needed. (Ken Takata, closes #5523) 文件: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0147 问题: Block Visual mode operators not correct when 'linebreak' set. 解决方案: Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524) 文件: src/ops.c, src/testdir/test_listlbr.vim Patch 8.2.0148 问题: Mapping related function in wrong source file. 解决方案: Move the function. Add a few more test cases. (Yegappan Lakshmanan, closes #5528) 文件: src/map.c, src/proto/term.pro, src/term.c, src/testdir/test_mapping.vim Patch 8.2.0149 问题: Maintaining a Vim9 branch separately is more work. 解决方案: Merge the Vim9 script changes. 文件: 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 问题: Cannot define python function when using :execute. (Yasuhiro Matsumoto) 解决方案: Do not recognize "def" inside "function. 文件: src/testdir/test_vim9_script.vim, src/userfunc.c Patch 8.2.0151 问题: Detecting a script was already sourced is unreliable. 解决方案: Do not use the inode number. 文件: src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.0152 问题: Restoring ctrl_x_mode is not needed. 解决方案: Remove restoring the old value, it's changed again soon. 文件: src/insexpand.c Patch 8.2.0153 问题: Warning shows when listing version info. 解决方案: Use "-u NONE". (Ozaki Kiichi, closes #5534) 文件: .travis.yml Patch 8.2.0154 问题: Reallocating the list of scripts is inefficient. 解决方案: 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. 文件: 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 问题: Warnings from MinGW compiler. (John Marriott) Json test fails when building without +float feature. 解决方案: Init variables. Fix Json parsing. Skip a few tests that require the +float feature. 文件: 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 问题: Various typos in source files and tests. 解决方案: Fix the typos. (Emir Sarı, closes #5532) 文件: 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 问题: Vim9 script files not in list of distributed files. 解决方案: Add the entries. 文件: Filelist Patch 8.2.0158 (after 8.2.0123) 问题: Triggering CompleteDone earlier is not backwards compatible. (Daniel Hahler) 解决方案: Add CompleteDonePre instead. 文件: src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c, src/vim.h, src/testdir/test_ins_complete.vim Patch 8.2.0159 问题: Non-materialized range() list causes problems. (Fujiwara Takuya) 解决方案: Materialize the list where needed. 文件: 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) 问题: Range test fails. 解决方案: Include change in list code. (#5541) 文件: src/list.c Patch 8.2.0161 问题: Not recognizing .gv file as dot filetype. 解决方案: Add *.gv to dot pattern. (closes #5544) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0162 问题: Balloon test fails in the GUI. 解决方案: Skip test in the GUI. 文件: src/testdir/test_functions.vim Patch 8.2.0163 问题: Test hangs on MS-Windows console. 解决方案: use feedkeys() instead of test_feedinput(). (Ken Takata) 文件: src/testdir/test_functions.vim, src/testing.c Patch 8.2.0164 问题: Test_alot takes too long. 解决方案: Run several tests individually. 文件: src/testdir/test_alot.vim, src/testdir/Make_all.mak Patch 8.2.0165 问题: Coverity warning for using NULL pointer. 解决方案: Add missing "else". 文件: src/vim9compile.c Patch 8.2.0166 问题: Coverity warning for using uninitialized variable. 解决方案: Check for failure. 文件: src/vim9execute.c Patch 8.2.0167 问题: Coverity warning for ignoring return value. 解决方案: Check the return value and jump if failed. 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0168 问题: Coverity warning for assigning NULL to an option. 解决方案: Use empty string instead of NULL. 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0169 问题: Coverity warning for dead code. 解决方案: Check if inside try-finally. 文件: src/vim9execute.c Patch 8.2.0170 问题: Coverity warning for ignoring return value. 解决方案: Check the return value and return if failed. 文件: src/vim9compile.c Patch 8.2.0171 问题: Coverity warning for using uninitialized buffer. 解决方案: Check the skip flag. 文件: src/userfunc.c Patch 8.2.0172 问题: Coverity warning for not restoring character. 解决方案: Restore the character also in case of failure. 文件: src/vim9script.c Patch 8.2.0173 问题: Build fails with old compiler. 解决方案: Do not use anonymous unions. (John Marriott) 文件: 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 问题: Various commands not completely tested. 解决方案: Add more test cases. (Yegappan Lakshmanan, closes #5551) 文件: 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 问题: Crash when removing list element in map(). 解决方案: Lock the list. (closes #2652) 文件: src/testdir/test_filter_map.vim, src/list.c Patch 8.2.0176 问题: Generating os headers does not work for Swedish. 解决方案: Set the locale to C. (Christian Brabandt, closes #5258) 文件: src/osdef.sh Patch 8.2.0177 问题: Memory leak in get_tags(). 解决方案: Free matches when finding a pseudo-tag line. (Dominique Pellé, closes #5553) 文件: src/tag.c Patch 8.2.0178 问题: With VTP the screen may not be restored properly. 解决方案: Add another set of saved RGB values. (Nobuhiro Takasaki, closes #5548) 文件: src/os_win32.c Patch 8.2.0179 问题: Still a few places where range() does not work. 解决方案: Fix using range() causing problems. 文件: 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 问题: Test for wrapmargin fails if terminal is not 80 columns. 解决方案: Vertical split the window. (Ken Takata, closes #5554) 文件: src/testdir/test_textformat.vim Patch 8.2.0181 问题: Problems parsing :term arguments. 解决方案: Improve parsing, fix memory leak, add tests. (Ozaki Kiichi, closes #5536) 文件: src/channel.c, src/proto/channel.pro, src/structs.h, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0182 问题: Min() and max() materialize a range() list. 解决方案: Compute the result without materializing the list. (#5541) 文件: src/evalfunc.c Patch 8.2.0183 问题: Tests fail when the float feature is disabled. 解决方案: Skip tests that don't work without float support. 文件: 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 问题: Blob test fails. 解决方案: Check for different error when float feature is missing. 文件: src/testdir/test_blob.vim Patch 8.2.0185 问题: Vim9 script: cannot use "if has()" to skip lines. 解决方案: Evaluate constant expression at runtime. 文件: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0186 问题: A couple of tests may fail when features are missing. 解决方案: Check for features. (Dominique Pellé, closes #5561) 文件: src/testdir/test_functions.vim, src/testdir/test_highlight.vim Patch 8.2.0187 问题: Redundant code. 解决方案: Remove unused assignments. (Dominique Pellé, closes #5557) 文件: src/vim9compile.c Patch 8.2.0188 问题: Check commands don't work well with Vim9 script. 解决方案: Improve constant expression handling. 文件: src/vim9compile.c, src/testdir/check.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0189 问题: cd() with NULL argument crashes. 解决方案: Check for NULL. (Ken Takata, closes #5558) 文件: src/testdir/test_cd.vim, src/ex_docmd.c Patch 8.2.0190 问题: Kotlin files are not recognized. 解决方案: Detect Kotlin files. (Alkeryn, closes #5560) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0191 问题: Cannot put a terminal in a popup window. 解决方案: Allow opening a terminal in a popup window. It will always have keyboard focus until closed. 文件: 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) 问题: Build failure without +terminal feature. 解决方案: Add #ifdefs. 文件: src/popupwin.c Patch 8.2.0193 (after 8.2.0191) 问题: Still build failure without +terminal feature. 解决方案: Add more #ifdefs. 文件: src/macros.h Patch 8.2.0194 (after 8.2.0193) 问题: Some commands can cause problems in terminal popup. 解决方案: Disallow more commands. 文件: 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 问题: Some tests fail when run in the GUI. 解决方案: Make sure the window width is enough. In the GUI run terminal Vim in the terminal, if possible. 文件: src/testdir/test_highlight.vim, src/testdir/check.vim, src/testdir/test_terminal.vim Patch 8.2.0196 问题: Blocking commands for a finished job in a popup window. 解决方案: Do not block commands if the job has finished. Adjust test. 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/window.c, src/terminal.c, src/proto/terminal.pro Patch 8.2.0197 问题: Some Ex commands not sufficiently tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5565) 文件: 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 问题: No tests for y/n prompt. 解决方案: Add tests. (Dominique Pellé, closes #5564) 文件: src/testdir/test_messages.vim Patch 8.2.0199 问题: Vim9 script commands not sufficiently tested. 解决方案: Add more tests. Fix script-local function use. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/userfunc.c Patch 8.2.0200 问题: Vim9 script commands not sufficiently tested. 解决方案: Add more tests. Fix storing global variable. Make script variables work. 文件: 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 问题: Cannot assign to an imported variable. 解决方案: Make it work. 文件: src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0202 问题: When 'lazyredraw' is set the window title may not be updated. 解决方案: Set "do_redraw" before entering the main loop. (Jason Franklin) 文件: src/main.c Patch 8.2.0203 问题: :helptags and some other functionality not tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5567) 文件: 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 问题: Crash when using winnr('j') in a popup window. 解决方案: Do not search for neighbors in a popup window. (closes #5568) 文件: src/window.c, src/testdir/test_popupwin.vim, src/evalwindow.c Patch 8.2.0205 问题: Error code E899 used twice. 解决方案: Use E863 for the terminal in popup error. 文件: src/popupwin.c Patch 8.2.0206 问题: Calling Vim9 function using default argument fails. 解决方案: Give an appropriate error. (closes #5572) 文件: src/testdir/test_vim9_script.vim, src/vim9compile.c, src/vim9execute.c Patch 8.2.0207 问题: Crash when missing member type on list argument. 解决方案: Check for invalid type. (closes #5572) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0208 问题: Fnamemodify() does not apply ":~" when followed by ":.". 解决方案: Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro Matsumoto, closes #5577) 文件: runtime/doc/cmdline.txt, src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0209 问题: Function a bit far away from where it's used. 解决方案: Move function close to where it's used. (Ken Takata, closes #5569) 文件: src/fileio.c, src/filepath.c Patch 8.2.0210 问题: Coverity complains about uninitialized field. 解决方案: Initialize the field. 文件: src/vim9compile.c Patch 8.2.0211 问题: Test for ANSI colors fails without an "ls" command. 解决方案: Use "dir". (Ken Takata, closes #5582) 文件: src/testdir/test_functions.vim Patch 8.2.0212 问题: Missing search/substitute pattern hardly tested. 解决方案: Add test_clear_search_pat() and tests. (Yegappan Lakshmanan, closes #5579) 文件: 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 问题: Configure does not recognize gcc 10.0 and later. 解决方案: Adjust the pattern matching the version number. (Sergei Trofimovich, closes #5580) 文件: src/configure.ac, src/auto/configure Patch 8.2.0214 问题: A popup window with a terminal can be made hidden. 解决方案: Disallow hiding a terminal popup. 文件: src/testdir/test_terminal.vim, src/popupwin.c, src/testdir/dumps/Test_terminal_popup_4.dump Patch 8.2.0215 (after 8.2.0208) 问题: Wrong file name shortening. (Ingo Karkat) 解决方案: Better check for path separator. (Yasuhiro Matsumoto, closes #5583, closes #5584) 文件: src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0216 问题: Several Vim9 instructions are not tested. 解决方案: Add more tests. Fix :disassemble output. Make catch with pattern work. 文件: src/testdir/test_vim9_script.vim, src/vim9execute.c, src/vim9compile.c Patch 8.2.0217 (after 8.2.0214) 问题: Terminal test fails on Mac. 解决方案: Add a short wait. 文件: src/testdir/test_terminal.vim Patch 8.2.0218 问题: Several Vim9 instructions are not tested. 解决方案: Add more tests. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0219 (after 8.2.0217) 问题: Terminal test still fails on Mac. 解决方案: Skip part of the test on Mac. 文件: src/testdir/test_terminal.vim Patch 8.2.0220 问题: Terminal test did pass on Mac. 解决方案: Remove the skip again. 文件: src/testdir/test_terminal.vim Patch 8.2.0221 问题: No test for Vim9 += and ..=. 解决方案: Add tests. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0222 问题: Vim9: optional function arguments don't work yet. 解决方案: Implement optional function arguments. 文件: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.0223 问题: Some instructions not yet tested. 解决方案: Disassemble more instructions. Move tests to a new file. Compile call to s:function(). 文件: 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 问题: compiling :elseif not tested yet. 解决方案: Add test for :elseif. Fix generating jumps. 文件: src/testdir/test_vim9_script.vim, src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0225 问题: compiling lambda not tested yet. 解决方案: Add test for lambda and funcref. Drop unused instruction arg. 文件: src/testdir/test_vim9_disassemble.vim, src/vim9.h, src/vim9execute.c Patch 8.2.0226 问题: Compiling for loop not tested. 解决方案: Add a test. Make variable initialization work for more types. 文件: src/testdir/test_vim9_disassemble.vim, src/vim9compile.c Patch 8.2.0227 问题: Compiling a few instructions not tested. 解决方案: Add more test cases. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0228 问题: Configure does not recognize gcc version on BSD. 解决方案: Do not use "\+" in the pattern matching the version number. (Ozaki Kiichi, closes #5590) 文件: src/configure.ac, src/auto/configure Patch 8.2.0229 问题: Compare instructions not tested. 解决方案: Add test cases. Fix disassemble with line continuation. 文件: src/testdir/test_vim9_disassemble.vim, src/vim9execute.c, src/vim9compile.c Patch 8.2.0230 问题: Terminal popup test is flaky. 解决方案: Increase wait time a bit. 文件: src/testdir/test_terminal.vim Patch 8.2.0231 问题: Silent system command may clear the screen. 解决方案: Do not clear the screen in t_te. 文件: src/term.c Patch 8.2.0232 问题: The :compiler command causes a crash. (Daniel Steinberg) 解决方案: Do not use the script index if it isn't set. 文件: src/ex_docmd.c, src/testdir/test_compiler.vim Patch 8.2.0233 问题: Crash when using garbagecollect() in between rand(). 解决方案: Redesign the rand() and srand() implementation. (Yasuhiro Matsumoto, closes #5587, closes #5588) 文件: src/evalfunc.c, src/testdir/test_random.vim, runtime/doc/testing.txt, runtime/doc/eval.txt Patch 8.2.0234 问题: Message test fails on SunOS. 解决方案: Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595) 文件: src/message_test.c Patch 8.2.0235 问题: Draw error when an empty group is removed from 'statusline'. 解决方案: Do not use highlighting from a removed group. 文件: src/buffer.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_1.dump Patch 8.2.0236 问题: MS-Windows uninstall doesn't delete vimtutor.bat. 解决方案: Change directory before deletion. (Ken Takata, closes #5603) 文件: src/uninstall.c Patch 8.2.0237 问题: Crash when setting 'wincolor' on finished terminal window. (Bakudankun) 解决方案: Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes #5607, closes #5610) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0238 问题: MS-Windows: job_stop() results in exit value zero. 解决方案: Call TerminateJobObject() with -1 instead of 0. (Yasuhiro Matsumoto, closes #5150, closes #5614) 文件: src/os_win32.c, src/testdir/test_channel.vim Patch 8.2.0239 问题: MS-Windows: 'env' job option does not override existing environment variables. (Tim Pope) 解决方案: Set the environment variables later. (Yasuhiro Matsumoto, closes #5485, closes #5608) 文件: src/os_win32.c, src/testdir/test_channel.vim Patch 8.2.0240 问题: Using memory after it was freed. (Dominique Pellé) 解决方案: Do not mix conversion buffer with other buffer. 文件: src/viminfo.c, src/vim.h Patch 8.2.0241 问题: Crash when setting 'buftype' to "quickfix". 解决方案: Check that error list is not NULL. (closes #5613) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0242 问题: Preview popup window test fails with long directory name. (Jakub Kądziołka) 解决方案: Use "silent cd". (closes #5615) 文件: src/testdir/test_popupwin.vim Patch 8.2.0243 问题: Insufficient code coverage for ex_docmd.c functions. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5618) 文件: 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 问题: Compiler warning in Lua interface. 解决方案: Add type cast. (Ken Takata, closes #5621) 文件: src/if_lua.c Patch 8.2.0245 问题: MSVC: error message if the auto directory already exists. 解决方案: Add "if not exists". (Ken Takata, closes #5620) 文件: src/Make_mvc.mak Patch 8.2.0246 问题: MSVC: deprecation warnings with Ruby. 解决方案: Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata, closes #5622) 文件: src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/vim.h, src/vimio.h Patch 8.2.0247 问题: Misleading comment in NSIS installer script. 解决方案: Negate the meaning of the comment. (Ken Takata, closes #5627) 文件: nsis/gvim.nsi Patch 8.2.0248 问题: MS-Windows: dealing with deprecation is too complicated. 解决方案: Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken Takata, closes #5626) 文件: src/Make_mvc.mak, src/dosinst.h, src/vim.h, src/vimio.h, src/winclip.c, Filelist Patch 8.2.0249 问题: MS-Windows: various warnings. 解决方案: Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_. (Ken Takata, closes #5625) 文件: src/GvimExt/Makefile, src/Make_mvc.mak Patch 8.2.0250 问题: test_clear_search_pat() is unused. 解决方案: Remove the function. (Yegappan Lakshmanan, closes #5624) 文件: 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 问题: A couple of function return types can be more specific. 解决方案: Use a better return type. (Ken Takata, closes #5629) 文件: src/evalfunc.c, src/globals.h Patch 8.2.0252 问题: Windows compiler warns for using size_t. 解决方案: Change to int. (Mike Williams) 文件: src/vim9compile.c Patch 8.2.0253 问题: Crash when using :disassemble without argument. (Dhiraj Mishra) 解决方案: Check for missing argument. (Dominique Pellé, closes #5635, closes #5637) 文件: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/ex_cmds.h Patch 8.2.0254 问题: Compiler warning for checking size_t to be negative. 解决方案: Only check for zero. (Zoltan Arpadffy) 文件: src/vim9compile.c Patch 8.2.0255 问题: VMS: missing files in build. 解决方案: Add the files. (Zoltan Arpadffy) 文件: src/Make_vms.mms Patch 8.2.0256 问题: Time and timer related code is spread out. 解决方案: Move time and timer related code to a new file. (Yegappan Lakshmanan, closes #5604) 文件: 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 问题: Cannot recognize a terminal in a popup window. 解决方案: Add the win_gettype() function. 文件: 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 问题: ModifyOtherKeys cannot be temporarily disabled. 解决方案: Add echoraw() with an example for modifyOtherKeys. 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/dumps/Test_functions_echoraw.dump Patch 8.2.0259 问题: Terminal in popup test sometimes fails. 解决方案: Clear the command line. 文件: src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump Patch 8.2.0260 问题: Several lines of code are duplicated. 解决方案: Move duplicated code to a function. (Yegappan Lakshmanan, closes #5330) 文件: 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 问题: Some code not covered by tests. 解决方案: Add test cases. (Yegappan Lakshmanan, closes #5645) 文件: 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) 问题: Fileformat test fails on MS-Windows. 解决方案: Set fileformat of buffer. 文件: src/testdir/test_fileformat.vim Patch 8.2.0263 问题: A few new Vim9 messages are not localized. 解决方案: Add the gettext wrapper. (Dominique Pellé, closes #5647) 文件: src/vim9compile.c, src/vim9execute.c Patch 8.2.0264 (after 8.2.0262) 问题: Fileformat test still fails on MS-Windows. 解决方案: Set fileformat of buffer in the right place. 文件: src/testdir/test_fileformat.vim Patch 8.2.0265 问题: "eval" after "if 0" doesn't check for following command. 解决方案: Add "eval" to list of commands that check for a following command. (closes #5640) 文件: src/ex_docmd.c, src/testdir/test_expr.vim Patch 8.2.0266 问题: Terminal in popup test sometimes fails on Mac. 解决方案: Add a short delay. 文件: src/testdir/test_terminal.vim Patch 8.2.0267 问题: No check for a following command when calling a function fails. 解决方案: Also check for a following command when inside a try block. (closes #5642) 文件: src/userfunc.c, src/testdir/test_user_func.vim Patch 8.2.0268 (after 8.2.0267) 问题: Trycatch test fails. 解决方案: When calling function fails only check for following command, do not give another error. 文件: src/userfunc.c Patch 8.2.0269 问题: Vim9: operator after list index does not work. (Yasuhiro Matsumoto) 解决方案: After indexing a list change the type to the list member type. (closes #5651) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0270 问题: Some code not covered by tests. 解决方案: Add test cases. (Yegappan Lakshmanan, closes #5649) 文件: 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 问题: The "num64" feature is available everywhere and building without it causes problems. 解决方案: Graduate the "num64" feature. (James McCoy, closes #5650) 文件: 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 问题: ":helptags ALL" gives error for directories without write permission. (Matěj Cepl) 解决方案: Ignore errors for ":helptags ALL". (Ken Takata, closes #5026, closes #5652) 文件: src/ex_cmds.c, src/testdir/test_help.vim Patch 8.2.0273 问题: MS-Windows uninstall may delete wrong batch file. 解决方案: Add specific marker in the generated batch file. (Ken Takata, closes #5654) 文件: src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c Patch 8.2.0274 问题: Hang with combination of feedkeys(), Ex mode and :global. (Yegappan Lakshmanan) 解决方案: Add the pending_exmode_active flag. 文件: src/ex_docmd.c, src/globals.h, src/getchar.c, src/testdir/test_ex_mode.vim Patch 8.2.0275 问题: Some Ex code not covered by tests. 解决方案: Add test cases. (Yegappan Lakshmanan, closes #5659) 文件: 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 问题: Vim9: not allowing space before ")" in function call is too restrictive. (Ben Jackson) 解决方案: Skip space before the ")". Adjust other space checks. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0277 问题: Vim9: not all instructions covered by tests. 解决方案: Add more test cases. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0278 问题: Channel test is flaky on Mac. 解决方案: Reset variable before sending message. 文件: src/testdir/test_channel.vim Patch 8.2.0279 问题: Vim9: no test for deleted :def function. 解决方案: Add a test. Clear uf_cleared flag when redefining a function. 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0280 问题: Vim9: throw in :def function not caught higher up. 解决方案: Set "need_rethrow". 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0281 问题: 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. 解决方案: Combine the sign column and line highlight attributes. 文件: 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 问题: Vim9: setting number option not tested. 解决方案: Add more tests. Fix assigning to global variable. 文件: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/vim9execute.c Patch 8.2.0283 问题: Vim9: failing to load script var not tested. 解决方案: Add more tests. Fix using s: in old script. 文件: src/testdir/test_vim9_expr.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0284 问题: Vim9: assignment test fails. 解决方案: Avoid duplicating "s:". 文件: src/vim9compile.c Patch 8.2.0285 问题: Unused error message. Cannot create s:var. 解决方案: Remove the error message. Make assignment to s:var work. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0286 问题: Cannot use popup_close() for a terminal popup. 解决方案: Allow using popup_close(). (closes #5666) 文件: 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 问题: Vim9: return in try block not tested; catch with pattern not tested. 解决方案: Add tests. Make it work. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0288 问题: Vim9: some float and blob operators not tested. 解决方案: Add float and blob tests. Fix addition. 文件: src/testdir/test_vim9_expr.vim, src/vim9compile.c Patch 8.2.0289 问题: Vim9: :echo did not clear the rest of the line. 解决方案: Call msg_clr_eos(). (Ken Takata, closes #5668) 文件: src/vim9execute.c Patch 8.2.0290 问题: Running individual test differs from all tests. 解决方案: Pass on environment variables. (Yee Cheng Chin, closes #5672) 文件: src/testdir/Makefile, src/testdir/README.txt Patch 8.2.0291 问题: Vim9: assigning [] to list<string> doesn't work. 解决方案: Use void for empty list and dict. (Ken Takata, closes #5669) 文件: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim Patch 8.2.0292 问题: Vim9: CHECKNR and CHECKTYPE instructions not tested. 解决方案: Add tests. 文件: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0293 问题: Various Ex commands not sufficiently tested. 解决方案: Add more test cases. (Yegappan Lakshmanan, closes #5673) 文件: 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 问题: Cannot use Ex command that is also a function name. 解决方案: Recognize an Ex command by a colon prefix. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt Patch 8.2.0295 问题: Highlighting for :s wrong when using different separator. 解决方案: Use separate argument for search direction and separator. (Rob Pilling, closes #5665) 文件: 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 问题: Mixing up "long long" and __int64 may cause problems. (John Marriott) 解决方案: Pass varnumber_T to vim_snprintf(). Add v:numbersize. 文件: 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 问题: Compiler warnings for the Ruby interface. 解决方案: Undefine a few macros, fix initialization. (Ozaki Kiichi, closes #5677) 文件: src/if_ruby.c Patch 8.2.0298 问题: Vim9 script: cannot start command with a string constant. 解决方案: Recognize expression starting with '('. 文件: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt Patch 8.2.0299 问题: Vim9: ISN_STORE with argument not tested. Some cases in tv2bool() not tested. 解决方案: Add tests. Add test_unknown() and test_void(). 文件: 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 问题: Vim9: expression test fails without channel support. 解决方案: Add has('channel') check. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.0301 问题: Insufficient testing for exception handling and the "attention" prompt. 解决方案: Add test cases. (Yegappan Lakshmanan, closes #5681) 文件: src/testdir/test_swap.vim, src/testdir/test_trycatch.vim Patch 8.2.0302 问题: Setting 'term' may cause error in TermChanged autocommand. 解决方案: Use aucmd_prepbuf() to switch to the buffer where the autocommand is to be executed. (closes #5682) 文件: src/term.c, src/testdir/test_autocmd.vim Patch 8.2.0303 问题: TermChanged test fails in the GUI. 解决方案: Skip the test when running the GUI. 文件: src/testdir/test_autocmd.vim Patch 8.2.0304 问题: Terminal test if failing on some systems. 解决方案: Wait for the job to finish. (James McCoy) 文件: src/testdir/test_terminal.vim Patch 8.2.0305 问题: Relativenumber test fails on some systems. (James McCoy) 解决方案: Clear the command line. 文件: 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 问题: Vim9: :substitute(pat(repl does not work in Vim9 script. 解决方案: Remember starting with a colon. (closes #5676) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.0307 问题: Python 3 vim.eval not well tested. 解决方案: Add a test. (Dominique Pellé, closes #5680) 文件: src/testdir/test_python3.vim Patch 8.2.0308 问题: 'showbreak' does not work for a very long line. (John Little) 解决方案: Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523, closes #5684) 文件: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0309 问题: Window-local values have confusing name. 解决方案: Rename w_p_bri* to w_briopt_*. 文件: src/structs.h, src/indent.c, src/drawline.c Patch 8.2.0310 问题: Autocmd test fails on a slow system. 解决方案: Adjust the expectations. (James McCoy, closes #5685) 文件: src/testdir/test_autocmd.vim Patch 8.2.0311 问题: Vim9: insufficient script tests. 解决方案: Add tests. Free imports when re-using a script. 文件: src/testdir/test_vim9_script.vim, src/scriptfile.c Patch 8.2.0312 问题: Vim9: insufficient script tests. 解决方案: Add more tests. Make "import * as Name" work. 文件: src/testdir/test_vim9_script.vim, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c Patch 8.2.0313 问题: Vim9: insufficient script tests. 解决方案: Add tests. Make import of alphanumeric name work. 文件: src/testdir/test_vim9_script.vim, src/vim9script.c Patch 8.2.0314 问题: Short name not set for terminal buffer. 解决方案: Set the short name. (closes #5687) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0315 问题: Build failure on HP-UX system. 解决方案: Use LONG_LONG_MIN instead of LLONG_MIN. Add type casts for switch statement. (John Marriott) 文件: src/structs.h, src/json.c Patch 8.2.0316 问题: ex_getln.c code has insufficient test coverage. 解决方案: Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693) 文件: 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 问题: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build. 解决方案: Move where CFLAGS is updated. (Ken Takata, closes #5692) 文件: src/Make_mvc.mak Patch 8.2.0318 问题: Vim9: types not sufficiently tested. 解决方案: Add tests with more types. 文件: src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0319 问题: File missing in distribution, comments outdated. 解决方案: Correct path of README file. Update comments. 文件: Filelist, src/evalvars.c, src/register.c, src/if_python3.c Patch 8.2.0320 问题: No Haiku support. 解决方案: Add support for Haiku. (Emir Sarı, closes #5605) 文件: 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 问题: Vim9: ":execute" does not work yet. 解决方案: Add ISN_EXECUTE. (closes #5699) Also make :echo work with more than one argument. 文件: 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 问题: Vim9: error checks not tested. 解决方案: Add more test cases. Avoid error for function loaded later. 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.0323 问题: Vim9: calling a function that is defined later is slow. 解决方案: Once the function is found update the instruction so it can be called directly. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0324 问题: Text property not updated correctly when inserting/deleting. 解决方案: Use the right column when deleting. Make zero-width text properties respect start_incl and end_incl. (Axel Forsman, closes #5696, closes #5679) 文件: src/change.c, src/textprop.c, src/testdir/test_listener.vim, src/testdir/test_textprop.vim Patch 8.2.0325 问题: Ex_getln.c code not covered by tests. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #5702) 文件: 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 问题: Compiler warning for using uninitialized variable. (Yegappan Lakshmanan) 解决方案: Do not jump to failed but return. 文件: src/vim9execute.c Patch 8.2.0327 问题: Crash when opening and closing two popup terminal windows. 解决方案: Check that prevwin is valid. (closes #5707) 文件: src/popupwin.c, src/testdir/test_terminal.vim Patch 8.2.0328 问题: No redraw when leaving terminal-normal mode in a terminal popup window. 解决方案: Redraw the popup window. (closes #5708) 文件: 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 问题: Popup filter converts 0x80 bytes. 解决方案: Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0330 问题: Build error with popup window but without terminal. 解决方案: Add #ifdef. 文件: src/popupwin.c Patch 8.2.0331 问题: Internal error when using test_void() and test_unknown(). (Dominique Pellé) 解决方案: Give a normal error. 文件: src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_vimscript.vim Patch 8.2.0332 问题: Some code in ex_getln.c not covered by tests. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #5710) 文件: src/testdir/test_arabic.vim, src/testdir/test_cmdline.vim Patch 8.2.0333 问题: Terminal in popup test is flaky. 解决方案: Make sure redraw is done before opening the popup. 文件: src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_1.dump Patch 8.2.0334 问题: Abort called when using test_void(). (Dominique Pellé) 解决方案: Only give an error, don't abort. 文件: 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 问题: No completion for :disassemble. 解决方案: Make completion work. Also complete script-local functions if the name starts with "s:". 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, runtime/doc/vim9.txt Patch 8.2.0336 问题: Vim9: insufficient test coverage for compiling. 解决方案: Add more tests. 文件: 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 问题: Build fails on a few systems. 解决方案: Use vim_snprintf() instead of snprintf(). 文件: src/cmdexpand.c Patch 8.2.0338 问题: Build failure without the channel feature. 解决方案: Add #ifdef 文件: src/vim9compile.c Patch 8.2.0339 问题: Vim9: function return type may depend on arguments. 解决方案: Instead of a fixed return type use a function to figure out the return type. 文件: 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 问题: Vim9: function and partial types not tested. 解决方案: Support more for partial, add tests. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0341 问题: Using ":for" in Vim9 script gives an error. 解决方案: Pass the LET_NO_COMMAND flag. (closes #5715) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0342 问题: Some code in ex_getln.c not covered by tests. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5717) 文件: 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 问题: Vim9: using wrong instruction, limited test coverage. 解决方案: Use ISN_PUSHJOB. Add a few more tests. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0344 问题: ":def" not skipped properly. 解决方案: Add CMD_def to list of commands the require evaluation even when not being executed. 文件: src/ex_docmd.c Patch 8.2.0345 问题: Compiler warning when building without the float feature. 解决方案: Add #ifdef. (John Marriott) 文件: src/evalfunc.c Patch 8.2.0346 问题: Vim9: finding common list type not tested. 解决方案: Add more tests. Fix listing function. Fix overwriting type. 文件: 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 问题: Various code not covered by tests. 解决方案: Add more test coverage. (Yegappan Lakshmanan, closes #5720) 文件: 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 问题: Vim9: not all code tested. 解决方案: Add a few more tests. fix using "b:" in literal dictionary. 文件: src/testdir/test_vim9_expr.vim, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0349 问题: Vim9: constant expression not well tested. 解决方案: Add tests for "if" with constant expression. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0350 问题: Vim9: expression tests don't use recognized constants. 解决方案: Recognize "true" and "false" as constants. Make skipping work for assignment and expression evaluation. 文件: src/vim9compile.c Patch 8.2.0351 问题: Terminal in popup test is still a bit flaky. 解决方案: Clear and redraw before opening the popup. 文件: src/testdir/test_terminal.vim Patch 8.2.0352 问题: FreeBSD: test for sourcing utf-8 is skipped. 解决方案: Run the matchadd_conceal test separately to avoid that setting 'term' to "ansi" causes problems for other tests. (Ozaki Kiichi, closes #5721) 文件: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim, src/testdir/test_source_utf8.vim Patch 8.2.0353 问题: Vim9: while loop not tested. 解决方案: Add test with "while", "break" and "continue" 文件: src/testdir/test_vim9_script.vim Patch 8.2.0354 问题: Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal) 解决方案: Remove it, it was only for debugging. 文件: src/if_python3.c Patch 8.2.0355 问题: Vim9: str_val is confusing, it's a number 解决方案: Rename to stnr_val. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0356 问题: MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly. 解决方案: Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken Takata, closes #5726) 文件: src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.vim Patch 8.2.0357 问题: Cannot delete a text property matching both id and type. (Axel Forsman) 解决方案: Add the "both" argument. 文件: src/textprop.c, runtime/doc/textprop.txt, src/testdir/test_textprop.vim Patch 8.2.0358 问题: Insufficient testing for indent.c. 解决方案: Add indent tests. (Yegappan Lakshmanan, closes #5736) 文件: 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 问题: popup_atcursor() may hang. (Yasuhiro Matsumoto) 解决方案: Take the decoration into account. (closes #5728) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0360 问题: Yaml files are only recognized by the file extension. 解决方案: Check for a line starting with "%YAML". (Jason Franklin) 文件: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.0361 问题: Internal error when using "0" for a callback. 解决方案: Give a normal error. (closes #5743) 文件: src/evalvars.c, src/testdir/test_timers.vim Patch 8.2.0362 问题: MS-Windows: channel test fails if grep is not available. 解决方案: Use another command. (Ken Takata, closes #5739) 文件: src/testdir/test_channel.vim Patch 8.2.0363 问题: Some Normal mode commands not tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5746) 文件: 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 问题: Printf test failing on Haiku. 解决方案: Make a difference between int and short. (Dominique Pellé, closes #5749) 文件: src/message.c Patch 8.2.0365 问题: Tag kind can't be a multibyte character. (Marcin Szamotulski) 解决方案: Recognize multibyte character. (closes #5724) 文件: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.0366 问题: Hardcopy command not tested enough. 解决方案: Add tests for printing. (Dominique Pellé, closes #5748) 文件: src/testdir/test_hardcopy.vim Patch 8.2.0367 问题: Can use :pedit in a popup window. 解决方案: Disallow it. 文件: src/ex_docmd.c, src/testdir/test_popupwin.vim Patch 8.2.0368 问题: Vim9: import that redefines local variable does not fail. 解决方案: Check for already defined symbols. 文件: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0369 问题: Various Normal mode commands not fully tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5751) 文件: 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 问题: The typebuf_was_filled flag is sometimes not reset, which may cause a hang. 解决方案: Make sure typebuf_was_filled is reset when the typeahead buffer is empty. 文件: src/edit.c, src/getchar.c, Patch 8.2.0371 问题: Crash with combination of terminal popup and autocmd. 解决方案: Disallow closing a popup that is the current window. Add a check that the current buffer is valid. (closes #5754) 文件: src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0372 问题: Prop_find() may not find text property at start of the line. 解决方案: Adjust the loop to find properties. (Axel Forsman, closes #5761, closes #5663) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.0373 问题: Type of term_sendkeys() is unknown. 解决方案: Just return zero. (closes #5762) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0374 问题: Using wrong printf directive for jump location. 解决方案: Change "%lld" to "%d". (James McCoy, closes #5773) 文件: src/vim9execute.c Patch 8.2.0375 问题: Coverity warning for not using return value. 解决方案: Move error message to separate function. 文件: src/popupwin.c Patch 8.2.0376 问题: Nasty callback test fails on some systems. 解决方案: Increase the sleep time. 文件: src/testdir/test_terminal.vim Patch 8.2.0377 问题: No CI test for a big-endian system. 解决方案: Test with s390x. (James McCoy, closes #5772) 文件: .travis.yml Patch 8.2.0378 问题: prop_find() does not find all props. 解决方案: Check being in the start line. (Axel Forsman, closes #5776) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.0379 问题: Gcc warns for ambiguous else. 解决方案: Add braces. (Dominique Pellé, closes #5778) 文件: src/textprop.c Patch 8.2.0380 问题: Tiny popup when creating a terminal popup without minwidth. 解决方案: Use a default minimum size of 5 lines of 20 characters. 文件: src/popupwin.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_popup_m1.dump Patch 8.2.0381 问题: Using freed memory with :lvimgrep and autocommand. (extracted from POC by Dominique Pellé) 解决方案: Avoid deleting a dummy buffer used in a window. (closes #5777) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0382 问题: Some tests fail when run under valgrind. 解决方案: Increase timeouts. 文件: 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 问题: Wrong feature check causes test not to be run. 解决方案: Use CheckFunction instead of CheckFeature. (Ozaki Kiichi, closes #5781) 文件: src/testdir/test_channel.vim Patch 8.2.0384 问题: Travis CI has warnings. 解决方案: Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779) 文件: .travis.yml Patch 8.2.0385 问题: Menu functionality insufficiently tested. 解决方案: Add tests. Add menu_info(). (Yegappan Lakshmanan, closes #5760) 文件: 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) 问题: Part from unfinished patch got included. 解决方案: Undo that part. 文件: src/evalfunc.c Patch 8.2.0387 问题: Error for possible NULL argument to qsort(). 解决方案: Don't call qsort() when there is nothing to sort. (Dominique Pellé, closes #5780) 文件: src/spellsuggest.c Patch 8.2.0388 问题: Printmbcharset option not tested. 解决方案: Add a test. Enable PostScript for AppVeyor build. (Dominique Pellé, closes #5783) 文件: appveyor.yml, src/testdir/test_hardcopy.vim Patch 8.2.0389 问题: Delayed redraw when shifting text from Insert mode. 解决方案: Use msg_attr_keep() instead of msg(). (closes #5782) 文件: src/ops.c Patch 8.2.0390 问题: Terminal postponed scrollback test is flaky. 解决方案: Add delay in between sending keys. Rename dump 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) 问题: CI test coverage dropped. 解决方案: Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788) 文件: .travis.yml Patch 8.2.0392 问题: Coverity warns for using array index out of range. 解决方案: Add extra "if" to avoid warning. 文件: src/menu.c Patch 8.2.0393 问题: Coverity warns for not using return value. 解决方案: Add (void). 文件: src/popupmenu.c Patch 8.2.0394 问题: Coverity complains about using NULL pointer. 解决方案: Use empty string when option value is NULL. 文件: src/optionstr.c Patch 8.2.0395 问题: Build fails with FEAT_EVAL but without FEAT_MENU. 解决方案: Add #ifdef. (John Marriott) 文件: src/evalfunc.c Patch 8.2.0396 问题: Cmdexpand.c insufficiently tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5789) 文件: src/testdir/test_cmdline.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_usercommands.vim Patch 8.2.0397 问题: Delayed screen update when using undo from Insert mode. 解决方案: Update w_topline and cursor shape before sleeping. (closes #5790) 文件: src/normal.c Patch 8.2.0398 问题: Profile test fails when two functions take same time. 解决方案: Add a short sleep in once function. (closes #5797) 文件: src/testdir/test_profile.vim Patch 8.2.0399 问题: Various memory leaks. 解决方案: Avoid the leaks. (Ozaki Kiichi, closes #5803) 文件: src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c, src/scriptfile.c, src/userfunc.c Patch 8.2.0400 问题: Not all tests using a terminal are in the list of flaky tests. 解决方案: Introduce the test_is_flaky flag. 文件: src/testdir/runtest.vim, src/testdir/term_util.vim, src/testdir/screendump.vim, src/testdir/test_autocmd.vim Patch 8.2.0401 问题: Not enough test coverage for evalvars.c. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5804) 文件: 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) 问题: Setting local instead of global flag. 解决方案: Prepend "g:" to "test_is_flaky". 文件: src/testdir/term_util.vim, src/testdir/screendump.vim, src/testdir/test_autocmd.vim Patch 8.2.0403 问题: When 'buftype' is "nofile" there is no overwrite check. 解决方案: Also check for existing file when 'buftype' is set. (closes #5807) 文件: src/ex_cmds.c, src/testdir/test_options.vim Patch 8.2.0404 问题: Writefile() error does not give a hint. 解决方案: Add remark about first argument. 文件: src/filepath.c, src/testdir/test_writefile.vim Patch 8.2.0405 问题: MSVC: build fails with some combination of features. 解决方案: Enable CHANNEL if TERMINAL is enabled. (Mike Williams) 文件: src/Make_mvc.mak Patch 8.2.0406 问题: FileReadCmd event not well tested. 解决方案: Add a test. 文件: src/testdir/test_autocmd.vim Patch 8.2.0407 问题: No early check if :find and :sfind have an argument. 解决方案: Add EX_NEEDARG. 文件: src/ex_cmds.h, src/testdir/test_findfile.vim, src/testdir/test_find_complete.vim Patch 8.2.0408 问题: Delete() commented out for testing. 解决方案: Undo commenting-out. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0409 问题: Search test leaves file behind. 解决方案: Delete the file. Also use Check commands. 文件: src/testdir/test_search.vim Patch 8.2.0410 问题: Channel test fails too often on slow Mac. 解决方案: Increase waiting time to 10 seconds. 文件: src/testdir/test_channel.vim Patch 8.2.0411 问题: Mac: breakcheck is using a value from the stone ages. 解决方案: Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson) 文件: src/os_mac.h Patch 8.2.0412 问题: MS-Windows: cannot use vimtutor from the start menu. 解决方案: Better check for writable directory. Use the right path for the executable. (Wu Yongwei, closes #5774, closes #5756) 文件: vimtutor.bat Patch 8.2.0413 问题: Buffer menu does not handle special buffers properly. 解决方案: 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. 文件: 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 问题: Channel connect_waittime() test is flaky. 解决方案: Set the test_is_flaky flag. Use test_is_flaky for more tests. 文件: src/testdir/test_channel.vim, src/testdir/test_terminal.vim, src/testdir/runtest.vim Patch 8.2.0415 问题: Bsdl filetype is not detected. 解决方案: Add an entry in the filetype list. (Daniel Kho, closes #5810) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0416 问题: Test leaves file behind. 解决方案: Delete the file. 文件: src/testdir/test_indent.vim Patch 8.2.0417 问题: Travis CI config can be improved. 解决方案: Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE" to avoid messages about viminfo. (Ozaki Kiichi, closes #5813) 文件: .travis.yml, ci/load-snd-dummy.sh Patch 8.2.0418 问题: Code in eval.c not sufficiently covered by tests. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5815) 文件: 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 问题: Various memory leaks in Vim9 script code. 解决方案: Fix the leaks. (Ozaki Kiichi, closes #5814) 文件: 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 问题: Vim9: cannot interrupt a loop with CTRL-C. 解决方案: Check for CTRL-C once in a while. Doesn't fully work yet. 文件: src/misc1.c, src/proto/misc1.pro, src/testdir/test_vim9_script.vim Patch 8.2.0421 问题: Interrupting with CTRL-C does not always work. 解决方案: Recognize CTRL-C while modifyOtherKeys is set. 文件: src/ui.c, src/testdir/test_vim9_script.vim, src/evalfunc.c Patch 8.2.0422 问题: Crash when passing popup window to win_splitmove(). (john Devin) 解决方案: Disallow moving a popup window. (closes #5816) 文件: src/testdir/test_popupwin.vim, src/evalwindow.c Patch 8.2.0423 问题: In some environments a few tests are expected to fail. 解决方案: Add $TEST_MAY_FAIL to list tests that should not cause make to fail. 文件: src/testdir/runtest.vim Patch 8.2.0424 问题: Checking for wrong return value. (Tom) 解决方案: Invert the check and fix the test. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0425 问题: Code for modeless selection not sufficiently tested. 解决方案: Add tests. Move mouse code functionality to a common script file. (Yegappan Lakshmanan, closes #5821) 文件: 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 问题: Some errors were not tested for. 解决方案: Add tests. (Dominique Pellé, closes #5824) 文件: 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 问题: It is not possible to check for a typo in a feature name. 解决方案: Add an extra argument to has(). 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.vim, src/testdir/test_functions.vim Patch 8.2.0428 问题: Buffer name may leak. 解决方案: Free the buffer name before overwriting it. 文件: src/terminal.c Patch 8.2.0429 问题: No warning when test checks for option that never exists. 解决方案: In tests check that the option can exist. 文件: src/testdir/check.vim Patch 8.2.0430 问题: Window creation failure not properly tested. 解决方案: Improve the test. (Yegappan Lakshmanan, closes #5826) 文件: src/testdir/test_cmdline.vim, src/testdir/test_window_cmd.vim Patch 8.2.0431 问题: Some compilers don't support using \e for Esc. (Yegappan Lakshmanan) 解决方案: use \033 instead. 文件: src/ui.c Patch 8.2.0432 问题: A few tests fail in a huge terminal. 解决方案: Make the tests pass. (Dominique Pellé, closes #5829) 文件: 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 问题: INT signal not properly tested. 解决方案: Add a test. Also clean up some unnecessary lines. (Dominique Pellé, closes #5828) 文件: 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 问题: MS-Windows with VTP: Normal color not working. 解决方案: After changing the Normal color update the VTP console color. (Nobuhiro Takasaki, closes #5836) 文件: src/highlight.c Patch 8.2.0435 问题: Channel contents might be freed twice. 解决方案: Call either channel_free_channel() or channel_free(), not both. (Nobuhiro Takasaki, closes #5835) 文件: src/channel.c Patch 8.2.0436 问题: No warnings for incorrect printf arguments. 解决方案: Fix attribute in declaration. Fix uncovered mistakes. (Dominique Pellé, closes #5834) 文件: 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 问题: MS-Windows installer contains old stuff. 解决方案: Rely on Windows NT. (Ken Takata, closes #5832) 文件: src/dosinst.c Patch 8.2.0438 问题: Terminal noblock test is very flaky on BSD. 解决方案: Change WaitFor() to WaitForAssert() to be able to see why it failed. Add a short wait in between sending keys. 文件: src/testdir/test_terminal.vim Patch 8.2.0439 问题: :disassemble has minor flaws. 解决方案: Format the code. Use (int) instead of (char) for %c. (also by James McCoy, closes #5831) 文件: src/vim9execute.c Patch 8.2.0440 问题: Terminal noblock test is still very flaky on BSD. 解决方案: Increase the waiting time. 文件: src/testdir/test_terminal.vim Patch 8.2.0441 问题: Terminal noblock test is still failing on BSD. 解决方案: Reduce the amount of text. 文件: src/testdir/test_terminal.vim Patch 8.2.0442 问题: Channel contents might be used after being freed. 解决方案: Reset the job channel before freeing the channel. 文件: src/channel.c Patch 8.2.0443 问题: Clipboard code is spread out. 解决方案: Move clipboard code to its own file. (Yegappan Lakshmanan, closes #5827) 文件: 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 问题: Swap file test fails on some systems. 解决方案: Preserve the swap file. Send NL terminated keys. 文件: src/testdir/test_swap.vim Patch 8.2.0445 问题: Png and xpm files not in MS-Windows zip file. 解决方案: Move files to shared between Unix and Windows target. 文件: Filelist Patch 8.2.0446 问题: Listener with undo of deleting all lines not tested. 解决方案: Add a test. 文件: src/testdir/test_listener.vim Patch 8.2.0447 问题: Terminal scroll tests fails on some systems. 解决方案: Remove the fixed 100msec wait for Win32. Add a loop to wait until scrolling has finished. (James McCoy, closes #5842) 文件: src/testdir/test_terminal.vim Patch 8.2.0448 问题: Various functions not properly tested. 解决方案: Add more tests, especially for failures. (Yegappan Lakshmanan, closes #5843) 文件: 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 问题: Vim9: crash if return type is invalid. (Yegappan Lakshmanan) 解决方案: Always return some type, not NULL. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0450 问题: Not enough testing for restricted mode and function calls. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5847) 文件: src/testdir/test_method.vim, src/testdir/test_restricted.vim, src/testdir/test_vim9_script.vim Patch 8.2.0451 问题: Win32: double-width character displayed incorrectly. 解决方案: First move the cursor to the first column. (Nobuhiro Takasaki, closes #5848) 文件: src/os_win32.c Patch 8.2.0452 问题: channel_parse_messages() fails when called recursively. 解决方案: Return for a recursive call. (closes #5835) 文件: src/channel.c Patch 8.2.0453 问题: Trailing space in job_start() command causes empty argument. 解决方案: Ignore trailing space. (closes #5851) 文件: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.0454 问题: Some tests fail when the system is slow. 解决方案: Make the run number global, use in the test to increase the waiting time. (closes #5841) 文件: src/testdir/runtest.vim, src/testdir/test_functions.vim Patch 8.2.0455 问题: Cannot set the highlight group for a specific terminal. 解决方案: Add the "highlight" option to term_start(). (closes #5818) 文件: 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 问题: Test_confirm_cmd is flaky. 解决方案: Add a term_wait() call. (closes #5854) 文件: src/testdir/test_excmd.vim Patch 8.2.0457 问题: Test_quotestar() often fails when run under valgrind. 解决方案: Wait longer for the GUI to start. 文件: src/testdir/test_quotestar.vim Patch 8.2.0458 问题: Missing feature check in test function. 解决方案: Add check commands. 文件: src/testdir/test_excmd.vim Patch 8.2.0459 问题: Cannot check if a function name is correct. 解决方案: Add "?funcname" to exists(). 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.vim, src/testdir/check.vim Patch 8.2.0460 (after 8.2.0459) 问题: Build failure because of wrong feature name. 解决方案: Correct feature name. 文件: src/evalfunc.c Patch 8.2.0461 问题: Confirm test fails on amd64 system. (Alimar Riesebieter) 解决方案: Add an extra WaitForAssert(). (Dominique Pellé) 文件: src/testdir/test_excmd.vim Patch 8.2.0462 问题: Previewwindow test fails on some systems. (James McCoy) 解决方案: Wait a bit after sending the "o". (closes #5849) 文件: src/testdir/test_popup.vim, src/testdir/dumps/Test_popup_and_previewwindow_01.dump Patch 8.2.0463 问题: Build error without float and channel feature. (John Marriott) 解决方案: Define return types always. 文件: src/globals.h, src/evalfunc.c Patch 8.2.0464 问题: Typos and other small problems. 解决方案: Fix the typos. Add missing files to the distribution. 文件: Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c, src/os_unixx.h, src/proto/popupwin.pro Patch 8.2.0465 问题: Vim9: dead code and wrong return type. 解决方案: Remove dead code. Fix return type. Add more tests. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0466 (after 8.2.0452) 问题: Not parsing messages recursively breaks the govim plugin. 解决方案: When called recursively do handle messages but do not close channels. 文件: src/channel.c Patch 8.2.0467 问题: Vim9: some errors are not tested 解决方案: Add more tests. Fix that Vim9 script flag is not reset. 文件: 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 问题: GUI: pixel dust with some fonts and characters. 解决方案: Always redraw the character before the cursor. (Nir Lichtman, closes #5549, closes #5856) 文件: src/gui.c, src/proto/gui.pro, src/screen.c Patch 8.2.0469 问题: Vim9: no error for missing ] after list. 解决方案: Add error message. Add more tests. 文件: src/globals.h, src/list.c, src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_lambda.vim Patch 8.2.0470 问题: Test_confirm_cmd_cancel() can fail on a slow system. 解决方案: Use WaitForAssert(). (Ozaki Kiichi, closes #5861) 文件: src/testdir/test_excmd.vim Patch 8.2.0471 问题: Missing change to compile_list(). 解决方案: Add error message. 文件: src/vim9compile.c Patch 8.2.0472 问题: Terminal highlight name is set twice, leaking memory. 解决方案: Delete one. 文件: src/terminal.c Patch 8.2.0473 问题: Variables declared in an outer scope. 解决方案: Declare variables only in the scope where they are used. 文件: src/evalvars.c Patch 8.2.0474 (after 8.2.0403) 问题: Cannot use :write when using a plugin with BufWriteCmd. 解决方案: Reset BF_NOTEDITED after BufWriteCmd. (closes #5807) 文件: src/fileio.c, src/testdir/test_autocmd.vim Patch 8.2.0475 问题: Channel out_cb test still fails sometimes on Mac. 解决方案: Use an even longer timeout. 文件: src/testdir/test_channel.vim Patch 8.2.0476 问题: Terminal nasty callback test fails sometimes. 解决方案: use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865) 文件: src/testdir/test_terminal.vim Patch 8.2.0477 问题: Vim9: error messages not tested. 解决方案: Add more tests. 文件: src/testdir/test_vim9_expr.vim, src/vim9execute.c Patch 8.2.0478 问题: New buffers are not added to the Buffers menu. 解决方案: Turn number into string. (Yee Cheng Chin, closes #5864) 文件: runtime/menu.vim, src/testdir/test_menu.vim Patch 8.2.0479 问题: Unloading shared libraries on exit has no purpose. 解决方案: Do not unload shared libraries on exit. 文件: 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 问题: Vim9: some code is not tested. 解决方案: Add more tests. 文件: src/testdir/test_vim9_expr.vim, src/vim9compile.c Patch 8.2.0481 问题: Travis is still using trusty. 解决方案: Adjust config to use bionic. (Ozaki Kiichi, closes #5868) 文件: .travis.yml, src/testdir/lsan-suppress.txt Patch 8.2.0482 问题: Channel and sandbox code not sufficiently tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5855) 文件: 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 问题: Vim9: "let x = x + 1" does not give an error. 解决方案: Hide the variable when compiling the expression. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0484 问题: Vim9: some error messages not tested. 解决方案: Add more tests. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.0485 (after 8.2.0483) 问题: Vim9 script test fails. 解决方案: Stricter condition for adding new local variable. 文件: Stricter condition for adding new local variable. Patch 8.2.0486 问题: Vim9: some code and error messages not tested. 解决方案: Add more tests. 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0487 问题: Vim9: compiling not sufficiently tested. 解决方案: Add more tests. Fix bug with PCALL. 文件: 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 问题: Vim9: Compiling can break when using a lambda inside :def. 解决方案: Do not keep a pointer to the dfunc_T for longer time. 文件: src/vim9compile.c, src/vim9.h Patch 8.2.0489 问题: Vim9: memory leaks. 解决方案: Free memory in the right place. Add hints for using asan. 文件: src/vim9compile.c, src/testdir/lsan-suppress.txt, src/Makefile Patch 8.2.0490 问题: Win32: VTP doesn't respect 'restorescreen'. 解决方案: Use escape codes to switch to alternate screen. (Nobuhiro Takasaki, closes #5872) 文件: src/os_win32.c Patch 8.2.0491 问题: Cannot recognize a <script> mapping using maparg(). 解决方案: Add the "script" key. (closes #5873) 文件: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim Patch 8.2.0492 问题: Vim9: some error messages not tested. 解决方案: Add more tests. Remove dead code. Fix uncovered bugs. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0493 问题: Vim9: some error messages not tested. 解决方案: Add more tests. Fix uncovered bugs. 文件: src/vim9compile.c, src/vim9execute.c, src/testing.c, src/eval.c, src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt, runtime/doc/testing.txt, src/testdir/test_vim9_script.vim Patch 8.2.0494 问题: Vim9: asan error. 解决方案: Only get the type when there is one. 文件: src/vim9compile.c Patch 8.2.0495 问题: Vim9: some code not tested. 解决方案: Add more tests. Support more const expressions. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0496 问题: Vim9: disassemble test fails. 解决方案: Separate test cases with recognized constant expressions. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0497 问题: Too verbose output from the asan build in Travis. 解决方案: Filter out suppression messages. (Ozaki Kiichi, closes #5874) 文件: .travis.yml Patch 8.2.0498 问题: Coverity complains about uninitialized field. 解决方案: Initialize the whole typval_T. 文件: src/vim9compile.c Patch 8.2.0499 问题: Calling a lambda is slower than evaluating a string. 解决方案: Make calling a lambda faster. (Ken Takata, closes #5727) 文件: src/userfunc.c Patch 8.2.0500 问题: Using the same loop in many places. 解决方案: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339) 文件: src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c, src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h, src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c, src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c, src/quickfix.c, src/screen.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c, src/userfunc.c, src/window.c Patch 8.2.0501 问题: Vim9: script test fails when channel feature is missing. 解决方案: Add a has() condition. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0502 问题: Vim9: some code is not tested. 解决方案: Add more tests. Fix uncovered problems. 文件: src/vim9compile.c, src/regexp.c, src/proto/regexp.pro, src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c, src/tag.c, src/userfunc.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0503 问题: Vim9: some code is not tested. 解决方案: Add tests. Fix uncovered problems. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0504 问题: Vim9: leaking scope memory when compilation fails. 解决方案: Cleanup the scope list. 文件: src/vim9compile.c Patch 8.2.0505 问题: term_gettty() not sufficiently tested. 解决方案: Add more asserts. (Dominique Pellé, closes #5877) 文件: src/testdir/test_terminal.vim Patch 8.2.0506 问题: Coverity complains about ignoring return value. 解决方案: Add (void). 文件: src/userfunc.c Patch 8.2.0507 (after 8.2.0472) 问题: Getbufvar() may get the wrong dictionary. (David le Blanc) 解决方案: Check for empty name. (closes #5878) 文件: src/evalvars.c, src/testdir/test_functions.vim Patch 8.2.0508 问题: Vim9: func and partial types not done yet 解决方案: Fill in details about func declaration, drop a separate partial declaration. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/globals.h, src/structs.h, src/evalfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0509 问题: various code is not properly tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5871) 文件: src/main.c, src/testdir/check.vim, src/testdir/shared.vim, src/testdir/term_util.vim, src/testdir/test_clientserver.vim, src/testdir/test_ex_mode.vim, src/testdir/test_expand.vim, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_startup.vim, src/testdir/test_textformat.vim, src/testdir/test_trycatch.vim, src/testdir/test_viminfo.vim Patch 8.2.0510 问题: Coverity complains about using uninitialized variable. 解决方案: Assign a value to "scol". Move code inside NULL check. 文件: src/beval.c, src/popupwin.c Patch 8.2.0511 问题: Cscope code not fully tested. 解决方案: Add more test cases. (Dominique Pellé, closes #5886) 文件: src/testdir/test_cscope.vim Patch 8.2.0512 问题: Vim9: no optional arguments in func type. 解决方案: Check for question mark after type. Find function reference without function(). 文件: src/vim9compile.c, src/vim9execute.c, src/structs.h, src/globals.h, src/vim.h, src/vim9.h, src/userfunc.c, src/testdir/Make_all.mak, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0513 问题: Reading past allocated memory when using varargs. 解决方案: Fix copying function argument types. 文件: src/vim9compile.c Patch 8.2.0514 问题: Several global functions are used in only one file. 解决方案: Make the functions static. (Yegappan Lakshmanan, closes #5884) 文件: src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c, src/proto/drawscreen.pro, src/proto/evalvars.pro, src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro, src/version.c Patch 8.2.0515 问题: Some compilers cannot add to "void *". 解决方案: Cast to "char *". 文件: src/vim9compile.c Patch 8.2.0516 问题: Client-server code is spread out. 解决方案: Move client-server code to a new file. (Yegappan Lakshmanan, closes #5885) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h, src/proto/clientserver.pro, src/proto/main.pro Patch 8.2.0517 问题: Vim9: cannot separate "func" and "func(): void". 解决方案: Use VAR_ANY for "any" and VAR_UNKNOWN for "no type". 文件: src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c, src/evalvars.c, src/testing.c, src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/if_py_both.h, src/json.c, src/testdir/test_vim9_func.vim Patch 8.2.0518 问题: A terminal falls back to setting $TERM to "xterm". 解决方案: Use "xterm-color" if more than 16 colors are supported and "xterm-256color" if at least 256 colors are supported. (closes #5887) 文件: src/os_unix.c Patch 8.2.0519 问题: Vim9: return type not properly checked. 解决方案: Check type properly, also at runtime. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0520 问题: Tests are not listed in sorted order. 解决方案: Move test_ex_mode. (Doug Richardson, closes #5889) 文件: src/testdir/Make_all.mak Patch 8.2.0521 问题: Crash when reading a blob fails. 解决方案: Avoid keeping a pointer to a freed blob object. (Dominique Pellé, closes #5890) Adjust error messages. 文件: src/filepath.c, src/testdir/test_blob.vim Patch 8.2.0522 问题: Several errors are not tested for. 解决方案: Add tests. (Yegappan Lakshmanan, closes #5892) 文件: src/testdir/test_autocmd.vim, src/testdir/test_clientserver.vim, src/testdir/test_digraph.vim, src/testdir/test_expand.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_gui.vim, src/testdir/test_highlight.vim, src/testdir/test_ins_complete.vim, src/testdir/test_lambda.vim, src/testdir/test_listdict.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_preview.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim Patch 8.2.0523 问题: Loops are repeated. 解决方案: Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882) 文件: src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c, src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c, src/userfunc.c, src/vim9compile.c Patch 8.2.0524 问题: Win32: searching for file matches is slow. 解决方案: Instead of making another round to find any short filename, check for the short name right away. Avoid using an ordinary file like a directory. (Nir Lichtman, closes #5883) 文件: src/filepath.c Patch 8.2.0525 (after 8.2.0524) 问题: Win32: typo in assignment and misplaced paren. 解决方案: Fix the syntax. 文件: src/filepath.c Patch 8.2.0526 问题: Gcc 9 complains about empty statement. 解决方案: Add {}. (Dominique Pellé, closes #5894) 文件: src/evalfunc.c Patch 8.2.0527 问题: Vim9: function types insufficiently tested. 解决方案: Add more tests. Fix white space check. Add "test_vim9" target. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/Makefile, src/testdir/Makefile, src/testdir/Make_all.mak Patch 8.2.0528 问题: Vim9: function arguments insufficiently tested. 解决方案: Check types. Add more tests. Fix function with varargs only. 文件: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0529 问题: Vim9: function argument with default not checked. 解决方案: Check type of argument with default value. 文件: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0530 问题: Test crashes on s390. (James McCoy) 解决方案: Explicitly define an 8 big signed type. (closes #5897) 文件: src/structs.h Patch 8.2.0531 问题: Various errors not tested. 解决方案: Add tests. (Yegappan Lakshmanan, closes #5895) 文件: src/testdir/test_search.vim, src/testdir/test_source.vim, src/testdir/test_syntax.vim, src/testdir/test_user_func.vim, src/testdir/test_vimscript.vim Patch 8.2.0532 问题: Cannot use simplify() as a method. 解决方案: Add FEARG_1. (closes #5896) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.0533 问题: Tests using term_wait() can still be flaky. 解决方案: Increase the wait time when rerunning a test. (James McCoy, closes #5899) Halve the initial times to make tests run faster when there is no rerun. 文件: src/testdir/term_util.vim, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_balloon.vim, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, src/testdir/test_cursorline.vim, src/testdir/test_debugger.vim, src/testdir/test_diffmode.vim, src/testdir/test_display.vim, src/testdir/test_functions.vim, src/testdir/test_highlight.vim, src/testdir/test_ins_complete.vim, src/testdir/test_mapping.vim, src/testdir/test_match.vim, src/testdir/test_matchadd_conceal.vim, src/testdir/test_messages.vim, src/testdir/test_number.vim, src/testdir/test_popup.vim, src/testdir/test_popupwin.vim, src/testdir/test_profile.vim, src/testdir/test_search.vim, src/testdir/test_search_stat.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_statusline.vim, src/testdir/test_suspend.vim, src/testdir/test_swap.vim, src/testdir/test_tagjump.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal_fail.vim, src/testdir/test_timers.vim, src/testdir/test_vimscript.vim Patch 8.2.0534 问题: Client-server test fails under valgrind. 解决方案: Use WaitForAssert(). 文件: src/testdir/test_clientserver.vim Patch 8.2.0535 问题: Regexp patterns not fully tested. 解决方案: Add more regexp tests and others. (Yegappan Lakshmanan, closes #5901) 文件: src/testdir/test_marks.vim, src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim Patch 8.2.0536 问题: Vim9: some compilation code not tested. 解决方案: Add more test cases. 文件: src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0537 问题: Vim9: no check for sandbox when setting v:var. 解决方案: Check for sandbox. 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.0538 问题: Vim9: VAR_PARTIAL is not used during compilation. 解决方案: Remove VAR_PARTIAL. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0539 问题: Comparing two NULL list fails. 解决方案: Change the order of comparing two lists. 文件: src/list.c, src/testdir/test_assert.vim Patch 8.2.0540 问题: Regexp and other code not tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5904) 文件: src/testdir/test_backspace_opt.vim, src/testdir/test_expr.vim, src/testdir/test_increment.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim, src/testdir/test_substitute.vim, src/testdir/test_terminal.vim, src/testdir/test_virtualedit.vim Patch 8.2.0541 问题: Travis CI does not give compiler warnings. 解决方案: Add flags for warnings. Fix uncovered problems. (Ozaki Kiichi, closes #5898) 文件: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c, src/libvterm/t/harness.c Patch 8.2.0542 问题: No test for E386. 解决方案: Add a test. (Dominique Pellé, closes #5911) 文件: src/testdir/test_search.vim Patch 8.2.0543 问题: Vim9: function with varargs does not work properly. 解决方案: Improve function type spec and add tests. Fix bugs. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.0544 问题: Memory leak in search test. 解决方案: Free msgbuf. (Dominique Pellé, closes #5912) 文件: src/search.c Patch 8.2.0545 问题: Unused arguments ignored in non-standard way. 解决方案: Add UNUSED instead of (void). 文件: src/libvterm/t/harness.c Patch 8.2.0546 问题: Vim9: varargs implementation is inefficient. 解决方案: Create list without moving the arguments. 文件: src/vim9compile.c, src/vim9execute.c Patch 8.2.0547 问题: Win32: restoring screen not always done right. 解决方案: Use a more appropriate method. (Nobuhiro Takasaki, closes #5909) 文件: src/os_win32.c Patch 8.2.0548 问题: Vim9: not all possible func type errors tested. 解决方案: Add more tests. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0549 问题: User systemd files not recognized. 解决方案: Add filetype patterns. (Kevin Locke, closes #5914) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0550 问题: Some changes in the libvterm upstream code. 解决方案: Include some changes. 文件: src/libvterm/t/harness.c Patch 8.2.0551 问题: Not all code for options is tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5913) 文件: src/testdir/test_options.vim, src/testdir/test_python3.vim, src/testdir/test_undo.vim, src/testdir/test_vimscript.vim Patch 8.2.0552 问题: Vim9: some errors not covered by tests. 解决方案: Add more tests. Check Funcref argument types. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0553 (after 8.2.0550) 问题: Error for unused argument. 解决方案: Add UNUSED. 文件: src/libvterm/t/harness.c Patch 8.2.0554 问题: The GUI doesn't set t_Co. 解决方案: In the GUI set t_Co to 256 * 256 * 256. (closes #5903) 文件: src/term.c, src/proto/term.pro, src/gui.c, src/testdir/test_gui.vim Patch 8.2.0555 问题: Vim9: line continuation is not always needed. 解决方案: Recognize continuation lines automatically in list and dict. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.0556 问题: Vim9: memory leak when finding common type. 解决方案: Store allocated memory in type growarray. 文件: src/vim9compile.c Patch 8.2.0557 问题: No IPv6 support for channels. 解决方案: Add IPv6 support. (Ozaki Kiichi, closes #5893) 文件: .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c, src/proto/channel.pro, src/testdir/check.vim, src/testdir/runtest.vim, src/testdir/test_cdo.vim, src/testdir/test_channel.py, src/testdir/test_channel.vim, src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.vim, src/testdir/test_getcwd.vim, src/testdir/test_hide.vim Patch 8.2.0558 问题: Vim9: dict code not covered by tests. 解决方案: Remove dead code, adjust test case. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0559 问题: Clearing a struct is verbose. 解决方案: Define and use CLEAR_FIELD() and CLEAR_POINTER(). 文件: src/vim.h, src/blowfish.c, src/channel.c, src/charset.c, src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c, src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c, src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c, src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c, src/main.c, src/map.c, src/memfile.c, src/message_test.c, src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c, src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/search.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, src/time.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/if_py_both.h Patch 8.2.0560 问题: Compiler warning in tiny build. 解决方案: Move declaration inside #ifdef. (Dominique Pellé, closes #5915) 文件: src/ex_docmd.c Patch 8.2.0561 问题: Vim9: cannot split function call in multiple lines. 解决方案: Find more arguments in following lines. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0562 问题: Vim9: cannot split an expression into multiple lines. 解决方案: Continue in next line after an operator. 文件: runtime/doc/vim9.txt, src/macros.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0563 问题: Vim9: cannot split a function line. 解决方案: Continue in next line so long as the function isn't done. 文件: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0564 问题: Vim9: calling a def function from non-vim9 may fail. 解决方案: Convert varargs to a list. 文件: src/testdir/test_vim9_func.vim, src/vim9execute.c Patch 8.2.0565 问题: Vim9: tests contain superfluous line continuation. 解决方案: Remove line continuation no longer needed. Skip empty lines. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0566 问题: Vim9: variable can be used uninitialized. 解决方案: Jump to after where variable is used. 文件: src/vim9execute.c Patch 8.2.0567 问题: Vim9: cannot put comments halfway expressions. 解决方案: Support # comments in many places. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0568 问题: The man filetype plugin overwrites the unnamed register. 解决方案: Use the black hole register. (Jason Franklin) 文件: runtime/ftplugin/man.vim, src/testdir/test_man.vim Patch 8.2.0569 问题: Build failure with tiny version. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.0570 问题: Vim9: no error when omitting type from argument. 解决方案: Enforce specifying argument types. 文件: src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0571 问题: Double free when passing invalid argument to job_start(). 解决方案: Clear the argument when freed. (Masato Nishihata, closes #5926) 文件: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.0572 (after 8.2.0571) 问题: Using two lines for free and reset. 解决方案: Use VIM_CLEAR() instead. (Yegappan Lakshmanan) 文件: src/misc2.c Patch 8.2.0573 问题: using :version twice leaks memory 解决方案: Only initialize variables once. (Dominique Pellé, closes #5917) 文件: src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_version.vim, src/version.c, src/globals.h Patch 8.2.0574 问题: Ipv6 feature not shown in :version output. 解决方案: Add ipv6 in :version output. (Ozaki Kiichi, closes #5924) 文件: runtime/doc/eval.txt, src/version.c Patch 8.2.0575 问题: :digraph! not tested. 解决方案: Add a test. (Dominique Pellé, closes #5925) 文件: src/testdir/test_digraph.vim Patch 8.2.0576 问题: Some errors are not covered by tests. 解决方案: Add a few more tests. (Dominique Pellé, closes #5920) 文件: src/testdir/test_buffer.vim, src/testdir/test_digraph.vim, src/testdir/test_expr.vim, src/testdir/test_messages.vim Patch 8.2.0577 问题: Not all modifiers supported for :options. 解决方案: Use all cmdmod.split flags. (closes #4401) 文件: src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, src/testdir/test_options.vim, src/testdir/test_usercommands.vim Patch 8.2.0578 问题: Heredoc for interfaces does not support "trim". 解决方案: Update the script heredoc support to be same as the :let command. (Yegappan Lakshmanan, closes #5916) 文件: runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c, src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in, src/testdir/test87.in, src/testdir/test_lua.vim, src/testdir/test_perl.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim, src/testdir/test_tcl.vim, src/userfunc.c, src/vim9compile.c Patch 8.2.0579 问题: Coverity warns for unused value. 解决方案: Change order and use "else if". 文件: src/os_unix.c Patch 8.2.0580 问题: Window size wrong if 'ea' is off and 'splitright' is on and splitting then closing a window. 解决方案: Put abandoned window space in the right place. (Mark Waggoner) 文件: src/testdir/test_winbuf_close.vim, src/window.c Patch 8.2.0581 (after 8.2.0547) 问题: Win32 console: the cursor position is always top-left. 解决方案: Revert the patch for restoring screen. 文件: src/os_win32.c Patch 8.2.0582 问题: Color ramp test does not show text colors. 解决方案: Add a row of 16 text colors and 16 bold text colors. 文件: src/testdir/color_ramp.vim Patch 8.2.0583 问题: Vim9: # comment not recognized in :def function. 解决方案: Recognize and skip # comment. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0584 问题: Viminfo file uses obsolete function file_readable(). 解决方案: Use filereadable(). (closes #5934) 文件: src/session.c Patch 8.2.0585 问题: Vim9: # comment not recognized after :vim9script. 解决方案: Check script type. Make comment after ":echo" work. And in several other places. 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0586 问题: Vim9: # comment not sufficiently tested 解决方案: Check for preceding white space. 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0587 问题: Compiler warning for unused variable. 解决方案: Add UNUSED. 文件: src/ex_docmd.c Patch 8.2.0588 问题: Putty does not use "sgr" 'ttymouse' by default. 解决方案: Make "sgr" the default for Putty. (Christian Brabandt, closes #5942) 文件: src/term.c Patch 8.2.0589 问题: .bsd file type not recognized. 解决方案: Recognize .bsd as BSDL. (Daniel Kho, closes #5945) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0590 问题: No 'backspace' value allows ignoring the insertion point. 解决方案: Add the "nostop" and 3 values. (Christian Brabandt, closes #5940) 文件: runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h, src/optionstr.c, src/testdir/gen_opt_test.vim, src/testdir/test_backspace_opt.vim Patch 8.2.0591 问题: MS-Windows: should always support IPv6 解决方案: Add build flag. (Ozaki Kiichi, closes #5944) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.0592 问题: MS-Windows with VTP: cursor is not made invisible. 解决方案: Output the code to make the cursor visible or invisible. (Nobuhiro Takasaki, closes #5941) 文件: src/os_win32.c Patch 8.2.0593 问题: Finding a user command is not optimal. 解决方案: Start further down in the list of commands. 文件: src/ex_cmds.h, src/ex_docmd.c Patch 8.2.0594 问题: MS-Windows: cannot build with WINVER set to 0x0501. 解决方案: Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/channel.c, src/config.h.in, src/configure.ac Patch 8.2.0595 问题: Vim9: not all commands using ends_excmd() tested. 解决方案: Find # comment after regular commands. Add more tests. Report error for where it was caused. 文件: src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/usercmd.c, src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0596 问题: Crash in test49. 解决方案: Check the right pointer. 文件: src/userfunc.c, src/testdir/test_eval.ok Patch 8.2.0597 问题: Test_eval is old style. 解决方案: Change some tests to a new style test. 文件: src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_stuff.vim Patch 8.2.0598 问题: Test_eval_stuff fails in normal terminal. 解决方案: Close the new window. 文件: src/testdir/test_eval_stuff.vim Patch 8.2.0599 问题: Netbeans interface insufficiently tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5921) 文件: runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c, src/testdir/runtest.vim, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim Patch 8.2.0600 问题: Vim9: cannot read or write w:, t: and b: variables. 解决方案: Implement load and store for w:, t: and b: variables. (closes #5950) 文件: src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.0601 问题: Vim9: :unlet is not compiled. 解决方案: Implement :unlet instruction and check for errors. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0602 问题: :unlet $VAR does not work properly. 解决方案: Make ":lockvar $VAR" fail. Check the "skip" flag. 文件: src/evalvars.c, src/globals.h, src/testdir/test_vimscript.vim Patch 8.2.0603 问题: Configure does not detect moonjit. 解决方案: Add check for moonjit. (Shlomi Fish, closes #5947) 文件: src/configure.ac, src/auto/configure Patch 8.2.0604 问题: :startinsert in a terminal window used later. 解决方案: Ignore :startinsert in a terminal window. (closes #5952) 文件: src/ex_docmd.c, src/testdir/test_terminal.vim Patch 8.2.0605 问题: Vim9: cannot unlet an environment variable. 解决方案: Implement unlet for $VAR. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0606 问题: Several syntax HL errors not checked. 解决方案: Add tests. (Yegappan Lakshmanan, closes #5954) 文件: src/testdir/test_syntax.vim Patch 8.2.0607 问题: Gcc warns for using uninitialized variable. (John Marriott) 解决方案: Set name_end also for environment variables. 文件: src/evalvars.c Patch 8.2.0608 问题: Warning from clang when building message test. 解决方案: Use a void pointer. (Dominique Pellé, closes #5958) 文件: src/message_test.c Patch 8.2.0609 问题: Configure does not detect moonjit correctly. 解决方案: Double the brackets. (Ozaki Kiichi) 文件: src/configure.ac, src/auto/configure Patch 8.2.0610 问题: Some tests are still old style. 解决方案: Convert to new style tests. (Yegappan Lakshmanan, closes #5957) 文件: src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim, src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_sort.vim, src/testdir/test_syntax.vim, src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim Patch 8.2.0611 问题: Vim9: no check for space before #comment. 解决方案: Add space checks. 文件: src/eval.c, src/evalvars.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.0612 问题: Vim9: no check for space before #comment. 解决方案: Add space checks. 文件: src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro, src/gui.c, src/highlight.c, src/testdir/test_vim9_script.vim, src/testdir/test_sort.vim Patch 8.2.0613 问题: Vim9: no check for space before #comment. 解决方案: Add space checks. 文件: src/highlight.c, src/menu.c, src/syntax.c, src/testdir/test_vim9_script.vim, runtime/lang/menu_de_de.latin1.vim Patch 8.2.0614 问题: Get ml_get error when deleting a line in 'completefunc'. (Yegappan Lakshmanan) 解决方案: Lock the text while evaluating 'completefunc'. 文件: src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c, src/undo.c, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_gf.vim, src/testdir/test_popup.vim, src/testdir/test_ex_mode.vim, runtime/doc/insert.txt Patch 8.2.0615 问题: Regexp benchmark test is old style. 解决方案: Make it a new style test. Fix using a NULL list. Add more tests. (Yegappan Lakshmanan, closes #5963) 文件: src/evalbuffer.c, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile, src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim, src/testdir/test_autocmd.vim, src/testdir/test_bench_regexp.vim, src/testdir/test_blob.vim, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim Patch 8.2.0616 问题: Build error when disabling the diff feature. 解决方案: Move parenthesis outside of #ifdef. (Tom Ryder) 文件: src/drawline.c Patch 8.2.0617 问题: New error check triggers in Swedish menu. 解决方案: Insert backslash. (Mats Tegner, closes #5966) 文件: runtime/lang/menu_sv_se.latin1.vim Patch 8.2.0618 问题: Echoing a null list results in no output. (Yegappan Lakshmanan) 解决方案: Return "[]" instead of NULL in echo_string_core(). 文件: src/eval.c, src/testdir/test_messages.vim Patch 8.2.0619 问题: Null dict is not handled like an empty dict. 解决方案: Fix the code and add tests. (Yegappan Lakshmanan, closes #5968) 文件: src/dict.c, src/eval.c, src/testdir/test_blob.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_search.vim, src/testdir/test_unlet.vim, src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim Patch 8.2.0620 问题: Error in menu translations. 解决方案: Insert a backslash before a space. 文件: runtime/lang/menu_it_it.latin1.vim, runtime/lang/menu_chinese_gb.936.vim Patch 8.2.0621 问题: After running tests asan files may remain. 解决方案: Clean up asan files with "make testclean". 文件: src/testdir/Makefile, src/Makefile Patch 8.2.0622 问题: Haiku: GUI does not compile. 解决方案: Various fixes. (Emir Sarı, closes #5961) 文件: Filelist, README.md, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt, src/Makefile, src/beval.h, src/gui_haiku.cc, src/proto/gui_haiku.pro Patch 8.2.0623 问题: Typo in test comment. (Christ van Willegen) 解决方案: Avoid mixing up a data structure with a body part. 文件: src/testdir/test_listdict.vim Patch 8.2.0624 问题: Vim9: no check for space before #comment. 解决方案: Add space checks. Fix :throw with double quoted string. 文件: src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0625 问题: Vim9: confusing error when calling unknown function. 解决方案: Give error while compiling. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0626 问题: Vim9: wrong syntax of function in Vim9 script. 解决方案: Give error for missing space. Implement :echomsg and :echoerr. (closes #5670) 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c, src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.0627 问题: Vim9: error message does not work. (Yegappan Lakshmanan) 解决方案: Swap lines. 文件: src/userfunc.c Patch 8.2.0628 问题: Error in menu translations. 解决方案: Insert a backslash before a space in one more file. (Shun Bai, Emir Sarı) 文件: runtime/lang/menu_zh_cn.utf-8.vim, runtime/lang/menu_ca_es.latin1.vim, runtime/lang/menu_cs_cz.iso_8859-2.vim, runtime/lang/menu_cs_cz.utf-8.vim, runtime/lang/menu_czech_czech_republic.1250.vim, runtime/lang/menu_czech_czech_republic.ascii.vim, runtime/lang/menu_da.utf-8.vim, runtime/lang/menu_fi_fi.latin1.vim, runtime/lang/menu_hu_hu.iso_8859-2.vim, runtime/lang/menu_hu_hu.utf-8.vim, runtime/lang/menu_is_is.latin1.vim, runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim, runtime/lang/menu_sk_sk.iso_8859-2.vim, runtime/lang/menu_sl_si.latin2.vim, runtime/lang/menu_slovak_slovak_republic.1250.vim, runtime/lang/menu_tr_tr.cp1254.vim, runtime/lang/menu_tr_tr.iso_8859-9.vim, runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_vi_vn.vim Patch 8.2.0629 问题: Setting a boolean option to v:false does not work. 解决方案: Do not use the string representation of the value. (Christian Brabandt, closes #5974) 文件: src/evalvars.c, src/testdir/test_options.vim Patch 8.2.0630 问题: "make tags" does not cover Haiku GUI file. 解决方案: Add *.cc files. 文件: src/Make_all.mak Patch 8.2.0631 问题: Haiku file formatted with wrong tabstop. 解决方案: Use normal tabstop. Fix white space. 文件: src/gui_haiku.cc Patch 8.2.0632 问题: Crash when using Haiku. 解决方案: Lock the screen. (closes #5975, closes #5973) 文件: src/screen.c Patch 8.2.0633 问题: Crash when using null partial in filter(). 解决方案: Fix crash. Add more tests. (Yegappan Lakshmanan, closes #5976) 文件: src/eval.c, src/testdir/test_blob.vim, src/testdir/test_channel.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_execute_func.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, src/testdir/test_functions.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_partial.vim, src/testdir/test_usercommands.vim Patch 8.2.0634 问题: Crash with null partial and blob. 解决方案: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan, closes #5984) 文件: src/eval.c, src/list.c, src/testdir/test_blob.vim, src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim, src/testdir/test_channel.vim, src/testdir/test_cursor_func.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fnamemodify.vim, src/testdir/test_functions.vim, src/testdir/test_getvar.vim, src/testdir/test_listdict.vim, src/testdir/test_messages.vim, src/testdir/test_partial.vim, src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_writefile.vim Patch 8.2.0635 问题: When using 256 colors DarkYellow does not show expected color. 解决方案: Use color 3 instead of 130. (Romain Lafourcade, closes #5985) 文件: src/highlight.c Patch 8.2.0636 问题: :messages does not show the maintainer when $LANG is unset. 解决方案: Call get_mess_lang() if available. (closes #5978) 文件: src/message.c Patch 8.2.0637 问题: Incsearch highlighting does not work for ":sort!". 解决方案: Skip over the exclamation point. (closes #5983) 文件: src/ex_getln.c, src/testdir/test_search.vim, src/testdir/dumps/Test_incsearch_sort_02.dump Patch 8.2.0638 问题: MS-Windows: messages test fails. 解决方案: Clear environment variables. 文件: src/testdir/test_messages.vim Patch 8.2.0639 问题: MS-Windows: messages test still fails. 解决方案: Filter out the maintainer message. 文件: src/testdir/test_messages.vim Patch 8.2.0640 问题: Vim9: expanding =expr does not work. 解决方案: Find wildcards in not compiled commands. Reorganize test files. 文件: Filelist, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak Patch 8.2.0641 问题: Vim9: =expr not expanded in :hardcopy and "syntax include". 解决方案: Add the EX_EXPAND flag. Expend "syntax include". 文件: src/ex_cmds.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.0642 问题: Vim9: using invalid index. 解决方案: Check index for being valid. Fix memory leak. 文件: src/vim9compile.c, src/clientserver.c Patch 8.2.0643 (after 8.2.0635) 问题: Terminal uses brown instead of dark yellow. (Romain Lafourcade) 解决方案: Use color index 3 instead of 130. (closes #5993) 文件: src/terminal.c Patch 8.2.0644 问题: Insufficient testing for invalid function arguments. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5988) 文件: runtime/doc/eval.txt, src/testdir/test_bufline.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_listener.vim, src/testdir/test_match.vim, src/testdir/test_menu.vim, src/testdir/test_quickfix.vim, src/testdir/test_registers.vim, src/testdir/test_reltime.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_writefile.vim Patch 8.2.0645 问题: MS-Windows terminal: CTRL-C does not get to child job. 解决方案: Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro Takasaki, closes #5987) 文件: src/terminal.c Patch 8.2.0646 问题: t_Co uses the value of $COLORS in the GUI. (Masato Nishihata) 解决方案: Ignore $COLORS for the GUI. (closes #5992) 文件: src/os_unix.c, src/term.c Patch 8.2.0647 问题: MS-Windows: repeat count for events was not used. 解决方案: Check the repeat count. (Nobuhiro Takasaki, closes #5989) 文件: src/os_win32.c Patch 8.2.0648 问题: Semicolon search does not work in first line. 解决方案: Allow the cursor to be in line zero. (Christian Brabandt, closes #5996) 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.0649 问题: Undo problem when an InsertLeave autocommand resets undo. (Kutsan Kaplan) 解决方案: Do not create a new undo block when leaving Insert mode. 文件: src/edit.c, src/testdir/test_edit.vim Patch 8.2.0650 问题: Vim9: script function can be deleted. 解决方案: Disallow deleting script function. Delete functions when sourcing a script again. 文件: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/scriptfile.c, src/testing.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0651 问题: Old style benchmark test still in list of distributed files. 解决方案: Remove the files from the list. 文件: Filelist Patch 8.2.0652 (after 8.2.0650) 问题: Compiler warning for char conversion. 解决方案: Use unsigned char buffer. 文件: src/userfunc.c Patch 8.2.0653 (after 8.2.0650) 问题: using uninitialized pointer. 解决方案: Move assignment up. (John Marriott) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0654 问题: Building with Python fails. 解决方案: Add missing argument. 文件: src/if_py_both.h Patch 8.2.0655 问题: Search code not sufficiently tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #5999) 文件: src/testdir/test_charsearch.vim, src/testdir/test_gn.vim, src/testdir/test_goto.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_search.vim, src/testdir/test_textformat.vim, src/testdir/test_textobjects.vim, src/testdir/test_visual.vim Patch 8.2.0656 问题: MS-Windows: redrawing right screen edge may not be needed. 解决方案: Check the build version. (Nobuhiro Takasaki, closes #6002) 文件: src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro Patch 8.2.0657 问题: Vim9: no check if called variable is a FuncRef. 解决方案: Add a type check. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0658 (after 8.2.0646) 问题: HP-UX build fails when setenv() is not defined. 解决方案: Change "colors" to "t_colors". (John Marriott) 文件: src/os_unix.c Patch 8.2.0659 问题: Vim9: no test for equal func type. 解决方案: Add a test. Improve type check. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0660 问题: The search.c file is a bit big. 解决方案: Split off the text object code to a separate file. (Yegappan Lakshmanan, closes #6007) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/proto.h, src/proto/search.pro, src/proto/textobject.pro, src/search.c, src/textobject.c Patch 8.2.0661 问题: Eval test is still old style. 解决方案: Change into new style tests. (Yegappan Lakshmanan, closes #6009) 文件: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test_eval.in, src/testdir/test_eval.ok, src/testdir/test_eval_stuff.vim Patch 8.2.0662 问题: Cannot use input() in a channel callback. 解决方案: Reset vgetc_busy. (closes #6010) 文件: src/globals.h, src/ex_getln.c, src/evalfunc.c, src/testdir/test_channel.vim Patch 8.2.0663 问题: Not all systemd temp files are recognized. 解决方案: Add two more patterns. (Jamie Macdonald, closes #6003) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0664 问题: Included undesired changes in Makefile. 解决方案: Revert the changes. 文件: src/Makefile Patch 8.2.0665 问题: Wrongly assuming Python executable is called "python". 解决方案: Use detected python command. (Ken Takata, closes #6016) Also use CheckFunction if possible. 文件: src/testdir/test_terminal.vim, src/testdir/check.vim Patch 8.2.0666 问题: Ruby test fails on MS-Windows. 解决方案: Remove the "maintainer" line. (Ken Takata, closes #6015) 文件: src/testdir/shared.vim, src/testdir/test_messages.vim, src/testdir/test_ruby.vim Patch 8.2.0667 问题: Cannot install Haiku version from source. 解决方案: Update Makefile and rdef file. (Emir Sarı, closes #6013) 文件: Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt, src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef Patch 8.2.0668 问题: Compiler warning for int/size_t usage. 解决方案: Change "int" to "size_t". (Mike Williams) 文件: src/vim9execute.c Patch 8.2.0669 问题: MS-Windows: display in VTP is a bit slow. 解决方案: Optimize the code. (Nobuhiro Takasaki, closes #6014) 文件: src/os_win32.c, src/screen.c Patch 8.2.0670 问题: Cannot change window when evaluating 'completefunc'. 解决方案: Make a difference between not changing text or buffers and also not changing window. 文件: src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c, src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c, src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c, src/undo.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.0671 问题: Haiku: compiler warnings. 解决方案: Avoid the warnings. Drop display_errors() copy. (Emir Sarı, closes #6018) 文件: .gitignore, src/gui.c, src/gui_haiku.cc Patch 8.2.0672 问题: Heredoc in scripts does not accept lower case marker. 解决方案: Allow lower case only in non-Vim scripts. (Ken Takata, closes #6019) 文件: src/evalvars.c, src/testdir/test_lua.vim, src/testdir/test_perl.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim Patch 8.2.0673 问题: Cannot build Haiku in shadow directory. 解决方案: Add symlink. (Ozaki Kiichi, closes #6023) 文件: src/Makefile Patch 8.2.0674 问题: Some source files are too big. 解决方案: Move text formatting functions to a new file. (Yegappan Lakshmanan, closes #6021) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h, src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro, src/proto/option.pro, src/proto/textformat.pro, src/textformat.c Patch 8.2.0675 问题: Vim9: no support for closures. 解决方案: Do not re-use stack entries. 文件: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/evalvars.c, src/proto/evalvars.pro Patch 8.2.0676 问题: Pattern in list of distributed files does not match. 解决方案: Drop "testdir/test_[a-z]*.ok". Add CI sed files. 文件: Filelist Patch 8.2.0677 问题: Vim9: no support for closures. 解决方案: Find variables in the outer function scope, so long as the scope exists. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9execute.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.0678 问题: Rare crash for popup menu. 解决方案: Check for NULL pointer. (Nobuhiro Takasaki, closes #6027) 文件: src/popupmenu.c Patch 8.2.0679 问题: Vim9: incomplete support for closures. 解决方案: At the end of a function copy arguments and local variables if they are still used by a referenced closure. 文件: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0680 问题: PTYGROUP and PTYMODE are unused. 解决方案: Remove from autoconf. (closes #6024) 文件: src/configure.ac, src/auto/configure, src/config.h.in Patch 8.2.0681 问题: Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé) 解决方案: Call end_search_hl() to make sure the previous pattern is freed. (closes #6028) 文件: src/screen.c Patch 8.2.0682 问题: Vim9: parsing function argument type can get stuck. 解决方案: Bail out when not making progress. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0683 问题: Vim9: parsing type does not always work. 解决方案: Handle func type without return value. Test more closures. Fix type check offset. Fix garbage collection. 文件: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0684 问题: Vim9: memory leak when using lambda. 解决方案: Move the funccal context to the partial. Free the function when exiting. 文件: src/vim9.h, src/structs.h, src/vim9execute.c, src/userfunc.c, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.0685 (after 8.2.0684) 问题: Build failure. 解决方案: Include missing changes. 文件: src/vim9compile.c Patch 8.2.0686 问题: Formatoptions not sufficiently tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #6031) 文件: src/testdir/test_normal.vim, src/testdir/test_textformat.vim Patch 8.2.0687 问题: Some tests do not work on FreeBSD. 解决方案: Enable modeline. Use WaitFor() in more cases. (Ozaki Kiichi, closes #6036) 文件: src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim Patch 8.2.0688 问题: Output clobbered if setting 'verbose' to see shell commands. 解决方案: Only output "Searching for" when 'verbose' is 11 or higher. 文件: src/scriptfile.c, runtime/doc/options.txt Patch 8.2.0689 问题: When using getaddrinfo() the error message is unclear. 解决方案: Use gai_strerror() to get the message. (Ozaki Kiichi, closes #6034) 文件: src/channel.c Patch 8.2.0690 问题: Line number of option set by modeline is wrong. 解决方案: Do not double the line number. (Ozaki Kiichi, closes #6035) 文件: src/option.c, src/testdir/test_modeline.vim Patch 8.2.0691 问题: Startup test fails. 解决方案: Adjust expected output from -V2 argument. 文件: src/testdir/test_startup.vim Patch 8.2.0692 问题: Startup test fails on MS-Windows. 解决方案: Allow for any path. 文件: src/testdir/test_startup.vim Patch 8.2.0693 问题: Closure using argument not tested. 解决方案: Add a test, make it work. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0694 问题: Haiku: channel and terminal do not work. 解决方案: Close files when the job has finished. (Ozaki Kiichi, closes #6039) 文件: src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c Patch 8.2.0695 问题: Vim9: cannot define a function inside a function. 解决方案: Initial support for :def inside :def. 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0696 问题: Vim9: nested function does not work properly 解决方案: Create a function reference. Check argument count. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.0697 问题: Vim9: memory leak when using nested function. 解决方案: Unreference function when deleting instructions. Adjust reference count for local variables. 文件: src/vim9compile.c, src/vim9execute.c Patch 8.2.0698 问题: Insert mode completion not fully tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #6041) 文件: src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_textformat.vim Patch 8.2.0699 问题: Vim9: not all errors tested. 解决方案: Add test for deleted function. Bail out on first error. 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.0700 问题: Vim9: converting error message to exception not tested. 解决方案: Test exception from error. Do not continue after :echoerr. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0701 问题: Vim9 test fails without job feature. 解决方案: Add feature check. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0702 问题: Running channel tests may leave running process behind. 解决方案: Make Python client exit when running into EOF. (Kurtis Rader, part of #6046) 文件: src/testdir/test_channel_pipe.py Patch 8.2.0703 问题: Vim9: closure cannot store value in outer context. 解决方案: Make storing value in outer context work. Make :disassemble accept a function reference. 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/eval.c, src/structs.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.0704 问题: Vim9: memory leak in disassemble test. 解决方案: Decrement refcount when creating funccal. 文件: src/vim9execute.c Patch 8.2.0705 问题: Indent tests don't run on CI for FreeBSD. 解决方案: Set modeline. (Ozaki Kiichi, closes #6048) 文件: .cirrus.yml, runtime/indent/testdir/runtest.vim Patch 8.2.0706 问题: Vim9: using assert_fails() causes function to finish. 解决方案: Check did_emsg instead of called_emsg. 文件: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.0707 问题: Vim9 function test fails. 解决方案: Adjust expected error code. 文件: src/testdir/test_vim9_func.vim Patch 8.2.0708 问题: Vim9: constant expressions are not simplified. 解决方案: Simplify string concatenation. 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0709 问题: MS-Windows: compiler warning for int vs size_t. 解决方案: Add type cast. (Mike Williams) 文件: src/channel.c Patch 8.2.0710 问题: Netbeans test sometimes fails. 解决方案: Mark any test using an external command as flaky. 文件: src/testdir/shared.vim Patch 8.2.0711 问题: With a long running Vim the temp directory might be cleared on some systems. 解决方案: Lock the temp directory. (closes #6044) 文件: src/config.h.in, src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h, src/os_unix.h Patch 8.2.0712 问题: Various code not fully tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #6049) 文件: src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_system.vim, src/testdir/test_termcodes.vim Patch 8.2.0713 问题: The pam_environment file is not recognized. 解决方案: Add a filetype pattern for pamenv. (closes #6051) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0714 问题: Vim9: handling constant expression does not scale. 解决方案: Use another solution, passing typval_T. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.0715 问题: Vim9: leaking memory. 解决方案: Free strings after concatenating them. 文件: src/vim9compile.c Patch 8.2.0716 问题: Vim9: another memory leak. 解决方案: Clear typval when failing. 文件: src/vim9compile.c Patch 8.2.0717 问题: Vim9: postponed constant expressions does not scale. 解决方案: Add a structure to pass around postponed constants. 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0718 问题: Gcc warning for returning pointer to local variable. (John Marriott) 解决方案: Return another pointer. 文件: src/evalvars.c Patch 8.2.0719 问题: Vim9: more expressions can be evaluated at compile time 解决方案: Recognize has('name'). 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.0720 问题: Occasional exit when encountering an X error. (Manfred Lotz) 解决方案: On an X error do not exit, do preserve files. 文件: src/os_unix.c Patch 8.2.0721 问题: Vim9: leaking memory when skipping. 解决方案: Disable skipping in generate_ppconst(). 文件: src/vim9compile.c Patch 8.2.0722 问题: Vim9: not handling constant expression for elseif. 解决方案: Use postponed constants. Delete the code for evaluating a constant expression. 文件: src/vim9compile.c Patch 8.2.0723 问题: Vim9: nested constant expression not evaluated compile time. 解决方案: Use compile_expr1() for parenthesis. 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.0724 问题: Vim9: appending to buffer/window/tab variable not tested 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0725 问题: Vim9: cannot call a function declared later in Vim9 script. 解决方案: Make two passes through the script file. 文件: src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/vim9compile.c, src/vim9execute.c, src/proto/vim9compile.pro, src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, src/proto/evalvars.pro, src/vim.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.0726 问题: Vim9: leaking memory when calling not compiled :def function. 解决方案: Check if function is compiled earlier. 文件: src/vim9execute.c Patch 8.2.0727 问题: MS-Windows: new gcc compiler does not support scanf format. 解决方案: Use "%ll" instead of "%I". (Ken Takata) 文件: src/vim.h Patch 8.2.0728 问题: Messages about a deadly signal are not left aligned. 解决方案: Output a CR before the NL. (Dominique Pellé, #6055) 文件: src/misc1.c, src/os_unix.c Patch 8.2.0729 问题: Vim9: When reloading a script variables are not cleared. 解决方案: When sourcing a script again clear all script-local variables. 文件: src/dict.c, src/proto/dict.pro, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.0730 问题: Vim9: Assignment to dict member does not work. 解决方案: Parse dict assignment. Implement getting dict member. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.0731 问题: Vim9: parsing declarations continues after :finish. 解决方案: Bail out when encountering :finish. 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0732 问题: Vim9: storing value in dict messes up stack. 解决方案: Correct item count of stack. 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.0733 问题: Vim9: assigning to dict or list argument does not work. 解决方案: Recognize an argument as assignment target. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.0734 问题: Vim9: leaking memory when using :finish. 解决方案: Do not check for next line in third pass. 文件: src/scriptfile.c Patch 8.2.0735 问题: Vim9: using uninitialized memory. 解决方案: Clear the arg_lvar field. 文件: src/vim9compile.c Patch 8.2.0736 问题: Some files not recognized as pamenv. 解决方案: Add pam_inv.conf. (closes #6065) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0737 问题: When shell doesn't support CTRL-Z Vim still handles it. 解决方案: Ignore the STOP signal if it was ignored on startup. (Kurtis Rader, closes #5990, closes #6058) 文件: src/os_unix.c Patch 8.2.0738 问题: Mouse handling in a terminal window not well tested. 解决方案: Add tests. (Yegappan Lakshmanan, closes #6052) 文件: src/testdir/term_util.vim, src/testdir/test_gui.vim, src/testdir/test_modeless.vim, src/testdir/test_terminal.vim Patch 8.2.0739 问题: Incomplete profiling when exiting because of a deadly signal. 解决方案: Call __gcov_flush() if available. 文件: src/os_unix.c, src/Makefile, .travis.yml Patch 8.2.0740 问题: Minor message mistakes. 解决方案: Change vim to Vim and other fixes. 文件: src/if_py_both.h, src/if_tcl.c, src/main.c Patch 8.2.0741 问题: Python tests fail because of changed message. 解决方案: Adjust the expected messages (Dominique Pellé, closes #6066) 文件: src/testdir/test86.ok, src/testdir/test87.ok Patch 8.2.0742 问题: Handling of a TERM signal not tested. 解决方案: Add a test for SIGTERM. (Dominique Pellé, closes #6055) 文件: src/testdir/test_signals.vim Patch 8.2.0743 问题: Can move to another buffer from a terminal in popup window. 解决方案: Do not allow "gf" or editing a file. (closes #6072) 文件: src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.vim Patch 8.2.0744 问题: The name vim is not capitalized in a message. 解决方案: Use "Vim" instead of "vim". 文件: src/main.c Patch 8.2.0745 问题: Crash on exit when not all popups are closed. 解决方案: Close popups when freeing all memory. Disable checking for popup when editing a file for now. 文件: src/misc2.c, src/ex_cmds.c Patch 8.2.0746 问题: popup_clear() hangs when a popup can't be closed. 解决方案: Bail out when a popup can't be closed. 文件: src/popupwin.c, src/proto/popupwin.pro Patch 8.2.0747 问题: Cannot forcefully close all popups. 解决方案: Add the "force" argument to popup_clear(). Use it after running a test. Put back the check for a popup when editing a file. 文件: runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c, src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c, src/ex_cmds.c, src/channel.c, src/testdir/runtest.vim, src/testdir/test_terminal.vim Patch 8.2.0748 问题: Cannot get a list of all popups. 解决方案: Add popup_list(). Use it in the test runner. 文件: runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c, src/proto/popupwin.pro, src/evalfunc.c, src/testdir/test_popupwin.vim, src/testdir/runtest.vim Patch 8.2.0749 问题: TERM signal test fails on FreeBSD. 解决方案: Do not check the messages, the may appear anywhere. (Dominique Pellé, closes #6075) 文件: src/testdir/test_signals.vim Patch 8.2.0750 问题: Netbeans test is a bit flaky. 解决方案: Allow for standard sign to be defined. Use WaitForAssert(). 文件: src/testdir/test_netbeans.vim Patch 8.2.0751 问题: Vim9: performance can be improved. 解决方案: Don't call break. Inline check for list materialize. Make an inline version of ga_grow(). 文件: src/macros.h, src/evalfunc.c, src/misc2.c, src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c, src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c, src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c, src/userfunc.c, src/if_py_both.h Patch 8.2.0752 问题: Terminal in popup window test is a bit flaky. 解决方案: Wait for shell job status to be "run". Mark as flaky test. 文件: src/testdir/test_popupwin.vim Patch 8.2.0753 问题: Vim9: expressions are evaluated in the discovery phase. 解决方案: Bail out if an expression is not a constant. Require a type for declared constants. 文件: src/vim.h, src/evalvars.c, src/eval.c, src/ex_eval.c, src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.0754 问题: Vim9: No test for forward declaration. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0755 问题: Vim9: No error when variable initializer is not a constant. 解决方案: Return FAIL when trying to get a variable value. Do not execute a script when an error is detected in the first or second phase. 文件: src/eval.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0756 (after 8.2.0249) 问题: MS-Windows: still a compiler warning. 解决方案: Move flag to another place in the Makefile. (Ken Takata, closes #6083) 文件: src/Make_mvc.mak Patch 8.2.0757 问题: Vim9: no test for MEMBER instruction. 解决方案: Add a test. Make matches stricter. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0758 问题: Vim9: no test for STORELIST and STOREDICT. 解决方案: Add a test. Make matches stricter. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.0759 (after 8.2.0751) 问题: Vim9: missing changes for performance improvements 解决方案: Use GA_GROW(). Don't call breakcheck so often. 文件: src/vim9execute.c Patch 8.2.0760 问题: Vim9: dict member errors not tested. 解决方案: Delete unreachable error. Add tests. 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.0761 问题: Vim9: instructions not tested 解决方案: Use a variable instead of a constant. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.0762 问题: Buffer is not considered modified after setting crypt key. 解决方案: Set the modified flag. (Christian Brabandt, closes #6082) 文件: src/optionstr.c, src/testdir/test_crypt.vim Patch 8.2.0763 问题: GUI test fails without the terminal feature. 解决方案: Check the terminal feature is supported. (Ken Takata, closes #6084) 文件: src/testdir/test_gui.vim Patch 8.2.0764 问题: Vim9: assigning to option not fully tested. 解决方案: Add more test cases. Allow using any type for assignment. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.0765 问题: In the GUI can't use all the modifiers. (Andri Möll) 解决方案: Do not apply Alt/Meta early, do it later like with the terminal. Avoid the Motif test from crashing. 文件: src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c, src/gui_motif.c Patch 8.2.0766 问题: Display error when using 'number' and 'breakindent'. 解决方案: Adjust extra spaces in the first row. (Ken Takata, closes #6089, closes #5986) 文件: src/drawline.c, src/testdir/test_breakindent.vim Patch 8.2.0767 问题: ModifyOtherKeys active when using a shell command in autocmd. 解决方案: Output T_CTE when going to cooked mode. (closes 5617) 文件: src/term.c Patch 8.2.0768 问题: Vim9: memory leak in script test. 解决方案: Clear typval before giving an error message. 文件: src/vim9execute.c Patch 8.2.0769 问题: VimLeavePre not triggered when Vim is terminated. 解决方案: Unblock autocommands. 文件: src/main.c, src/testdir/test_signals.vim Patch 8.2.0770 问题: Cannot map CTRL-B when using the GUI. 解决方案: Reset the CTRL modifier when used. (closes #6092) 文件: src/gui_gtk_x11.c Patch 8.2.0771 问题: Vim9: cannot call a compiled closure from not compiled code. 解决方案: Pass funcexe to call_user_func(). 文件: src/userfunc.c, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.0772 问题: Vim9: some variable initializations not tested. 解决方案: Add a few more tests 文件: src/testdir/test_vim9_script.vim Patch 8.2.0773 问题: Switching to raw mode every time ":" is used. 解决方案: When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the next time TMODE_RAW is used it is set, but not every time. 文件: src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c, src/os_win32.c Patch 8.2.0774 问题: t_TI and t_TE are output when using 'visualbell'. (Dominique Pellé) 解决方案: Do not change the terminal mode for a short sleep. Do not output t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an enum. 文件: src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c, src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro, src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c, src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h Patch 8.2.0775 问题: Not easy to call a Vim function from Lua. 解决方案: Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063) 文件: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.0776 问题: Libvterm code lags behind the upstream version. 解决方案: Include revision 719. 文件: Filelist, src/libvterm/README, src/libvterm/Makefile, src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc, src/libvterm/src/unicode.c Patch 8.2.0777 (after 8.2.0776) 问题: Terminal test fails. 解决方案: Adjust character position for double-wide characters. 文件: src/testdir/test_terminal.vim Patch 8.2.0778 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 720 - 723. 文件: src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile, src/libvterm/t/run-test.pl, src/libvterm/src/state.c, src/libvterm/t/92lp1805050.test Patch 8.2.0779 问题: Tmode_T not used everywhere. 解决方案: Also use tmode_T for settmode(). 文件: src/term.c, src/proto/term.pro Patch 8.2.0780 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 724 - 726. 文件: Filelist, src/libvterm/t/40screen_ascii.test, src/libvterm/t/60screen_ascii.test, src/libvterm/t/41screen_unicode.test, src/libvterm/t/61screen_unicode.test, src/libvterm/t/42screen_damage.test, src/libvterm/t/62screen_damage.test, src/libvterm/t/43screen_resize.test, src/libvterm/t/63screen_resize.test, src/libvterm/t/44screen_pen.test, src/libvterm/t/64screen_pen.test, src/libvterm/t/45screen_protect.test, src/libvterm/t/65screen_protect.test, src/libvterm/t/46screen_extent.test, src/libvterm/t/66screen_extent.test, src/libvterm/t/47screen_dbl_wh.test, src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/48screen_termprops.test, src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test, src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test, src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt Patch 8.2.0781 (after 8.2.0775) 问题: Compiler warning for not using value in Lua. 解决方案: Add "(void)". 文件: src/if_lua.c Patch 8.2.0782 问题: Cannot build with Lua on MS-Windows. 解决方案: Add DLL symbol for luaL_Loadstring. (Ken Takata) 文件: src/if_lua.c Patch 8.2.0783 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 728 - 729. 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test, src/libvterm/t/harness.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/26state_query.test Patch 8.2.0784 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 730 - 733. 文件: src/libvterm/src/vterm.c, src/libvterm/src/state.c, src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h, src/libvterm/t/harness.c Patch 8.2.0785 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 734 - 740. 文件: src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt, src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl, src/libvterm/Makefile, src/libvterm/CONTRIBUTING Patch 8.2.0786 问题: Channel test is flaky on FreeBSD. 解决方案: Set the socket TCP_NODELAY option. Adjust expected line count in netbeans test. (Ozaki Kiichi, closes #6097) 文件: src/testdir/test_channel.py, src/testdir/test_netbeans.vim Patch 8.2.0787 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 741 - 742. 文件: Filelist, src/libvterm/src/screen.c Patch 8.2.0788 问题: Memory leak in libvterm. 解决方案: free tmpbuffer. 文件: src/libvterm/src/vterm.c Patch 8.2.0789 问题: Vim9: expression testing lost coverage using constants. 解决方案: Use a few variables instead of constants. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.0790 问题: Vim9: list index not well tested. 解决方案: Add a few more tests. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0791 问题: A second popup window with terminal causes trouble. 解决方案: Disallow opening a second terminal-popup window. (closes #6101, closes #6103) Avoid defaulting to an invalid line number. 文件: runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c, src/testdir/test_popupwin.vim, src/testdir/test_terminal.vim Patch 8.2.0792 问题: Build failure with small features. 解决方案: Add #ifdef. 文件: src/popupwin.c Patch 8.2.0793 问题: MS-Windows: cannot build GUI with small features. (Michael Soyka) 解决方案: Add #ifdef around use of windowsVersion. (Ken Takata) 文件: src/os_win32.c Patch 8.2.0794 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 743 - 747. 文件: src/libvterm/src/state.c, src/libvterm/src/screen.c, src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h, src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl Patch 8.2.0795 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 748 - 754. 文件: src/libvterm/include/vterm.h, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/t/32state_flow.test, src/libvterm/t/60screen_ascii.test, src/libvterm/t/62screen_damage.test, src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c, src/libvterm/t/run-test.pl Patch 8.2.0796 问题: MS-Windows: compiler can't handle C99 construct in libvterm. 解决方案: Change to C90 construct. 文件: src/libvterm/src/state.c Patch 8.2.0797 问题: MS-Windows: compiler still can't handle C99 construct. 解决方案: Change to C90 construct. (Dominique Pellé, closes #6106) 文件: src/libvterm/src/state.c Patch 8.2.0798 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 755 - 758. 文件: src/libvterm/t/run-test.pl, src/libvterm/src/screen.c, src/libvterm/t/harness.c, src/libvterm/include/vterm.h, src/libvterm/src/parser.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/18state_termprops.test, src/libvterm/t/29state_fallback.test, src/libvterm/t/68screen_termprops.test, src/terminal.c Patch 8.2.0799 问题: Build fails if snprintf is not available. 解决方案: Use vim_snprintf(). 文件: src/libvterm/src/state.c Patch 8.2.0800 问题: Errors from failing test are unclear. 解决方案: Include text where parsing failed. 文件: src/json.c, src/testdir/test_json.vim Patch 8.2.0801 问题: Terminal test fails on Mac. 解决方案: Concatenate OSC pieces. 文件: src/terminal.c Patch 8.2.0802 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 759 - 762. 文件: src/terminal.c, src/libvterm/doc/seqs.txt, src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test Patch 8.2.0803 问题: Libvterm code lags behind the upstream version. 解决方案: Include revisions 764 - 767 文件: src/Makefile, src/libvterm/src/parser.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc Patch 8.2.0804 问题: Libvterm code lags behind the upstream version. 解决方案: Include revision 727, but add the index instead of switching between RGB and indexed. 文件: src/terminal.c, src/term.c, src/libvterm/include/vterm.h, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/30state_pen.test, src/libvterm/t/harness.c, src/libvterm/src/state.c, src/libvterm/t/26state_query.test, src/libvterm/t/64screen_pen.test Patch 8.2.0805 问题: Terminal key codes test fails on some systems. 解决方案: Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070) 文件: src/testdir/test_terminal.vim Patch 8.2.0806 问题: using "func!" after vim9script gives confusing error. 解决方案: Give E477. (closes #6107) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0807 问题: Cannot easily restore a mapping. 解决方案: Add mapset(). 文件: runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c src/testdir/test_maparg.vim Patch 8.2.0808 问题: Not enough testing for the terminal window. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6069) Fix memory leak. 文件: src/testdir/test_gui.vim, src/testdir/test_terminal.vim, src/terminal.c Patch 8.2.0809 问题: Build failure with small features. (Tony Mechelynck) 解决方案: Move "expr" inside #ifdef. 文件: src/map.c Patch 8.2.0810 问题: Error when appending "tagfile" to 'wildoptions'. 解决方案: use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin, closes #6105) 文件: src/optiondefs.h, src/testdir/test_options.vim Patch 8.2.0811 问题: Terminal keycode test is flaky. 解决方案: Use WaitForAssert() 文件: src/testdir/test_terminal.vim Patch 8.2.0812 问题: mapset() does not properly handle <> notation. 解决方案: Convert <> codes. (closes #6116) 文件: src/map.c, src/testdir/test_maparg.vim Patch 8.2.0813 问题: libvterm code is slightly different from upstream. 解决方案: Use upstream text to avoid future merge problems. Mainly comment style changes. 文件: src/libvterm/include/vterm.h, src/libvterm/src/rect.h, src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h, src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c, src/libvterm/src/mouse.c, src/libvterm/src/parser.c, src/libvterm/src/pen.c, src/libvterm/src/screen.c, src/libvterm/src/state.c, src/libvterm/src/unicode.c, src/libvterm/src/vterm.c Patch 8.2.0814 问题: Clang warning for implicit conversion. 解决方案: Add type cast. (Dominique Pellé, closes #6124) 文件: src/evalfunc.c Patch 8.2.0815 问题: maparg() does not provide enough information for mapset(). 解决方案: Add "lhsraw" and "lhsrawalt" items. Drop "simplified" 文件: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim Patch 8.2.0816 问题: Terminal test fails when compiled with Athena. 解决方案: Do give an error when the GUI is not running. (hint by Dominique Pellé, closes #5928, closes #6132) 文件: src/globals.h, src/gui.c, src/term.c, src/channel.c, src/testdir/test_terminal.vim Patch 8.2.0817 问题: Not enough memory allocated when converting string with special character. 解决方案: Reserve space for modifier code. (closes #6130) 文件: src/eval.c, src/testdir/test_functions.vim Patch 8.2.0818 问题: Vim9: using a discovery phase doesn't work well. 解决方案: Remove the discovery phase, instead compile a function only when it is used. Add :defcompile to compile def functions earlier. 文件: runtime/doc/vim9.txt, src/vim9script.c, src/structs.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h, src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.0819 问题: Compiler warning for unused variable. 解决方案: Remove the variable. 文件: src/evalvars.c Patch 8.2.0820 问题: Vim9: function type isn't set until compiled. 解决方案: Set function type early. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.0821 问题: Vim9: memory leak in expr test. 解决方案: Do not decrement the length of the list of functions if the current function is not at the end. 文件: src/vim9compile.c Patch 8.2.0822 问题: Vim9: code left over from discovery phase. 解决方案: Remove the dead code. 文件: src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h, src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c Patch 8.2.0823 问题: Vim9: script reload test is disabled. 解决方案: Compile a function in the context of the script where it was defined. Set execution stack for compiled function. Add a test that an error is reported for the right file/function. 文件: src/vim9compile.c, src/vim9execute.c, src/scriptfile.c, src/proto/scriptfile.pro, src/userfunc.c, src/globals.h, src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0824 (after 8.2.0817) 问题: Still not enough memory allocated when converting string with special character. 解决方案: Reserve space for expanding K_SPECIAL. (closes #6130) 文件: src/eval.c, src/testdir/test_functions.vim Patch 8.2.0825 问题: def_function() may return pointer that was freed. 解决方案: Set "fp" to NULL after freeing it. 文件: src/userfunc.c Patch 8.2.0826 问题: Vim9: crash in :defcompile. 解决方案: Restart the loop after a call to compile_def_function() caused the hash table to resize. 文件: src/userfunc.c Patch 8.2.0827 问题: Vim9: crash in :defcompile. 解决方案: Fix off-by-one error. 文件: src/userfunc.c Patch 8.2.0828 问题: Travis: regexp pattern doesn't work everywhere. 解决方案: Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146) 文件: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, ci/config.mk.sed, src/if_ruby.c Patch 8.2.0829 问题: filter() may give misleading error message. 解决方案: Also mention Blob as an allowed argument. 文件: src/list.c, src/testdir/test_filter_map.vim Patch 8.2.0830 问题: Motif: can't map "!". (Ben Jackson) 解决方案: Remove the shift modifier if it's already included in the key. (closes #6147) 文件: src/gui_x11.c Patch 8.2.0831 问题: Compiler warnings for integer sizes. 解决方案: Add type casts. (Mike Williams) 文件: src/libvterm/src/pen.c, src/terminal.c Patch 8.2.0832 问题: Compiler warning for uninitialized variable. (Tony Mechelynck) 解决方案: Add initial value. 文件: src/map.c Patch 8.2.0833 问题: Mapping <C-bslash> doesn't work in the GUI. 解决方案: Reset seenModifyOtherKeys when starting the GUI. (closes #6150) 文件: src/gui.c Patch 8.2.0834 问题: :drop command in terminal popup causes problems. 解决方案: Check for using a popup window. (closes #6151) 文件: src/ex_cmds.c, src/testdir/test_popupwin.vim Patch 8.2.0835 问题: Motif: mapping <C-bslash> still doesn't work. 解决方案: Accept CSI for K_SPECIAL. Do not apply CTRL to the character early. (closes #6150) 文件: src/getchar.c, src/gui_x11.c Patch 8.2.0836 问题: Not all :cdo output is visible. 解决方案: Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155) 文件: src/ex_cmds2.c, src/testdir/test_cdo.vim Patch 8.2.0837 问题: Compiler warning for value set but not used. 解决方案: Move variable inside #ifdef. 文件: src/channel.c Patch 8.2.0838 问题: MS-Windows: compiler warning for uninitialized variables. 解决方案: Initialize variables. 文件: src/screen.c Patch 8.2.0839 问题: Dropping modifier when putting a character back in typeahead. 解决方案: Add modifier to ins_char_typebuf(). (closes #6158) 文件: src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c, src/terminal.c, src/globals.h, src/testdir/test_messages.vim Patch 8.2.0840 问题: Search match count wrong when only match is in fold. 解决方案: Update search stats when in a closed fold. (Christian Brabandt, closes #6160, closes #6152) 文件: src/search.c, src/testdir/dumps/Test_searchstat_3.dump, src/testdir/test_search_stat.vim Patch 8.2.0841 问题: 'verbose' value 16 causes duplicate output. 解决方案: Combine levels 15 and 16 into one message. (Christian Brabandt, closes #6153) 文件: runtime/doc/options.txt, src/ex_docmd.c Patch 8.2.0842 (after 8.2.0837) 问题: MS-Windows: channel tests fail. 解决方案: Adjust #ifdefs. (closes #6162) 文件: src/channel.c Patch 8.2.0843 问题: Filetype elm not detected. 解决方案: Recognize *.elm files. (closes #6157) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0844 问题: Text properties crossing lines not handled correctly. 解决方案: When saving for undo include an extra line when needed and do not adjust properties when undoing. (Axel Forsman, closes #5875) 文件: src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h Patch 8.2.0845 问题: Text properties crossing lines not handled correctly. 解决方案: When joining lines merge text properties if possible. (Axel Forsman, closes #5839, closes #5683) 文件: src/testdir/test_textprop.vim, src/memline.c, src/ops.c, src/proto/textprop.pro, src/textprop.c, src/testdir/dumps/Test_textprop_01.dump Patch 8.2.0846 问题: Build failure with small features. 解决方案: Add #ifdef. 文件: src/undo.c Patch 8.2.0847 问题: Typval related code is spread out. 解决方案: Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro, src/typval.c Patch 8.2.0848 问题: MS-Windows: the Windows terminal code has some flaws. 解决方案: Do not redraw the right edge of the screen. Remove the background color trick. Flush the screen output buffer often. (Nobuhiro Takasaki, #5546) 文件: src/os_win32.c, src/proto/os_win32.pro, src/term.c Patch 8.2.0849 问题: BeOS code is not maintained and probably unused. 解决方案: Remove the BeOS code. (Emir Sarı, closes #5817) 文件: Filelist, src/Makefile, src/configure.ac, src/auto/configure, src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h, src/os_beos.rsrc, src/os_unix.c, src/proto.h, src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c, src/testdir/test_functions.vim, src/ui.c, src/vim.h Patch 8.2.0850 问题: MS-Windows: exepath() works differently from cmd.exe. 解决方案: Make exepath() work better on MS-Windows. (closes #6115) 文件: runtime/doc/eval.txt, src/os_win32.c, src/testdir/test_functions.vim Patch 8.2.0851 (after 8.2.0833) 问题: Can't distinguish <M-a> from accented "a" in the GUI. 解决方案: Use another way to make mapping <C-bslash> work. (closes #6163) 文件: src/gui.c, src/gui_gtk_x11.c, src/getchar.c Patch 8.2.0852 问题: Cannot map CTRL-S on some systems. 解决方案: Do not use CTRL-S for flow control. 文件: src/os_unix.c Patch 8.2.0853 问题: ml_delete() often called with FALSE argument. 解决方案: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE. 文件: src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c, src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c, src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c, src/proto/memline.pro Patch 8.2.0854 问题: Xxd cannot show offset as a decimal number. 解决方案: Add the "-d" flag. (Aapo Rantalainen, closes #5616) 文件: src/testdir/test_xxd.vim, src/xxd/xxd.c Patch 8.2.0855 问题: GUI tests fail because the test doesn't use a modifier. 解决方案: Add "\{xxx}" to be able to encode a modifier. 文件: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c, src/term.c, src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim, src/testdir/test_messages.vim Patch 8.2.0856 (after 8.2.0852) 问题: CTRL-S stops output. 解决方案: Invert the IXON flag. (closes #6166) 文件: src/os_unix.c Patch 8.2.0857 问题: GTK cell height can be a pixel too much. 解决方案: Subtract 3 instead of 1 when rounding. (closes #6168) 文件: src/gui_gtk_x11.c Patch 8.2.0858 问题: Not easy to require Lua modules. 解决方案: Improve use of Lua path. (Prabir Shrestha, closes #6098) 文件: Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro, src/testdir/test_lua.vim, src/testdir/testluaplugin/lua/testluaplugin/hello.lua, src/testdir/testluaplugin/lua/testluaplugin/init.lua Patch 8.2.0859 问题: No Turkish translation of the manual. 解决方案: Add Turkish translations. (Emir Sarı, closes #5641) 文件: Filelist, runtime/doc/Makefile, runtime/doc/evim-tr.1, runtime/doc/evim-tr.UTF-8.1, runtime/doc/vim-tr.1, runtime/doc/vim-tr.UTF-8.1, runtime/doc/vimdiff-tr.1, runtime/doc/vimdiff-tr.UTF-8.1, runtime/doc/vimtutor-tr.1, runtime/doc/vimtutor-tr.UTF-8.1, src/Makefile Patch 8.2.0860 问题: Cannot use CTRL-A and CTRL-X on unsigned numbers. 解决方案: Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144) 文件: runtime/doc/options.txt, src/ops.c, src/optionstr.c, src/testdir/test_increment.vim Patch 8.2.0861 问题: Cannot easily get all the current marks. 解决方案: Add getmarklist(). (Yegappan Lakshmanan, closes #6032) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mark.c, src/proto/mark.pro, src/testdir/test_marks.vim Patch 8.2.0862 问题: ":term ++curwin" makes the current buffer hidden. (Harm te Hennepe) 解决方案: Do not hide the current buffer. (closes #6170) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.0863 问题: Cannot set a separate color for underline/undercurl. 解决方案: Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011) 文件: runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h, src/highlight.c, src/optiondefs.h, src/proto/term.pro, src/screen.c, src/structs.h, src/term.c, src/term.h, src/testdir/test_options.vim Patch 8.2.0864 问题: Pragmas are indented all the way to the left. 解决方案: Add an option to indent pragmas like normal code. (Max Rumpf, closes #5468) 文件: runtime/doc/indent.txt, src/cindent.c, src/structs.h, src/testdir/test_cindent.vim Patch 8.2.0865 问题: Syntax foldlevel is taken from the start of the line. 解决方案: Add ":syn foldlevel" to be able to use the minimal foldlevel in the line. (Brad King, closes #6087) 文件: runtime/doc/syntax.txt, src/structs.h, src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.0866 问题: Not enough tests for buffer writing. 解决方案: Add more tests. Use CheckRunVimInTerminal in more places. (Yegappan Lakshmanan, closes #6167) 文件: src/testdir/test_arglist.vim, src/testdir/test_match.vim, src/testdir/test_messages.vim, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim, src/testdir/test_search.vim, src/testdir/test_signals.vim, src/testdir/test_signs.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_syntax.vim, src/testdir/test_tabpage.vim, src/testdir/test_timers.vim, src/testdir/test_vimscript.vim, src/testdir/test_writefile.vim Patch 8.2.0867 问题: Using \{xxx} for encoding a modifier is not nice. 解决方案: Use \<*xxx> instead, since it's the same as \<xxx> but producing a different code. 文件: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim, src/testdir/test_messages.vim Patch 8.2.0868 问题: trim() always trims both ends. 解决方案: Add an argument to only trim the beginning or end. (Yegappan Lakshmanan, closes #6126) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.0869 问题: It is not possible to customize the quickfix window contents. 解决方案: Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465) 文件: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0870 问题: MS-Windows: Control keys don't work in the GUI. 解决方案: Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto, closes #6175) 文件: src/gui.c Patch 8.2.0871 问题: Cannot use getmarklist() as a method. 解决方案: Make getmarklist() work as a method. Add one to the column number to match getpos(). (Yegappan Lakshmanan, closes #6176) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/mark.c, src/testdir/test_marks.vim Patch 8.2.0872 问题: XIM code is mixed with multibyte code. 解决方案: Move the XIM code to a separate file. (Yegappan Lakshmanan, closes #6177) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c, src/mbyte.c, src/proto.h, src/proto/gui_xim.pro, src/proto/mbyte.pro Patch 8.2.0873 问题: A .jl file can be sawfish (lisp) or Julia. 解决方案: Do not recognize *.jl as lisp, since it might be Julia. (closes #6178) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0874 问题: Signals test is a bit flaky. 解决方案: Flush the XautoOut file. Delete files that may be left behind from a failure. (Dominique Pellé, closes #6179) 文件: src/testdir/test_signals.vim Patch 8.2.0875 问题: Getting attributes for directory entries is slow. 解决方案: Add readdirex(). (Ken Takata, closes #5619) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/fileio.c, src/filepath.c, src/proto/fileio.pro, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.0876 问题: :pwd does not give a hint about the scope of the directory 解决方案: Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469) 文件: runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim Patch 8.2.0877 问题: Cannot get the search statistics. 解决方案: Add the searchcount() function. (Fujiwara Takuya, closes #4446) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/macros.h, src/proto/search.pro, src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0878 问题: No reduce() function. 解决方案: Add a reduce() function. (closes #5481) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim Patch 8.2.0879 问题: Compiler warning for unused function argument. 解决方案: Add UNUSED. 文件: src/search.c Patch 8.2.0880 (after 8.2.0877) 问题: Leaking memory when using searchcount(). 解决方案: Free the last used search pattern. 文件: src/search.c Patch 8.2.0881 问题: Compiler warning for argument type. 解决方案: Add type cast. (Mike Williams) 文件: src/ops.c Patch 8.2.0882 问题: Leaking memory when using reduce(). 解决方案: Free the intermediate value. 文件: src/list.c Patch 8.2.0883 问题: Memory leak in test 49. 解决方案: Free "sfile" from the exception. 文件: src/ex_docmd.c Patch 8.2.0884 问题: Searchcount() test fails on slower systems. 解决方案: Set a longer timeout. 文件: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0885 问题: "make shadow" does not link new lua test dir. 解决方案: Also link testdir/testluaplugin. (Elimar Riesebieter) 文件: src/Makefile Patch 8.2.0886 问题: Cannot use octal numbers in scriptversion 4. 解决方案: Add the "0o" notation. (Ken Takata, closes #5304) 文件: runtime/doc/eval.txt, src/charset.c, src/evalfunc.c, src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, src/vim.h Patch 8.2.0887 问题: Searchcount().exact_match is 1 right after a match. 解决方案: Use LT_POS() instead of LTOREQ_POS(). (closes #6189) 文件: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0888 问题: Readdirex() returns size -2 for a directory. 解决方案: Add missing "else". (Ken Takata, closes #6185) 文件: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.0889 问题: Using old style comments. 解决方案: Use // comments. (Yegappan Lakshmanan, closes #6190) 文件: src/gui_xim.c Patch 8.2.0890 问题: No color in terminal window when 'termguicolors' is set. 解决方案: Clear the underline color. (closes #6186) 文件: src/highlight.c Patch 8.2.0891 问题: Clang warns for invalid conversion. 解决方案: Use zero instead of INVALCOLOR. 文件: src/highlight.c Patch 8.2.0892 问题: Ubsan warns for undefined behavior. 解决方案: Use unsigned instead of signed variable. (Dominique Pellé, closes #6193) 文件: src/regexp_nfa.c Patch 8.2.0893 问题: Assert_equalfile() does not take a third argument. 解决方案: Implement the third argument. (Gary Johnson) 文件: runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c, src/testdir/test_assert.vim, src/testing.c Patch 8.2.0894 问题: :mkspell can take very long if the word count is high. 解决方案: Use long to avoid negative numbers. Increase the limits by 20% if the compression did not have effect. 文件: src/spellfile.c Patch 8.2.0895 问题: :mkspell output does not mention the tree type. 解决方案: Back out increasing the limits, it has no effect. Mention the tree being compressed. Only give a message once per second. 文件: src/spellfile.c Patch 8.2.0896 问题: Crash when calling searchcount() with a string. 解决方案: Check the argument is a dict. (closes #6192) 文件: src/search.c, src/testdir/test_search_stat.vim Patch 8.2.0897 问题: List of functions in patched version is outdated. 解决方案: Update the function lists only. 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt Patch 8.2.0898 问题: Missing help for a function goes unnoticed. 解决方案: Add a test. (Gary Johnson) 文件: src/testdir/test_function_lists.vim, src/testdir/Make_all.mak Patch 8.2.0899 问题: Assert_equalfile() does not give a hint about the difference. 解决方案: Display the last seen text. 文件: src/testing.c, src/testdir/test_assert.vim Patch 8.2.0900 问题: Function list test fails on MS-Windows. 解决方案: Make sure the fileformat is "unix" 文件: src/testdir/test_function_lists.vim Patch 8.2.0901 问题: Formatting CJK text isn't optimal. 解决方案: Properly break CJK lines. (closes #3875) 文件: runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h, src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c, src/testdir/test_cjk_linebreak.vim Patch 8.2.0902 问题: Using searchcount() in 'statusline' causes an error. 解决方案: Avoid saving/restoring the search pattern recursively. (closes #6194) 文件: src/search.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstat_4.dump Patch 8.2.0903 问题: comparing WINVER does not work correctly. 解决方案: Use arithmetic expansion. (Ozaki Kiichi, closes #6197) 文件: src/Make_cyg_ming.mak Patch 8.2.0904 问题: Assuming modifyOtherKeys for rhs of mapping. 解决方案: Ignore seenModifyOtherKeys for mapped characters. (closes #6200) 文件: src/getchar.c, src/testdir/test_gui.vim Patch 8.2.0905 问题: Test coverage could be better. 解决方案: Add a couple of tests. (Dominique Pellé, closes #6202) 文件: src/testdir/test_cmdline.vim, src/testdir/test_ga.vim Patch 8.2.0906 问题: When setting 'termguicolors' SpellBad is no longer red. 解决方案: Only use the RGB guisp color for cterm when using the "underline" or "undercurl" attributes to avoid the background color to be cleared. Also make t_8u empty when the termresponse indicates a real xterm. (closes #6207) 文件: src/highlight.c, src/term.c Patch 8.2.0907 问题: When using :global clipboard isn't set correctly. 解决方案: Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian Brabandt, closes #6203, closes #6198) 文件: src/clipboard.c, src/testdir/test_global.vim Patch 8.2.0908 问题: Crash when changing the function table while listing it. 解决方案: Bail out when the function table changes. (closes #6209) 文件: src/userfunc.c, src/testdir/test_timers.vim Patch 8.2.0909 问题: Cannot go back to the previous local directory. 解决方案: Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362) 文件: runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c, src/structs.h, src/testdir/test_cd.vim, src/window.c Patch 8.2.0910 问题: Vim is not reproducibly buildable. 解决方案: Use the $SOURCE_DATE_EPOCH environment variable in configure. (James McCoy, closes #513) Give a warning about using it. 文件: src/config.h.in, src/config.mk.in, src/configure.ac, src/auto/configure, src/version.c, src/Makefile Patch 8.2.0911 问题: Crash when opening a buffer for the cmdline window fails. (Chris Barber) 解决方案: Check do_ecmd() succeeds. Reset got_int if "q" was used at the more prompt. (closes #6211) 文件: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_cmdwin_interrupted.dump Patch 8.2.0912 问题: A few test cases for CJK formatting are disabled. 解决方案: Fix the tests and enable them. (closes #6212) 文件: src/testdir/test_cjk_linebreak.vim Patch 8.2.0913 问题: Code for resetting v:register is duplicated. 解决方案: Add reset_reg_var(). 文件: src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c Patch 8.2.0914 问题: MS-Windows: cannot specify a "modified by" text. 解决方案: Add MODIFIED_BY in the MSVC build file. (Chen Lei, closes #1275) 文件: src/Make_mvc.mak Patch 8.2.0915 问题: Search() cannot skip over matches like searchpair() can. 解决方案: Add an optional "skip" argument. (Christian Brabandt, closes #861) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.vim, src/structs.h, src/evalvars.c, src/proto/evalvars.pro Patch 8.2.0916 问题: Mapping with partly modifyOtherKeys code does not work. 解决方案: If there is no mapping with a separate modifier include the modifier in the key and then try mapping again. (closes #6200) 文件: src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c, src/proto/term.pro, src/testdir/test_termcodes.vim Patch 8.2.0917 问题: Quickfix entries do not support a "note" type. 解决方案: Add support for "note". (partly by Yegappan Lakshmanan, closes #5527, closes #6216) 文件: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0918 问题: Duplicate code for evaluating expression argument. 解决方案: Merge the code and make the use more flexible. 文件: src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/proto/evalvars.pro, src/structs.h Patch 8.2.0919 问题: Merging modifier for modifyOtherKeys is done twice. 解决方案: Remove the merging done in vgetc(). 文件: src/getchar.c, src/ex_getln.c Patch 8.2.0920 问题: Writing viminfo fails with a circular reference. 解决方案: Use copyID to detect the cycle. (closes #6217) 文件: src/testdir/test_viminfo.vim, src/viminfo.c Patch 8.2.0921 问题: CTRL-W T in cmdline window causes trouble. 解决方案: Disallow CTRL-W T in the cmdline window. Add more tests. (Naruhiko Nishino, closes #6219) 文件: src/testdir/test_cmdline.vim, src/window.c Patch 8.2.0922 问题: Search test fails. 解决方案: Remove failure tests for calls that no longer fail. 文件: src/testdir/test_search.vim Patch 8.2.0923 问题: Cmdline test is slow. 解决方案: Use WaitForAssert(). 文件: src/testdir/test_cmdline.vim Patch 8.2.0924 问题: Cannot save and restore a register properly. 解决方案: Add getreginfo() and make setreg() accept a dictionary. (Andy Massimino, closes #3370) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/register.pro, src/register.c, src/testdir/test_eval_stuff.vim, src/testdir/test_registers.vim Patch 8.2.0925 问题: Getcompletion() does not return command line arguments. 解决方案: Add the "cmdline" option. (Shougo, closes #1140) 文件: runtime/doc/eval.txt, src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.0926 问题: Cmdline test fails on Appveyor. 解决方案: Add CR to the commands. (Naruhiko Nishino, closes #6220) 文件: src/testdir/test_cmdline.vim Patch 8.2.0927 问题: Some sshconfig and ssdhconfig files are not recognized. 解决方案: Add filetype patterns. 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0928 问题: Many type casts are used for vim_strnsave(). 解决方案: Make the length argument size_t instead of int. (Ken Takata, closes #5633) Remove some type casts. 文件: src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c Patch 8.2.0929 问题: v:register is not cleared after an operator was executed. 解决方案: Clear v:register after finishing an operator (Andy Massimino, closes #5305) 文件: src/normal.c, src/testdir/test_registers.vim Patch 8.2.0930 问题: Script filetype detection trips over env -S argument. 解决方案: Remove "-S" and "--ignore-environment". (closes #5013) Add tests. 文件: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.0931 问题: Some remarks about BeOS remain. 解决方案: Remove BeOS remarks from the help and other files. (Emir Sarı, closes #6221) 文件: READMEdir/README_extra.txt, runtime/doc/options.txt, runtime/doc/os_beos.txt, runtime/doc/os_vms.txt, runtime/doc/vi_diff.txt, src/INSTALL Patch 8.2.0932 问题: Misspelling spelllang. 解决方案: Add an "l". (Dominique Pellé) 文件: src/optionstr.c, src/proto/spell.pro, src/spell.c Patch 8.2.0933 问题: 'quickfixtextfunc' does not get window ID of location list. 解决方案: Add "winid" to the dict argument. (Yegappan Lakshmanan, closes #6222) 文件: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0934 问题: Running lhelpgrep twice in a help window doesn't jump to the help topic. 解决方案: Check whether any window with the location list is present. (Yegappan Lakshmanan, closes #6215) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0935 问题: Flattening a list with existing code is slow. 解决方案: Add flatten(). (Mopp, closes #3676) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/Make_all.mak, src/testdir/test_flatten.vim Patch 8.2.0936 问题: Some terminals misinterpret the code for getting cursor style. 解决方案: Send a sequence to the terminal and check the result. (IWAMOTO Kouichi, closes #2126) Merged with current code. 文件: src/main.c, src/term.c, src/proto/term.pro, src/testdir/term_util.vim, src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim, src/testdir/test_startup_utf8.vim, src/testdir/dumps/Test_balloon_eval_term_01.dump, src/testdir/dumps/Test_balloon_eval_term_01a.dump, src/testdir/dumps/Test_balloon_eval_term_02.dump, src/testdir/dumps/Test_terminal_all_ansi_colors.dump Patch 8.2.0937 问题: Asan failure in the flatten() test. 解决方案: Free the flattened list. 文件: src/list.c Patch 8.2.0938 问题: NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs) 解决方案: Use utf_fold() when possible. (ref. neovim #12456) 文件: src/macros.h, src/diff.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.0939 问题: checking for term escape sequences is long and confusing 解决方案: Refactor code into separate functions. 文件: src/term.c Patch 8.2.0940 (after 8.2.0939) 问题: Build failure with tiny features. 解决方案: Add #ifdef. Add UNUSED. A bit more cleaning up. 文件: src/term.c Patch 8.2.0941 问题: Detecting terminal properties is unstructured. 解决方案: Add a table with terminal properties. Set properties when a terminal is detected. 文件: src/term.c Patch 8.2.0942 问题: Expanding to local dir after homedir keeps "~/". 解决方案: Adjust modify_fname(). (Christian Brabandt, closes #6205, closes #5979) 文件: src/filepath.c, src/testdir/test_fnamemodify.vim Patch 8.2.0943 问题: Displaying ^M or ^J depends on current buffer. 解决方案: Pass the displayed buffer to transchar(). (closes #6225) 文件: src/drawline.c, src/charset.c, src/proto/charset.pro, src/ex_cmds.c, src/gui_beval.c, src/message.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_unprintable_01.dump, src/testdir/dumps/Test_display_unprintable_02.dump Patch 8.2.0944 问题: Xxd test leaves file behind. 解决方案: Delete the file "XXDfile". (Christian Brabandt, closes #6228) 文件: src/testdir/test_xxd.vim Patch 8.2.0945 问题: Cannot use "z=" when 'spell' is off. 解决方案: Make "z=" work even when 'spell' is off. (Christian Brabandt, Gary Johnson, closes #6227) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/spell.c, src/spellsuggest.c, src/testdir/test_spell.vim, src/globals.h Patch 8.2.0946 问题: Cannot use "q" to cancel a number prompt. 解决方案: Recognize "q" instead of ignoring it. 文件: src/misc1.c, src/testdir/test_functions.vim Patch 8.2.0947 问题: Readdirex() doesn't handle broken link properly. 解决方案: Small fixes to readdirex(). (Christian Brabandt, closes #6226, closes #6213) 文件: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.0948 问题: Spell test fails. 解决方案: Adjust expected text of the prompt. 文件: src/testdir/test_spell.vim Patch 8.2.0949 问题: Strptime() does not use DST. 解决方案: Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230) 文件: src/time.c, src/testdir/test_functions.vim Patch 8.2.0950 问题: Tagjump test fails. 解决方案: Adjust expected text of the prompt. 文件: src/testdir/test_tagjump.vim Patch 8.2.0951 问题: Search stat test has leftover from debugging. 解决方案: Remove line that writes a file. (Christian Brabandt, closes #6224) 文件: src/testdir/test_search_stat.vim Patch 8.2.0952 问题: No simple way to interrupt Vim. 解决方案: Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes, closes #1718) 文件: runtime/doc/autocmd.txt, src/vim.h, src/autocmd.c, src/getchar.c, src/globals.h, src/os_unix.c, src/testdir/test_autocmd.vim Patch 8.2.0953 问题: Spell checking doesn't work for CamelCased words. 解决方案: Add the "camel" value in the new option 'spelloptions'. (closes #1235) 文件: runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h, src/option.h, src/option.c, src/buffer.c, src/optionstr.c, src/testdir/gen_opt_test.vim, src/testdir/test_spell.vim Patch 8.2.0954 问题: Not all desktop files are recognized. 解决方案: Add the *.directory pattern. (Eisuke Kawashima, closes #3317) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0955 (after 8.2.0953) 问题: Build fails. 解决方案: Add missing struct change. 文件: src/structs.h Patch 8.2.0956 (after 8.2.0953) 问题: Spell test fails. 解决方案: Add missing change the spell checking. 文件: src/spell.c Patch 8.2.0957 问题: Compiler warning for uninitialized variable. (Tony Mechelynck) 解决方案: Initialize one variable. 文件: src/spell.c Patch 8.2.0958 问题: Not sufficient testing for buffer writing. 解决方案: Add a few tests. (Yegappan Lakshmanan, closes #6238) 文件: src/testdir/test_backup.vim, src/testdir/test_writefile.vim Patch 8.2.0959 问题: Using 'quickfixtextfunc' is a bit slow. 解决方案: Process a list of entries. (Yegappan Lakshmanan, closes #6234) 文件: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.0960 问题: Cannot use :import in legacy Vim script. 解决方案: Support :import in any Vim script. 文件: src/vim9script.c, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.0961 问题: MS-Windows: no completion for locales. 解决方案: Use the directories in $VIMRUNTIME/lang to complete locales. (Christian Brabandt, closes 36248) 文件: src/cmdexpand.c, src/ex_cmds2.c, src/testdir/test_cmdline.vim Patch 8.2.0962 问题: Terminal test sometimes hangs on Travis. 解决方案: Do show output for this test temporarily. 文件: src/testdir/Makefile Patch 8.2.0963 问题: Number increment/decrement does not work with 'virtualedit'. 解决方案: Handle coladd changing. (Christian Brabandt, closes #6240, closes #923) 文件: runtime/doc/options.txt, runtime/doc/various.txt, src/ops.c, src/testdir/test_increment.vim Patch 8.2.0964 问题: TextYankPost does not provide info about Visual selection. 解决方案: Add the 'visual' key in v:event. (closes #6249) 文件: runtime/doc/autocmd.txt, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.0965 问题: Has_funcundefined() is not used. 解决方案: Delete the function. (Dominique Pellé, closes #6242) 文件: src/autocmd.c, src/proto/autocmd.pro Patch 8.2.0966 问题: 'shortmess' flag "n" not used in two places. 解决方案: Make use of the "n" flag consistent. (Nick Jensen, closes #6245, closes #6244) 文件: src/bufwrite.c, src/proto/bufwrite.pro, src/buffer.c, src/fileio.c, src/testdir/dumps/Test_popup_textprop_corn_5.dump, src/testdir/dumps/Test_start_with_tabs.dump Patch 8.2.0967 问题: Unnecessary type casts for vim_strnsave(). 解决方案: Remove the type casts. 文件: src/evalvars.c, src/ex_cmds.c, src/ex_eval.c, src/fileio.c, src/filepath.c, src/findfile.c, src/highlight.c, src/if_ruby.c, src/insexpand.c, src/json.c, src/mark.c, src/memline.c, src/menu.c, src/misc1.c, src/ops.c, src/os_win32.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, src/sign.c, src/syntax.c, src/term.c, src/terminal.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/if_perl.xs Patch 8.2.0968 问题: No proper testing of the 'cpoptions' flags. 解决方案: Add tests. (Yegappan Lakshmanan, closes #6251) 文件: src/testdir/Make_all.mak, src/testdir/test_cpoptions.vim, src/testdir/test_edit.vim, src/testdir/test_normal.vim Patch 8.2.0969 问题: Assert_equal() output for dicts is hard to figure out. 解决方案: Only show the different items. 文件: src/testing.c, src/testdir/test_assert.vim Patch 8.2.0970 问题: Terminal properties are not available in Vim script. 解决方案: Add the terminalprops() function. 文件: src/term.c, src/proto/term.pro, src/evalfunc.c, src/main.c, src/testing.c, src/globals.h, src/testdir/test_termcodes.vim, runtime/doc/usr_41.txt, runtime/doc/eval.txt, runtime/doc/testing.txt Patch 8.2.0971 问题: Build with tiny features fails. 解决方案: Add #ifdef. 文件: src/term.c Patch 8.2.0972 问题: Vim9 script variable declarations need a type. 解决方案: Make "let var: type" declare a script-local variable. 文件: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.0973 问题: Vim9: type is not checked when assigning to a script variable. 解决方案: Check the type. 文件: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim Patch 8.2.0974 问题: Vim9: memory leak when script var has wrong type. 解决方案: Free the variable name. 文件: src/vim9script.vim Patch 8.2.0975 问题: Vim9: script variable does not accept optional s: prefix. 解决方案: Adjust the accepted syntax. 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.0976 问题: Some 'cpoptions' not tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6253) 文件: src/testdir/test_cd.vim, src/testdir/test_charsearch.vim, src/testdir/test_cpoptions.vim, src/testdir/test_normal.vim Patch 8.2.0977 问题: t_8u is made empty for the wrong terminals. (Dominique Pelle) 解决方案: Invert the check for TPR_YES. (closes #6254) 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.0978 问题: Leaking memory in termcodes test. 解决方案: Set t_8u with set_option_value(). 文件: src/term.c Patch 8.2.0979 问题: A couple of screendump tests fail. 解决方案: Do not redraw when clearing t_8u. 文件: src/term.c Patch 8.2.0980 问题: Raku file extension not recognized. (Steven Penny) 解决方案: Recognize .raku and .rakumod. (closes #6255) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0981 问题: Vim9: cannot compile "[var, var] = list". 解决方案: Implement list assignment. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0982 问题: Insufficient testing for reading/writing files. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6257) Add "ui_delay" to test_override() and use it for the CTRL-O test. 文件: src/testing.c, src/globals.h, src/ui.c, runtime/doc/testing.txt, src/testdir/test_autocmd.vim, src/testdir/test_edit.vim, src/testdir/test_filechanged.vim, src/testdir/test_writefile.vim Patch 8.2.0983 问题: SConstruct file type not recognized. 解决方案: Use python for SConstruct files. (Roland Hieber) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.0984 问题: Not using previous window when closing a shell popup window. 解决方案: Use "prevwin" if it was set. (closes #6267) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.0985 问题: Simplify() does not remove slashes from "///path". 解决方案: Reduce > 2 slashes to one. (closes #6263) 文件: src/findfile.c, src/testdir/test_functions.vim Patch 8.2.0986 (after 8.2.0985) 问题: MS-Windows: functions test fails. 解决方案: Only simplify ///path on Unix. 文件: src/testdir/test_functions.vim Patch 8.2.0987 问题: Vim9: cannot assign to [var; var]. 解决方案: Assign rest of items to a list. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/list.c, src/proto/list.pro, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.0988 问题: Getting directory contents is always case sorted. 解决方案: Add sort options and v:collate. (Christian Brabandt, closes #6229) 文件: runtime/doc/eval.txt, runtime/doc/mlang.txt, src/auto/configure, src/cmdexpand.c, src/config.h.in, src/configure.ac, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c, src/filepath.c, src/globals.h, src/proto/fileio.pro, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/vim.h Patch 8.2.0989 问题: Crash after resizing a terminal window. (August Masquelier) 解决方案: Add check for valid row in libvterm. (closes #6273) 文件: src/libvterm/src/state.c, src/libvterm/src/screen.c Patch 8.2.0990 (after 8.2.0988) 问题: Using duplicate error number. 解决方案: Use an unused error number. Add a test for it. 文件: src/globals.h, src/testdir/test_functions.vim Patch 8.2.0991 问题: Cannot get window type for autocmd and preview window. 解决方案: Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277) 文件: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_autocmd.vim, src/testdir/test_preview.vim Patch 8.2.0992 问题: Vim9: crash when using :import in the Vim command. 解决方案: Give an error when using :import outside of a script. (closes #6271) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim, src/testdir/term_util.vim Patch 8.2.0993 问题: Vim9 script test fails with normal features. 解决方案: Use :func instead of :def for now. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0994 问题: Vim9: missing function causes compilation error. 解决方案: Call test function indirectly. 文件: src/testdir/test_vim9_script.vim Patch 8.2.0995 问题: Insufficient testing for the readdir() sort option. 解决方案: Add a few more tests. (Christian Brabandt, closes #6278) 文件: src/testdir/test_functions.vim Patch 8.2.0996 问题: Using "aucmdwin" in win_gettype() is not ideal. 解决方案: Rename to "autocmd". 文件: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_autocmd.vim Patch 8.2.0997 问题: Cannot execute a register containing line continuation. 解决方案: Concatenate lines where needed. (Yegappan Lakshmanan, closes #6272) 文件: runtime/doc/repeat.txt, src/register.c, src/testdir/test_registers.vim Patch 8.2.0998 问题: Not all tag code is tested. 解决方案: Add a few more test cases. (Yegappan Lakshmanan, closes #6284) 文件: src/testdir/test_tagjump.vim Patch 8.2.0999 问题: Moving to next sentence gets stuck on quote. 解决方案: When moving to the next sentence doesn't result in moving, advance a character and try again. (closes #6291) 文件: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.1000 问题: Get error when leaving Ex mode with :visual and a CmdLineEnter autocommand was used. 解决方案: Reset ex_pressedreturn. (closes #6293) 文件: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.1001 问题: Vim9: crash with nested "if" and assignment. 解决方案: Skip more of the assignment. Do not set ctx_skip when code is reachable. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1002 问题: Test may fail when run directly. 解决方案: Check if g:run_nr exists. (Christian Brabandt, closes #6285) 文件: src/testdir/term_util.vim Patch 8.2.1003 问题: Vim9: return type of sort() is too generic. 解决方案: Get type from the first argument. (closes #6292) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1004 问题: Line numbers below filler lines not always updated. 解决方案: Don't break out of the win_line() loop too early. (Christian Brabandt, closes #6294, closes #6138) 文件: src/drawline.c, src/testdir/dumps/Test_diff_rnu_01.dump, src/testdir/dumps/Test_diff_rnu_02.dump, src/testdir/dumps/Test_diff_rnu_03.dump, src/testdir/test_diffmode.vim Patch 8.2.1005 问题: Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing. 解决方案: Use an enum value. 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1006 问题: Vim9: require unnecessary return statement. 解决方案: Improve the use of the had_return flag. (closes #6270) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1007 问题: Completion doesn't work after ":r ++arg !". 解决方案: Skip over "++arg". (Christian Brabandt, closes #6275, closes #6258) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.1008 问题: Vim9: no test for disassembling newly added instructions. 解决方案: Add a function and check disassembly. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.1009 问题: Vim9: some failures not checked for. 解决方案: Add test cases. Remove unused code. 文件: src/testdir/test_vim9_script.vim, src/vim9execute.c Patch 8.2.1010 问题: Build failure in libvterm with debug enabled. (John Little) 解决方案: Use "->" instead of ".". 文件: src/libvterm/src/state.c Patch 8.2.1011 问题: Vim9: some code not tested. 解决方案: Add a few more test cases. Reorder checks for clearer error. Remove unreachable code. 文件: src/evalvars.c, src/vim9script.c, src/vim9execute.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1012 问题: Vim9: cannot declare single character script variables. 解决方案: Don't see "b:", "s:", etc. as namespace. Fix item size of sn_var_vals. 文件: src/vim9script.c, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.1013 问题: Channel tests can be a bit flaky. 解决方案: Set the g:test_is_flaky flag in SetUp(). 文件: src/testdir/test_channel.vim Patch 8.2.1014 问题: Using "name" for a string result is confusing. 解决方案: Rename to "end". 文件: src/typval.c Patch 8.2.1015 问题: Popup filter gets key with modifier prepended when using modifyOtherKeys. 解决方案: Remove the shift modifier when it is included in the key, also when the Alt or Meta modifier is used. 文件: src/term.c, src/misc2.c, src/testdir/test_popupwin.vim Patch 8.2.1016 问题: Vim9: test fails when channel feature is missing. 解决方案: Process an :if command when skipping 文件: src/vim9compile.c Patch 8.2.1017 问题: Appveyor output doesn't show MinGW console features. 解决方案: List the features of the console build. 文件: ci/appveyor.bat Patch 8.2.1018 问题: Typo in enum value. (James McCoy) 解决方案: Fix the typo. 文件: src/vim9compile.c Patch 8.2.1019 问题: Mapping <M-S-a> does not work in the GUI. 解决方案: Move the logic to remove the shift modifier to may_remove_shift_modifier() and also use it in the GUI. 文件: src/gui_gtk_x11.c, src/misc2.c, src/proto/misc2.pro, src/term.c Patch 8.2.1020 问题: Popupwin test fails in the GUI. 解决方案: Send GUI byte sequence for <C-S-a>. 文件: src/testdir/test_popupwin.vim Patch 8.2.1021 问题: Ruby interface not tested enough. 解决方案: Add a couple more tests. (Dominique Pellé, closes #6301) 文件: src/testdir/test_ruby.vim Patch 8.2.1022 问题: Various parts of code not covered by tests. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6300) 文件: src/testdir/test_blob.vim, src/testdir/test_cpoptions.vim, src/testdir/test_digraph.vim, src/testdir/test_edit.vim, src/testdir/test_iminsert.vim, src/testdir/test_paste.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_selectmode.vim, src/testdir/test_tabpage.vim, src/testdir/test_tagjump.vim, src/testdir/test_textformat.vim, src/testdir/test_viminfo.vim, src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim Patch 8.2.1023 问题: Vim9: redefining a function uses a new index every time. 解决方案: When redefining a function clear the contents and re-use the index. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/structs.h, src/eval.c, src/evalvars.c, src/vim9execute.c Patch 8.2.1024 问题: Vim9: no error for using "let g:var = val". 解决方案: Add an error. 文件: src/evalvars.c, src/globals.h, src/structs.h, src/vim9compile.c, src/scriptfile.c, src/userfunc.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1025 问题: Tabpage menu and tabline not sufficiently tested. 解决方案: Add tests. (Yegappan Lakshmanan, closes #6307) 文件: src/testdir/test_digraph.vim, src/testdir/test_tabpage.vim Patch 8.2.1026 问题: Vim9: cannot break the line after "->". 解决方案: Check for a continuation line after "->", "[" and ".". Ignore trailing white space. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1027 问题: GUI: multibyte characters do not work in a terminal. 解决方案: Do not assume a key is one byte. (closes #6304) 文件: src/gui_gtk_x11.c, src/gui_x11.c Patch 8.2.1028 问题: Vim9: no error for declaring buffer, window, etc. variable. 解决方案: Give an error. Unify the error messages. 文件: src/evalvars.c, src/globals.h, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1029 问题: Vim9: cannot chain function calls with -> at line start. 解决方案: Peek ahead for a following line starting with "->". (closes #6306) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1030 问题: Reducing size of a terminal window may cause a crash. 解决方案: Make sure the row and column don't become negative. (closes #6273) 文件: src/libvterm/src/state.c, src/libvterm/src/screen.c Patch 8.2.1031 问题: Build failure with Perl5.32. 解决方案: Define a few more functions. (Felix Yan, closes #6310) 文件: src/if_perl.xs Patch 8.2.1032 问题: Error message for declaring a variable cannot be translated. 解决方案: Enclose in _(). Make environment variable a separate message. 文件: src/globals.h, src/vim9compile.c Patch 8.2.1033 问题: Not easy to read the test time in the test output. 解决方案: Align the times. Make slow tests bold. 文件: src/testdir/runtest.vim Patch 8.2.1034 问题: Compiler warning for uninitialized variables. 解决方案: Add initializations. (John Marriott) 文件: src/vim9compile.c Patch 8.2.1035 问题: setreg() does not always clear the register. 解决方案: Clear the register if the dict argument is empty. (Andy Massimino, closes #3370) 文件: src/evalfunc.c, src/testdir/test_registers.vim Patch 8.2.1036 问题: Popupwin test fails sometimes. 解决方案: Use WaitForAssert() instead of a sleep. 文件: src/testdir/test_popupwin.vim Patch 8.2.1037 问题: Vim9: crash when using line continuation inside :def. 解决方案: Check for no more lines available. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1038 问题: Popupwin test fails. 解决方案: Fix WaitForAssert() argument. 文件: src/testdir/test_popupwin.vim Patch 8.2.1039 问题: Cannot put NUL byte on clipboard. 解决方案: Use the text length. (Christian Brabandt, closes #6312, closes #6149) 文件: src/winclip.c, src/testdir/test_registers.vim Patch 8.2.1040 问题: Not enough testing for movement commands. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6313) 文件: src/testdir/test_cursor_func.vim, src/testdir/test_functions.vim, src/testdir/test_gf.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_quickfix.vim Patch 8.2.1041 问题: Test summary is missing executed count. 解决方案: Adjust pattern used for counting. 文件: src/testdir/summarize.vim Patch 8.2.1042 问题: Vim9: cannot put an operator on the next line. 解决方案: Require a colon before a range to see if that causes problems. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/ex_docmd.c, src/globals.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1043 问题: %a item in 'statusline' not tested. 解决方案: Add a test. (Dominique Pellé, closes #6318) 文件: src/testdir/test_statusline.vim Patch 8.2.1044 问题: Not all systemd file types are recognized. 解决方案: Match several more files. (Guido Cella, closes #6319) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1045 问题: Vim9: line break before operator does not work. 解决方案: Peek the next line for an operator. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1046 问题: Insufficient tests for src/buffer.c. 解决方案: Add more tests. Move comments related tests to a separate file. (Yegappan Lakshmanan, closes #6325) 文件: src/testdir/Make_all.mak, src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, src/testdir/test_comments.vim, src/testdir/test_normal.vim, src/testdir/test_textformat.vim Patch 8.2.1047 问题: Vim9: script cannot use line continuation like in a :def function. 解决方案: Pass the getline function pointer to the eval() functions. Use it for addition and multiplication operators. 文件: src/vim.h, src/structs.h, src/globals.h, src/ex_eval.c, src/eval.c, src/proto/eval.pro, src/dict.c, src/evalfunc.c, src/evalvars.c, src/list.c, src/userfunc.c, src/scriptfile.c, src/proto/scriptfile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.1048 (after 8.2.1047) 问题: Build failure without the eval feature. 解决方案: Add dummy typedef. 文件: src/structs.h Patch 8.2.1049 (after 8.2.1047) 问题: Vim9: leaking memory when using continuation line. 解决方案: Keep a pointer to the continuation line in evalarg_T. Centralize checking for a next command. 文件: src/structs.h, src/eval.c, src/proto/eval.pro, src/beval.c, src/buffer.c, src/clientserver.c, src/evalvars.c, src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/findfile.c, src/fold.c, src/globals.h, src/if_ole.cpp, src/if_perl.xs, src/if_tcl.c, src/map.c, src/quickfix.c, src/regexp.c, src/register.c, src/screen.c, src/userfunc.c Patch 8.2.1050 (after 8.2.1049) 问题: Missing change in struct. 解决方案: Add missing change. 文件: src/ex_cmds.h Patch 8.2.1051 问题: Crash when changing a list while using reduce() on it. 解决方案: Lock the list. (closes #6330) 文件: src/list.c, src/testdir/test_listdict.vim Patch 8.2.1052 问题: Build failure with older compilers. 解决方案: Move declaration to start of block. 文件: src/eval.c Patch 8.2.1053 问题: Insufficient testing for 'statusline' and 'tabline'. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6333) 文件: src/testdir/test_autocmd.vim, src/testdir/test_statusline.vim, src/testdir/test_tabline.vim Patch 8.2.1054 问题: Not so easy to pass a lua function to Vim. 解决方案: Convert a Lua function and closure to a Vim funcref. (Prabir Shrestha, closes #6246) 文件: runtime/doc/if_lua.txt, src/if_lua.c, src/proto/userfunc.pro, src/structs.h, src/testdir/test_lua.vim, src/userfunc.c Patch 8.2.1055 问题: No filetype set for pacman config files. 解决方案: Recognize pacman.conf and *.hook. (Guido Cella, closes #6335) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1056 问题: Wrong display when mixing match conceal and syntax conceal. 解决方案: Adjust how conceal flags are used. (closes #6327, closes #6303) 文件: src/drawline.c, src/highlight.c, src/testdir/test_matchadd_conceal.vim Patch 8.2.1057 (after 8.2.1054) 问题: Cannot build with dynamic Lua. 解决方案: Add dll variables. 文件: src/if_lua.c Patch 8.2.1058 问题: Multiline conceal causes display errors. 解决方案: Do not allow conceal cross over EOL. (closes #6326, closes #4854, closes #6302) 文件: src/drawline.c, src/testdir/test_conceal.vim, src/testdir/test_diffmode.vim Patch 8.2.1059 问题: Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan) 解决方案: Do not allow the autocommand window to be closed. 文件: src/ex_docmd.c, src/window.c, src/globals.h, src/testdir/test_autocmd.vim Patch 8.2.1060 问题: Not all elinks files are recognized. 解决方案: Just check for "elinks.conf". (Guido Cella, closes #6337) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1061 问题: Insufficient testing for src/window.c. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6345) 文件: src/testdir/test_excmd.vim, src/testdir/test_gf.vim, src/testdir/test_options.vim, src/testdir/test_popupwin.vim, src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim, src/window.c Patch 8.2.1062 问题: Vim9: no line break allowed inside "cond ? val1 : val2". 解决方案: Check for operator after line break. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1063 问题: Vim9: no line break allowed before || or &&. 解决方案: Check for operator after line break. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1064 问题: Vim9: no line break allowed before comparators. 解决方案: Check for comparator after line break. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1065 问题: Vim9: no line break allowed inside a list. 解决方案: Handle line break inside a list in Vim9 script. 文件: src/eval.c, src/proto/eval.pro, src/list.c, src/proto/list.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_arglist.vim Patch 8.2.1066 问题: Lua arrays are zero based. 解决方案: Make Lua arrays one based. (Prabir Shrestha, closes #6347) Note: this is not backwards compatible. 文件: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1067 问题: Expression "!expr->func()" does not work. 解决方案: Apply plus and minus earlier. (closes #6348) 文件: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1068 问题: Vim9: no line break allowed inside a dict. 解决方案: Handle line break inside a dict in Vim9 script. 文件: src/eval.c, src/dict.c, src/proto/dict.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1069 问题: Vim9: fail to check for white space in list. 解决方案: Add check for white space. 文件: src/list.c Patch 8.2.1070 问题: Vim9: leaking memory when lacking white space in dict. 解决方案: Clear the typval. 文件: src/dict.c Patch 8.2.1071 问题: Vim9: no line break allowed inside a lambda. 解决方案: Handle line break inside a lambda in Vim9 script. 文件: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/proto/userfunc.pro, src/popupwin.c, src/vim9compile.c, src/ex_eval.c, src/globals.h, src/structs.h, src/testdir/test_vim9_expr.vim Patch 8.2.1072 问题: Missing libvterm test. 解决方案: Sync with libvterm revision 768. 文件: src/libvterm/src/state.c, src/libvterm/t/63screen_resize.test Patch 8.2.1073 问题: Vim9: no line break allowed in () expression. 解决方案: Skip a line break. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1074 问题: Vim9: no line break allowed after some operators. 解决方案: Skip a line break after the operator. Add eval_may_get_next_line() to simplify checking for a line break. 文件: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1075 问题: Vim9: no line break allowed in :echo expression. 解决方案: Skip linebreak. 文件: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1076 问题: Vim9: no line break allowed in :if expression. 解决方案: Skip linebreak. 文件: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1077 问题: No enough test coverage for highlighting. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6351) 文件: runtime/doc/syntax.txt, src/testdir/test_cmdline.vim, src/testdir/test_highlight.vim, src/testdir/test_match.vim Patch 8.2.1078 问题: Highlight and match functionality together in one file. 解决方案: Move match functionality to a separate file. (Yegappan Lakshmanan, closes #6352) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/highlight.c, src/match.c, src/proto.h, src/proto/highlight.pro, src/proto/match.pro Patch 8.2.1079 问题: Vim9: no line break allowed in a while loop. 解决方案: Update stored loop lines when finding line breaks. 文件: src/structs.h, src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.1080 问题: Vim9: no line break allowed in a for loop. 解决方案: Skip line breaks in for command. 文件: src/eval.c, src/ex_eval.c, src/proto/eval.pro, src/userfunc.c, src/structs.h, src/globals.h, src/testdir/test_vim9_cmd.vim Patch 8.2.1081 问题: Lua: cannot use table.insert() and table.remove(). 解决方案: Add the list functions. (Prabir Shrestha, closes #6353) 文件: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1082 问题: Coverity complains about ignoring dict_add() return value. 解决方案: Add (void). 文件: src/evalfunc.c Patch 8.2.1083 问题: Crash when using reduce() on a NULL list. 解决方案: Only access the list when not NULL. 文件: src/list.c, src/testdir/test_listdict.vim Patch 8.2.1084 问题: Lua: registering function has useless code. 解决方案: Remove clearing grow arrays. 文件: src/userfunc.c Patch 8.2.1085 问题: Coverity complains about ignoring dict_add() return value. 解决方案: Add (void). 文件: src/register.c Patch 8.2.1086 问题: Possibly using freed memory when text properties used when changing indent of a line. 解决方案: Compute the offset before calling ml_replace(). 文件: src/indent.c Patch 8.2.1087 问题: Possible memory leak when file expansion fails. 解决方案: Clear the grow array when returning FAIL. Use an error message instead of an empty string. 文件: src/filepath.c Patch 8.2.1088 问题: A very long translation might cause a buffer overflow. 解决方案: Truncate the message if needed. 文件: src/fileio.c Patch 8.2.1089 问题: Coverity warns for pointer computation. 解决方案: Avoid computing a pointer to invalid memory. 文件: src/spellfile.c Patch 8.2.1090 问题: May use NULL pointer when skipping over name. 解决方案: Always set ll_name_end. 文件: src/eval.c Patch 8.2.1091 问题: No check if opening a pty works. 解决方案: Check for invalid file descriptor. 文件: src/os_unix.c Patch 8.2.1092 问题: Not checking if saving for undo succeeds. 解决方案: Bail out if u_savesub() returns FAIL. 文件: src/textprop.c Patch 8.2.1093 问题: Python: double free when adding item to dict fails. 解决方案: Remove vim_free() call. 文件: src/if_py_both.h Patch 8.2.1094 问题: Dead code in libvterm. 解决方案: Remove condition that is always true. 文件: src/libvterm/src/pen.c Patch 8.2.1095 问题: May use pointer after freeing it when text properties are used. 解决方案: Update redo buffer before calling ml_replace(). 文件: src/spellsuggest.c Patch 8.2.1096 问题: Vim9: return type of getqflist() is wrong. 解决方案: Let the return type depend on the arguments. Also for getloclist(). (closes #6357) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1097 问题: Highlight code not sufficiently tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #6359) 文件: src/testdir/test_filter_cmd.vim, src/testdir/test_highlight.vim Patch 8.2.1098 问题: Vim9: cannot use line break in :throw argument. 解决方案: Check for line break. 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1099 问题: Vim9: cannot use line break in :cexpr argument. 解决方案: Check for line break. 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1100 问题: Vim9: cannot use line break in :execute, :echomsg and :echoerr argument. 解决方案: Check for line break. 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1101 问题: No error when using wrong arguments for setqflist() or setloclist(). 解决方案: Check for the error. 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1102 问题: Coverity gets confused by an unnecessary NULL check. 解决方案: Remove the check for NULL. 文件: src/quickfix.c Patch 8.2.1103 问题: Coverity reports an unnecessary NULL check. 解决方案: Remove the check for NULL. 文件: src/eval.c Patch 8.2.1104 问题: Coverity warns for possible NULL pointer use. 解决方案: Check "pbyts" is not NULL. 文件: src/spellsuggest.c Patch 8.2.1105 问题: Insufficient test coverage for Lua. 解决方案: Add tests. (Yegappan Lakshmanan, closes #6368) Fix uncovered memory leak. Avoid unnecessary copy/free. 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1106 问题: Crash when trying to use s: variable in typed command. 解决方案: Don't use the script index when not set. (Ken Takata, closes #6366) 文件: src/vim9compile.c, src/testdir/test_vimscript.vim Patch 8.2.1107 问题: 'imactivatefunc' and 'imstatusfunc' are not used in the GUI. 解决方案: Adjust the #ifdefs. (closes #6367) 文件: runtime/doc/options.txt, src/gui_xim.c, src/testdir/test_iminsert.vim Patch 8.2.1108 问题: Mouse left-right scroll is not supported in terminal window. 解决方案: Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363) 文件: src/libvterm/src/mouse.c, src/mouse.c, src/terminal.c, src/testdir/mouse.vim, src/testdir/test_termcodes.vim Patch 8.2.1109 (after 8.2.1106) 问题: Still crashing when using s:variable. 解决方案: Remove assignment. (Ken Takata) 文件: src/vim9compile.c Patch 8.2.1110 问题: Vim9: line continuation does not work in function arguments. 解决方案: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string as comment. 文件: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/ex_eval.c, src/list.c, src/dict.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1111 问题: Inconsistent naming of get_list_tv() and eval_dict(). 解决方案: Rename get_list_tv() to eval_list(). Similarly for eval_number(), eval_string(), eval_lit_string() and a few others. 文件: src/eval.c, src/list.c, src/proto/list.pro, src/vim9compile.c, src/typval.c, src/proto/typval.pro, src/vim9script.c, src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c Patch 8.2.1112 问题: Vim9: no line continuation allowed in method call. 解决方案: Handle line continuation in expression before method call. 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1113 问题: No test for verbose output of :call. 解决方案: Add a test. 文件: src/testdir/test_user_func.vim Patch 8.2.1114 问题: Terminal test sometimes times out. 解决方案: Split the test in two parts. 文件: src/testdir/Makefile, src/testdir/Make_all.mak, src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim Patch 8.2.1115 问题: Iminsert test fails when compiled with VIMDLL. 解决方案: Change condition. (Ken Takata, closes #6376) 文件: src/testdir/test_iminsert.vim Patch 8.2.1116 问题: Vim9: parsing command checks for list twice. 解决方案: Adjust how a command is parsed. 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1117 问题: Coverity warns for using uninitialized field. 解决方案: Initialize v_lock. 文件: src/if_lua.c Patch 8.2.1118 问题: Condition can never be true, dead code. 解决方案: Remove the dead code. 文件: src/move.c Patch 8.2.1119 问题: Configure fails with Xcode 12 beta. 解决方案: use "return" instead of "exit()". (Nico Weber, closes #6381) 文件: src/configure.ac, src/auto/configure Patch 8.2.1120 问题: Python code not tested properly. 解决方案: Add more tests and convert old-style test into new-style test. (Yegappan Lakshmanan, closes #6370) 文件: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test86.in, src/testdir/test86.ok, src/testdir/test_python2.vim Patch 8.2.1121 问题: Command completion not working after ++arg. 解决方案: Move skipping up. (Christian Brabandt, closes #6382) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.1122 问题: Vim9: line continuation in dict member not recognized. 解决方案: Check for line continuation. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1123 问题: Python 3 test is old style. 解决方案: Turn into new style test. (Yegappan Lakshmanan, closes #6385) 文件: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test87.in, src/testdir/test87.ok, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1124 问题: Vim9: no line break allowed in :import command. 解决方案: Skip over line breaks. 文件: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1125 问题: Vim9: double quote can be a string or a comment. 解决方案: Only support comments starting with # to avoid confusion. 文件: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, src/vim9script.c Patch 8.2.1126 问题: Vim9: using :copen causes an error. 解决方案: Add flag LET_NO_COMMAND in set_var(). 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1127 问题: Vim9: getting a dict member may not work. 解决方案: Clear the dict only after copying the item. (closes #6390) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1128 问题: The write message mentions characters, but it's actually bytes. 解决方案: Change "C" to "B" and "characters" to "bytes". 文件: runtime/doc/options.txt, src/fileio.c, src/testdir/test_cscope.vim, src/testdir/test_netbeans.vim, src/testdir/dumps/Test_diff_syntax_1.dump, src/testdir/dumps/Test_long_file_name_1.dump, src/testdir/dumps/Test_display_unprintable_01.dump, src/testdir/dumps/Test_tselect_1.dump Patch 8.2.1129 问题: Vim9: bar not recognized after not compiled command. 解决方案: Check for bar for commands where this is possible. (closes #6391) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1130 问题: Vim9: bar not recognized after function call 解决方案: Skip whitespace. (closes #6391) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1131 问题: Vim9: error message for returning a value in a function that does not return anything is not clear. 解决方案: Add a specific message. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1132 问题: Vim9: return type of repeat() is not specific enough. 解决方案: Return the type of the first argument. (closes #6395) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1133 问题: Vim9: return type of add() is not specific enough. 解决方案: Return the type of the first argument. (closes #6395) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1134 问题: Vim9: getting a list member may not work. 解决方案: Clear the list only after copying the item. (closes #6393) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1135 问题: Vim9: getting a dict member may not work. 解决方案: Clear the dict only after copying the item. 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1136 问题: Vim9: return type of argv() is always any. 解决方案: Use list<string> if there is no argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1137 问题: Vim9: modifiers not cleared after compiling function. 解决方案: Clear command modifiers. (closes #6396) 文件: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_vim9_silent_echo.dump Patch 8.2.1138 问题: Vim9: return type of copy() and deepcopy() is any. 解决方案: Use type of the argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1139 (after 8.2.1137) 问题: Vim9: test for silent echo fails in some environments. 解决方案: Use :function instead of :def. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1140 问题: Vim9: return type of extend() is any. 解决方案: Use type of the argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1141 问题: Vim9: return type of filter() is any. 解决方案: Use type of the argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1142 问题: Vim9: return type of insert() is any. 解决方案: Use type of the first argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1143 问题: Vim9: return type of remove() is any. 解决方案: Use the member type of the first argument, if known. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1144 问题: Vim9: return type of reverse() is any. 解决方案: Use the type of the first argument. 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1145 问题: Vim9: "for" only accepts a list at compile time. 解决方案: Also accept a list at runtime. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1146 问题: Not enough testing for Python. 解决方案: Add more tests. Fix uncovered problems. (Yegappan Lakshmanan, closes #6392) 文件: src/if_py_both.h, src/if_python3.c, src/testdir/shared.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1147 问题: :confirm may happen in cooked mode. (Jason Franklin) 解决方案: Switch to raw mode before prompting. (Brandon Pfeifer) 文件: src/message.c, src/testdir/test_excmd.vim Patch 8.2.1148 问题: Warning for using int instead of size_t. 解决方案: Change "len" argument to size_t. (Mike Williams) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c Patch 8.2.1149 问题: Vim9: :eval command not handled properly. 解决方案: Compile the :eval command. (closes #6408) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1150 问题: ml_get error when using Python. (Yegappan Lakshmanan) 解决方案: Check the line number is not out of range. Call "Check" with "fromObj" instead of "from". 文件: src/if_py_both.h, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1151 问题: Insufficient test coverage for Python. 解决方案: Add more test cases. (Yegappan Lakshmanan, closes #6415) 文件: src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1152 问题: Vim9: function reference is missing script prefix. 解决方案: Use the actual function name instead of the name searched for in the script context. (closes #6412) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1153 问题: Vim9: script test fails on some systems. 解决方案: Return proper value from Compare(). 文件: src/testdir/test_vim9_script.vim Patch 8.2.1154 问题: Vim9: crash when using imported function. 解决方案: Check for a function type. Set the script context when calling a function. (closes #6412) 文件: src/evalvars.c, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1155 问题: Vim9: cannot handle line break inside lambda. 解决方案: Pass the compilation context through. (closes #6407, closes #6409) 文件: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1156 问题: Vim9: No error for invalid command in compiled function. 解决方案: Handle CMD_SIZE. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1157 问题: Vim9: dict.name is not recognized as an expression. 解决方案: Recognize ".name". (closes #6418) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1158 (after 8.2.1155) 问题: Build error. 解决方案: Add missing change to globals. 文件: src/globals.h Patch 8.2.1159 问题: Vim9: no error for missing space after a comma. 解决方案: Check for white space. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1160 问题: Vim9: memory leak in allocated types. 解决方案: Free the type pointers. 文件: src/vim9script.c, src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.1161 问题: Vim9: using freed memory. 解决方案: Put pointer back in evalarg instead of freeing it. 文件: src/userfunc.c, src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/structs.h Patch 8.2.1162 问题: Crash when using a lambda. 解决方案: Check for evalarg to be NULL. 文件: src/userfunc.c Patch 8.2.1163 (after 8.2.1161) 问题: Build error. 解决方案: Add missing change to globals. 文件: src/globals.h Patch 8.2.1164 问题: Text cleared by checking terminal properties not redrawn. (Alexey Radkov) 解决方案: Mark the screen characters as invalid. (closes #6422) 文件: src/screen.c, src/proto/screen.pro, src/term.c Patch 8.2.1165 问题: Insufficient testing for the Tcl interface. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #6423) 文件: src/testdir/test_tcl.vim Patch 8.2.1166 问题: Once mouse move events are enabled getchar() returns them. 解决方案: Ignore K_MOUSEMOVE in getchar(). (closes #6424) 文件: runtime/doc/eval.txt, src/getchar.c Patch 8.2.1167 问题: Vim9: builtin function method call only supports first argument. 解决方案: Shift arguments when needed. (closes #6305, closes #6419) 文件: src/evalfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1168 问题: Wrong method argument for appendbufline(). 解决方案: Use FEARG_3. 文件: src/evalfunc.c Patch 8.2.1169 问题: Write NUL past allocated space using corrupted spell file. (Markus Vervier) 解决方案: Init "c" every time. 文件: src/spellfile.c Patch 8.2.1170 问题: Cursor off by one with block paste while 'virtualedit' is "all". 解决方案: Adjust condition. (Hugo Gualandi, closes #6430) 文件: src/register.c, src/testdir/test_registers.vim Patch 8.2.1171 问题: Possible crash when out of memory. 解决方案: Check for NULL pointer. (Dominique Pellé, closes #6432) 文件: src/syntax.c Patch 8.2.1172 问题: Error messages when doing "make clean" in the runtime/doc or src/tee directories. 解决方案: Use "rm -f". 文件: runtime/doc/Makefile, src/tee/Makefile Patch 8.2.1173 问题: Tee doesn't build on some systems. 解决方案: Include header files. (Dominique Pelle, closes #6431) 文件: src/tee/tee.c Patch 8.2.1174 问题: No test for the "recording @x" message. 解决方案: Add a test. (Dominique Pellé, closes #6427) 文件: src/testdir/test_registers.vim Patch 8.2.1175 问题: Vim9: Cannot split a line before ".member". 解决方案: Check for ".member" after line break. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1176 问题: Vim9: not enough type checking in Vim9 script. 解决方案: Use same type checking as in a :def function. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1177 问题: Terminal2 test sometimes hangs in the GUI. 解决方案: Move some tests to other files to further locate the problem. Set the GUI to a fixed screen size. 文件: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/Make_all.mak, src/testdir/runtest.vim Patch 8.2.1178 问题: Vim9: filter function recognized as command modifier, leading to a crash. 解决方案: Clear cmdmod after freeing items. Do not recognize a command modifier followed by non-white space. (closes #6434) 文件: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1179 问题: Test_termwinscroll() sometimes hangs in the GUI. 解决方案: Skip the test in the GUI. 文件: src/testdir/test_terminal2.vim Patch 8.2.1180 问题: Build failure in small version. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.1181 问题: Json code not fully tested. 解决方案: Add more test coverage. (Dominique Pellé, closes #6433) 文件: src/testdir/test_json.vim Patch 8.2.1182 问题: Vim9: no check for whitespace after comma in lambda. 解决方案: Give error if white space is missing. 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1183 问题: assert_fails() checks the last error message. 解决方案: Check the first error, it is more relevant. Fix all the tests that rely on the old behavior. 文件: runtime/doc/testing.txt, src/message.c, src/globals.h, src/testing.c, src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_cd.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_cpoptions.vim, src/testdir/test_cscope.vim, src/if_cscope.c, src/testdir/test_excmd.vim, src/evalvars.c, src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_json.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_listener.vim, src/testdir/test_match.vim, src/testdir/test_menu.vim, src/testdir/test_method.vim, src/testdir/test_normal.vim, src/testdir/test_popup.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, src/testdir/test_random.vim, src/testdir/test_search.vim, src/testdir/test_signs.vim, src/testdir/test_spell.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/test_trycatch.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_utf8.vim, src/testdir/test_global.vim, src/testdir/test_tagfunc.vim Patch 8.2.1184 (after 8.2.1183) 问题: Some tests fail. 解决方案: Adjust tests for different assert_fails() behavior. Remove unused variable. 文件: src/testdir/test_assert.vim, src/testdir/test_eval_stuff.vim, src/evalvars.c Patch 8.2.1185 (after 8.2.1183) 问题: Some other tests fail. 解决方案: Adjust tests for different assert_fails() behavior. 文件: src/testdir/test_lua.vim, src/testdir/test_tcl.vim Patch 8.2.1186 问题: With SGR mouse codes balloon doesn't show up after click. 解决方案: Add the MOUSE_RELEASE bits to mouse_code. 文件: src/mouse.c Patch 8.2.1187 问题: Terminal2 test sometimes hangs in the GUI on Travis. 解决方案: Disable Test_zz2_terminal_guioptions_bang() for now. 文件: src/testdir/test_terminal2.vim Patch 8.2.1188 问题: Memory leak with invalid json input. 解决方案: Free all keys at the end. (Dominique Pellé, closes #6443, closes #6442) 文件: src/json.c, src/testdir/test_json.vim Patch 8.2.1189 问题: Vim9: line continuation in lambda doesn't always work. 解决方案: Do not use a local evalarg unless there isn't one. (closes #6439) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1190 问题: Vim9: checking for Vim9 syntax is spread out. 解决方案: Use in_vim9script(). 文件: src/vim9script.c, src/dict.c, src/eval.c, src/evalvars.c, src/ex_docmd.c, src/list.c, src/scriptfile.c, src/userfunc.c Patch 8.2.1191 问题: Vim9: crash when function calls itself. 解决方案: Add status UF_COMPILING. (closes #6441) 文件: src/structs.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1192 问题: Lua test fails with older Lua version. 解决方案: Adjust expected error messages. (closes #6444) 文件: src/testdir/test_lua.vim Patch 8.2.1193 问题: Terminal window not redrawn when dragging a popup window over it. 解决方案: Redraw terminal window. (fixes #6438) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump Patch 8.2.1194 问题: Test failure because shell prompt differs. 解决方案: Set the shell prompt. 文件: src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump Patch 8.2.1195 问题: Clientserver test fails on MS-Windows. 解决方案: Expect a different error message. 文件: src/testdir/test_clientserver.vim Patch 8.2.1196 问题: Build failure with normal features. 解决方案: Add #ifdef. 文件: src/popupwin.c Patch 8.2.1197 问题: Clientserver test still fails on MS-Windows. 解决方案: Expect a different error message. 文件: src/testdir/test_clientserver.vim Patch 8.2.1198 问题: Terminal2 test sometimes hangs in the GUI on Travis. 解决方案: Move test function to terminal3 to see if the problem moves too. 文件: src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim Patch 8.2.1199 问题: Not all assert functions are fully tested. 解决方案: Test more assert functions. 文件: src/testing.c, src/testdir/test_assert.vim Patch 8.2.1200 问题: Vim9: cannot disassemble a lambda function. 解决方案: Recognize "<lambda>123" as a function name. 文件: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1201 问题: Vim9: crash when passing number as dict key. 解决方案: Check key type to be string. (closes #6449) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1202 问题: Vim9: crash when calling a closure from a builtin function. 解决方案: Use the current execution context. (closes #6441) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1203 问题: Unused assignments in expression evaluation. 解决方案: Move declarations and assignments to inner blocks where possible. 文件: src/eval.c Patch 8.2.1204 问题: Vim9: true and false not recognized in Vim9 script. 解决方案: Recognize true and false. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1205 问题: Vim9: && and || work differently when not compiled. 解决方案: Keep the value. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1206 问题: Vim9: crash in expr test when run in the GUI. 解决方案: Temporarily comment out two test lines. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1207 问题: Vim9: crash in expr test when run in the GUI. 解决方案: Break out of loop over hashtab also when function got removed and added. 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1208 问题: Build failure. 解决方案: Add missing change. 文件: src/structs.h Patch 8.2.1209 问题: Vim9: test failure. 解决方案: Add missing changes to hashtab. 文件: src/hashtab.c Patch 8.2.1210 问题: Using ht_used when looping through a hashtab is less reliable. 解决方案: Use ht_changed in a few more places. 文件: src/userfunc.c, src/if_py_both.h Patch 8.2.1211 (after 8.2.1118) 问题: Removed more than dead code. 解决方案: Put back the decrement. 文件: src/move.c, src/testdir/test_diffmode.vim Patch 8.2.1212 问题: Cannot build with Lua 5.4. 解决方案: Use luaL_typeerror instead defining it. (closes #6454) 文件: src/if_lua.c Patch 8.2.1213 问题: Mouse codes not tested sufficiently. 解决方案: Add more tests for mouse codes. (closes #6436) 文件: src/testdir/test_termcodes.vim Patch 8.2.1214 问题: MS-Windows: default _vimrc not correct in silent install mode. 解决方案: Add the LoadDefaultVimrc macro. (Ken Takata, closes #6451) 文件: nsis/gvim.nsi Patch 8.2.1215 问题: Atari MiNT support is outdated. 解决方案: Nobody responded this code is still useful, so let's delete it. 文件: Filelist, src/os_mint.h, src/vim.h, src/Make_mint.mak, src/digraph.c, src/fileio.c, src/memfile.c, src/os_unix.c, src/term.c, READMEdir/README_extra.txt, runtime/doc/os_mint.txt, src/INSTALL Patch 8.2.1216 问题: Startup test fails. 解决方案: Adjust expected values for deleted lines. 文件: src/testdir/test_startup.vim Patch 8.2.1217 问题: Startup test depends on random source file. 解决方案: Write a test file to find quickfix errors in. 文件: src/testdir/test_startup.vim Patch 8.2.1218 问题: Vim9: cannot use 'text'->func(). 解决方案: Recognize string at start of command. 文件: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.1219 问题: Symlink not followed if dirname ends in //. 解决方案: Resolve symlink earlier. (Tomáš Janoušek, closes #6454) 文件: src/memline.c, src/testdir/test_swap.vim Patch 8.2.1220 问题: memory access error when dragging a popup window over a buffer with folding. 解决方案: Avoid going over the end of the cache. (closes #6438) 文件: src/mouse.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_term_01.dump, src/testdir/dumps/Test_popupwin_term_02.dump, src/testdir/dumps/Test_popupwin_term_03.dump, src/testdir/dumps/Test_popupwin_term_04.dump Patch 8.2.1221 问题: Memory leak when updating popup window. 解决方案: Clear search highlighting. 文件: src/popupwin.c Patch 8.2.1222 问题: When using valgrind a Vim command started by a test uses the same log file name which gets overwritten. 解决方案: Fix regexp to rename the log file. 文件: src/testdir/shared.vim Patch 8.2.1223 问题: Vim9: invalid type error for function default value. 解决方案: Use right argument index. (closes #6458) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1224 问题: Vim9: arguments from partial are not used. 解决方案: Put the partial arguments on the stack. (closes #6460) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1225 问题: Linker errors when building with dynamic Python 3.9. 解决方案: Add #defined items. (closes #6461) 文件: src/if_python3.c Patch 8.2.1226 问题: MS-Windows: windows positioning wrong when the taskbar is placed at the top or left of the screen. 解决方案: Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira, Ken Takata, closes #6455) 文件: src/gui_w32.c Patch 8.2.1227 问题: Vim9: allowing both quoted and # comments is confusing. 解决方案: Only support # comments in Vim9 script. 文件: runtime/doc/vim9.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1228 问题: Scrollbars not flush against the window edges when maximised. 解决方案: Add padding. (Ken Takata, closes #5602, closes #6466) 文件: src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_haiku.cc, src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/proto/gui_athena.pro, src/proto/gui_gtk.pro, src/proto/gui_haiku.pro, src/proto/gui_mac.pro, src/proto/gui_motif.pro, src/proto/gui_photon.pro, src/proto/gui_w32.pro Patch 8.2.1229 问题: Build error without the eval feature. 解决方案: Declare starts_with_colon. Make function local. 文件: src/ex_docmd.c, src/proto/ex_docmd.pro Patch 8.2.1230 问题: Vim9: list index error not caught by try/catch. 解决方案: Do not bail out if an error is inside try/catch. (closes #6462) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1231 问题: MS-Windows: GUI code can be cleaned up. 解决方案: Do a bit of cleaning up. (Ken Takata, closes #6465) 文件: src/gui_w32.c, src/proto/gui_w32.pro Patch 8.2.1232 问题: MS-Windows GUI: Snap cancelled by split command. 解决方案: Do not cancel Snap when splitting a window. (Ken Takata, closes #6467) 文件: src/gui_w32.c Patch 8.2.1233 问题: Vim9: various errors not caught by try/catch. 解决方案: Do not bail out if an error is inside try/catch. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1234 问题: Lua build problem with old compiler. 解决方案: Move declarations to start of the block. (Taro Muraoka, closes #6477) 文件: src/if_lua.c Patch 8.2.1235 问题: Not all mouse codes covered by tests. 解决方案: Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472) 文件: src/testdir/mouse.vim, src/testdir/test_termcodes.vim Patch 8.2.1236 问题: Vim9: a few errors not caught by try/catch. 解决方案: Do not bail out if an error is inside try/catch. Fix that a not matching catch doesn't jump to :endtry. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1237 问题: Changing 'completepopup' after opening a popup has no effect. (Jay Sitter) 解决方案: Close the popup when the options are changed. (closes #6471) 文件: runtime/doc/options.txt, src/popupwin.c, src/proto/popupwin.pro, src/optionstr.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_infopopup_8.dump Patch 8.2.1238 问题: Vim9: a few remaining errors not caught by try/catch. 解决方案: Do not bail out if an error is inside try/catch. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1239 问题: "maxwidth" in 'completepopup' not obeyed. (Jay Sitter) 解决方案: Add separate field for value from option. (closes #6470) 文件: src/structs.h, src/popupwin.c, src/popupmenu.c, src/testdir/dumps/Test_popupwin_infopopup_9.dump Patch 8.2.1240 问题: GUI tests sometimes fail because of translations. 解决方案: Reload the menus without translation. (Taro Muraoka, closes #6486) 文件: src/testdir/runtest.vim Patch 8.2.1241 问题: Cannot use getbufinfo() as a method. 解决方案: Support using getbufinfo() as a method. (closes #6458) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.1242 问题: Vim9: no error if calling a function with wrong argument type. 解决方案: Check types of arguments. (closes #6469) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1243 问题: Vim9: cannot have a comment or empty line halfway a list at script level. 解决方案: Skip more than one line if needed. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/scriptfile.c Patch 8.2.1244 问题: Vim9: in lambda index assumes a list. 解决方案: Use the value type to decide about list or dict. (closes #6479) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1245 问题: Build failure in tiny version. 解决方案: Add #ifdef. 文件: src/scriptfile.c Patch 8.2.1246 问题: Vim9: comment after assignment doesn't work. 解决方案: Skip over white space. (closes #6481) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1247 问题: Vim9: cannot index a character in a string. 解决方案: Add ISN_STRINDEX instruction. (closes #6478) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1248 问题: Netbeans test is flaky in the GUI. 解决方案: Filter out geometry messages. (Taro Muraoka, closes #6487) 文件: src/testdir/test_netbeans.vim Patch 8.2.1249 问题: Vim9: disassemble test fails. 解决方案: Change INDEX to LISTINDEX. Add test for STRINDEX. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.1250 问题: Vim9: cannot use the g:, b:, t: and w: namespaces. 解决方案: Add instructions to push a dict for the namespaces. (closes #6480) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1251 问题: Vim9: warning for pointer usage, test failure undetected. 解决方案: Fix pointer indirection. Give error when executing function failed for any reason. Fix instruction names. 文件: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.1252 问题: ":marks" may show '< and '> mixed up. 解决方案: Show the mark position as where '< and '> would jump. 文件: src/mark.c, src/testdir/test_marks.vim Patch 8.2.1253 问题: CTRL-K in Insert mode gets <CursorHold> inserted. (Roland Puntaier) 解决方案: Do not reset did_cursorhold, restore it. (closes #6447) 文件: src/normal.c Patch 8.2.1254 问题: MS-Windows: regexp test may fail if 'iskeyword' set wrongly. 解决方案: Override the 'iskeyword' value. (Taro Muraoka, closes #6502) 文件: src/testdir/test_regexp_utf8.vim Patch 8.2.1255 问题: Cannot use a lambda with quickfix functions. 解决方案: Add support for lambda. (Yegappan Lakshmanan, closes #6499) 文件: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/quickfix.txt, src/channel.c, src/evalvars.c, src/optionstr.c, src/proto/evalvars.pro, src/proto/quickfix.pro, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1256 问题: Vim9: type wrong after getting dict item in lambda. 解决方案: Set the type to "any" after enforcing dict type. (closes #6491) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1257 问题: Vim9: list unpack doesn't work at the script level. 解决方案: Detect unpack assignment better. (closes #6494) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1258 (after 8.2.1253) 问题: CursorHold does not work well.a (Shane-XB-Qian) 解决方案: Only restore did_cursorhold when using :normal. 文件: src/normal.c Patch 8.2.1259 问题: Empty group in 'tabline' may cause using an invalid pointer. 解决方案: Set the group start position. (closes #6505) 文件: src/buffer.c, src/testdir/test_tabline.vim Patch 8.2.1260 问题: There is no good test for CursorHold. 解决方案: Add a test. Remove duplicated test. (Yegappan Lakshmanan, closes #6503) 文件: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_normal.vim Patch 8.2.1261 问题: Vim9: common type of function not tested. 解决方案: Add a test. Fix uncovered problems. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1262 问题: src/ex_cmds.c file is too big. 解决方案: Move help related code to src/help.c. (Yegappan Lakshmanan, closes #6506) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/cmdexpand.c, src/ex_cmds.c, src/help.c, src/proto.h, src/proto/ex_cmds.pro, src/proto/help.pro Patch 8.2.1263 问题: Vim9: comparators use 'ignorecase' in Vim9 script. 解决方案: Ignore 'ignorecase'. Use true and false instead of 1 and 0. (closes #6497) 文件: src/eval.c, src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1264 问题: Terminal getwinpos() test is a bit flaky. 解决方案: Call getwinpos() a bit later. 文件: src/testdir/test_terminal3.vim Patch 8.2.1265 问题: Crash with EXITFREE when split() fails. 解决方案: Restore 'cpoptions'. 文件: src/evalfunc.c Patch 8.2.1266 (after 8.2.1262) 问题: Makefile preference were accidentally included. 解决方案: Revert the Makefile changes. 文件: src/Makefile Patch 8.2.1267 问题: MS-Windows: tests may fail due to $PROMPT value. 解决方案: Set $PROMPT for testing. (Taro Muraoka, closes #6510) 文件: src/testdir/runtest/vim Patch 8.2.1268 问题: Vim9: no error for using double quote comment after :func or :def. 解决方案: Only accept double quote when not in Vim9 script and not after :def. (closes #6483) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1269 问题: Language and locale code spread out. 解决方案: Move relevant code to src/locale.c. (Yegappan Lakshmanan, closes #6509) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/ex_cmds2.c, src/locale.c, src/main.c, src/proto.h, src/proto/ex_cmds2.pro, src/proto/locale.pro Patch 8.2.1270 问题: Vim9: not skipping over function type declaration with only a return type. 解决方案: Skip over the return type. (issue #6507) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1271 问题: Vim9: Error for Funcref function argument type. 解决方案: Find the actual function type if possible. (issue #6507) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1272 问题: Vim9: type not checked if declaration also assigns value. 解决方案: Check the type. (issue #6507) 文件: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1273 问题: MS-Windows: terminal test may leave file behind. 解决方案: Wait a moment for process to end before deleting the file. (Taro Muraoka, closes #6513) 文件: src/testdir/test_terminal.vim Patch 8.2.1274 问题: Vim9: no error for missing white space in assignment at script level. 解决方案: Check for white space. (closes #6495) 文件: src/eval.c, src/evalvars.c, src/testdir/test_vim9_script.vim, src/testdir/test_let.vim Patch 8.2.1275 问题: Vim9: compiler warning for buffer size. 解决方案: Change the offset from 10 to 15. (Dominique Pellé, closes #6518) 文件: src/vim9script.c Patch 8.2.1276 问题: MS-Windows: system test may fail if more.exe is installed. 解决方案: Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517) 文件: src/testdir/test_system.vim Patch 8.2.1277 问题: Tests on Travis do not run with EXITFREE. 解决方案: Add EXITFREE to all builds to uncover any mistakes. 文件: .travis.yml Patch 8.2.1278 问题: Vim9: line break after "->" only allowed in :def function. 解决方案: Only allow line break after "->". (closes #6492) 文件: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_expr.vim Patch 8.2.1279 问题: Some tests on Travis have EXITFREE duplicated. 解决方案: Remove EXITFREE from shadowopt. Add "shadow" to job name. 文件: .travis.yml Patch 8.2.1280 问题: Ex command error cannot contain an argument. 解决方案: Add ex_errmsg() and translate earlier. Use e_trailing_arg where possible. 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/buffer.c, src/ex_eval.c, src/match.c, src/testdir/test_tabpage.vim Patch 8.2.1281 问题: The "trailing characters" error can be hard to understand. 解决方案: Add the trailing characters to the message. 文件: src/cmdhist.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/json.c, src/menu.c, src/quickfix.c, src/sign.c, src/userfunc.c Patch 8.2.1282 问题: Vim9: crash when using CheckScriptFailure() in Test_vim9script_call_fail_decl(). 解决方案: Do not decrement the def_functions len unless the function was newly added. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1283 问题: Vim9: error for misplaced -> lacks argument. 解决方案: Use the pointer before it was advanced. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1284 问题: Vim9: skipping over type includes following white space, leading to an error for missing white space. 解决方案: Do not skip over white space after the type. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1285 问题: Vim9: argument types are not checked on assignment. 解决方案: Check function argument types. (issue #6507) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1286 问题: Vim9: No error when using a type on a window variable 解决方案: Recognize the syntax and give an error. (closes #6521) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1287 问题: Vim9: crash when using an imported function. 解决方案: Add the function type to the imported entry. (closes #6522) 文件: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1288 问题: Vim9: cannot use mark in range. 解决方案: Use the flag that a colon was seen. (closes #6528) 文件: src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.1289 问题: Crash when using a custom completion function. 解决方案: Initialize all of the expand_T. (closes #6532) 文件: src/cmdexpand.c Patch 8.2.1290 问题: Vim9: cannot replace a global function. 解决方案: Allow for "!" on a global function. (closes #6524) Also fix that :delfunc on a :def function only made it empty. 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1291 问题: Vim9: type of varargs items is not checked. 解决方案: Check the list item types. (closes #6523) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1292 问题: AIDL filetype not recognized. 解决方案: Add filetype detection. (Dominique Pellé, closes #6533) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1293 问题: Vim9: :execute mixes up () expression and function call. 解决方案: Do not skip white space when looking for the "(". (closes #6531) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1294 问题: Vim9: error when using vim9script in TextYankPost. 解决方案: Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can be used when text is locked. (closes #6529) 文件: src/ex_cmds.h, src/ex_docmd.c Patch 8.2.1295 问题: Tests 44 and 99 are old style. 解决方案: Convert to new style tests. (Yegappan Lakshmanan, closes #6536) 文件: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test44.in, src/testdir/test44.ok, src/testdir/test99.in, src/testdir/test99.ok, src/testdir/test_regexp_utf8.vim Patch 8.2.1296 问题: Some part of using 'smartcase' was not tested. 解决方案: Add more tests. (Dominique Pellé, closes #6538) 文件: src/testdir/test_search.vim Patch 8.2.1297 问题: When a test fails it's often not easy to see what the call stack is. 解决方案: Add more entries from the call stack in the exception message. 文件: runtime/doc/cmdline.txt, src/scriptfile.c, src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, src/testing.c, src/testdir/test_expand_func.vim Patch 8.2.1298 问题: Compiler warning for unused argument in small version. 解决方案: Add UNUSED. 文件: src/scriptfile.c Patch 8.2.1299 问题: Compiler warning for using size_t for int and void pointer. 解决方案: Add type casts. 文件: src/scriptfile.c Patch 8.2.1300 问题: Vim9: optional argument type not parsed properly. 解决方案: Skip over the "?". (issue #6507) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1301 问题: Vim9: varargs argument type not parsed properly. 解决方案: Skip over the "...". (issue #6507) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1302 问题: Vim9: varargs arg after optional arg does not work 解决方案: Check for the "..." first. (issue #6507) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1303 问题: Calling popup_setoptions() resets 'signcolumn'. 解决方案: Only set 'signcolumn' when creating the popup. (closes #6542) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1304 问题: Debug backtrace isn't tested much. 解决方案: Add more specific tests. (Ben Jackson, closes #6540) 文件: src/testdir/runtest.vim, src/testdir/test_debugger.vim Patch 8.2.1305 问题: Some tests are still old style. 解决方案: Convert tests 52 and 70 to new style. (Yegappan Lakshmanan, closes #6544) Fix error in FinishTesting(). 文件: src/testdir/runtest.vim, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms, src/testdir/test52.in, src/testdir/test52.ok, src/testdir/test70.in, src/testdir/test70.ok, src/testdir/test_mzscheme.vim, src/testdir/test_writefile.vim Patch 8.2.1306 问题: Checking for first character of dict key is inconsistent. 解决方案: Add eval_isdictc(). (closes #6546) 文件: src/eval.c, src/proto/eval.pro, src/vim9compile.c, src/testdir/test_listdict.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_let.vim Patch 8.2.1307 问题: popup window width does not include number, fold of sign column width. 解决方案: Take number, fold and sign column with into account. 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_sign_2.dump Patch 8.2.1308 问题: Vim9: accidentally using "x" causes Vim to exit. 解决方案: Disallow using ":x" or "xit" in Vim9 script. (closes #6399) 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/ex_docmd.c, src/ex_cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.1309 问题: Build failure with tiny version. 解决方案: Add #ifdef. 文件: src/ex_cmds.c, src/ex_docmd.c Patch 8.2.1310 问题: Configure with Xcode 12 fails to check for tgetent. 解决方案: Declare tgetent(). (Ozaki Kiichi, closes #6558) 文件: src/configure.ac, src/auto/configure Patch 8.2.1311 问题: Test failures with legacy Vim script. 解决方案: Actually check for Vim9 script. 文件: src/vim9script.c Patch 8.2.1312 问题: MS-Windows: terminal test may fail if dir.exe exists. 解决方案: Use dir.com. (Ken Takata, closes #6557) 文件: src/testdir/test_terminal3.vim Patch 8.2.1313 问题: Vim9 script: cannot assign to environment variable. 解决方案: Recognize environment variable assignment. (closes #6548) Also options and registers. 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1314 问题: Vim9: rule for comment after :function is confusing. 解决方案: Allow double quoted comment after :function in vim9script. (closes #6556) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1315 问题: MS-Windows: test log contains escape sequences. 解决方案: Do not use t_md and t_me but ANSI escape sequences. (Ken Takata, closes #6559) 文件: src/testdir/runtest.vim Patch 8.2.1316 问题: Test 42 is still old style. 解决方案: Turn it into a new style test. (Yegappan Lakshmanan, closes #6561) 文件: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/test42.in, src/testdir/test42.ok, src/testdir/test_writefile.vim Patch 8.2.1317 问题: MS-Windows tests on AppVeyor are slow. 解决方案: Use GitHub Actions. (Ken Takata, closes #6569) 文件: Filelist, .github/workflows/ci-windows.yaml, appveyor.yml, ci/appveyor.bat Patch 8.2.1318 问题: No status badge for Github CI. 解决方案: Add a badge. 文件: README.md Patch 8.2.1319 问题: Status badge for Github CI has wrong link. 解决方案: Rename and use the right link 文件: README.md, .github/workflows/ci-windows.yaml Patch 8.2.1320 问题: Vim9: cannot declare some single letter variables. 解决方案: Do not recognize a colon for a namespace for single letter variables. (closes #6547) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1321 问题: GitHub CI also runs on tag push. 解决方案: Skip CI on push. (Ken Takata, closes #6571) 文件: .github/workflows/ci-windows.yaml Patch 8.2.1322 问题: Vim9: method on double quoted string doesn't work. 解决方案: Recognize double quoted string. (closes #6562) 文件: src/ex_docmd.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1323 问题: Vim9: invalid operators only rejected in :def function. 解决方案: Also reject them at script level. (closes #6564) 文件: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.1324 问题: Vim9: line break after "=" does not work. 解决方案: Also allow for NUL after "=". (closes #6549) 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1325 问题: Vim9: using Vim9 script for autoload not tested. 解决方案: Add a test. Update help. 文件: runtime/doc/vim9.txt, src/testdir/test_autoload.vim, src/testdir/sautest/autoload/auto9.vim Patch 8.2.1326 问题: Vim9: skipping over white space after list. 解决方案: Do not skip white space, a following [] would be misinterpreted. (closes #6552) Fix a few side effects. 文件: src/list.c, src/dict.c, src/eval.c, src/userfunc.c, src/testdir/test_functions.vim, src/testdir/test_gn.vim, src/testdir/test_popupwin.vim, src/testdir/test_tabpage.vim, src/testdir/test_textprop.vim, src/testdir/test_textobjects.vim Patch 8.2.1327 问题: Mac: configure can't find Tcl libraries. 解决方案: Adjust configure check. (closes #6575) 文件: src/configure.ac, src/auto/configure Patch 8.2.1328 问题: No space allowed before comma in list. 解决方案: Legacy Vim script allows it. (closes #6577) 文件: src/dict.c, src/list.c, src/testdir/test_listdict.vim Patch 8.2.1329 问题: Vim9: cannot define global function inside :def function. 解决方案: Assign to global variable instead of local. (closes #6584) 文件: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9.h, src/vim9execute.c, src/structs.h, src/misc2.c, src/proto/misc2.pro, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1330 问题: Github workflow takes longer than needed. 解决方案: Do two test runs in parallel instead of sequentially. (Ken Takata, closes #6579) 文件: .github/workflows/ci-windows.yaml Patch 8.2.1331 问题: Vim9: :echo with two lists doesn't work. 解决方案: Do not skip white space before []. (closes #6552) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1332 问题: Vim9: memory leak when using nested global function. 解决方案: Delete the function when deleting the instruction. Disable test that still causes a leak. 文件: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.1333 问题: Vim9: memory leak when using nested global function. 解决方案: Swap from and to when copying the lines. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1334 问题: Github workflow timeout needs tuning 解决方案: Use a 10 minute timeout. Fail when timing out. (Ken Takata, closes #6590) 文件: .github/workflows/ci-windows.yaml Patch 8.2.1335 问题: CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov) 解决方案: Recognize "C" with CTRL modifier as CTRL-C. (issue #6565) 文件: src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c, src/gui_x11.c, src/gui_photon.c Patch 8.2.1336 (after 8.2.1335) 问题: Build failure on non-Unix systems. 解决方案: Add #ifdef. 文件: src/gui.c Patch 8.2.1337 问题: Vim9: cannot use empty key in dict assignment. 解决方案: Allow empty key. (closes #6591) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1338 问题: Vim9: assigning to script-local variable doesn't check type. 解决方案: Use the type. (issue #6591) 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1339 问题: Vim9: assigning to global dict variable doesn't work. 解决方案: Guess variable type based in index type. (issue #6591) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1340 问题: Some tests fail on Cirrus CI and/or with FreeBSD. 解决方案: Make 'backupskip' empty. Do not run tests as root. Check for directory when using viminfo. (Ozaki Kiichi, closes #6596) 文件: .cirrus.yml, src/testdir/test_backup.vim, src/testdir/test_edit.vim, src/testdir/test_viminfo.vim, src/testdir/test_writefile.vim, src/viminfo.c Patch 8.2.1341 问题: Build failures. 解决方案: Add missing error message. 文件: src/globals.h Patch 8.2.1342 问题: Vim9: accidentally using "x" gives a confusing error. 解决方案: Disallow using ":t" in Vim9 script. (issue #6399) 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1343 问题: Vim9: cannot find global function when using g: when local function with the same name exists. 解决方案: Find global function when using g:. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1344 问题: Vim9: No test for trying to redefine global function. 解决方案: Add a test. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1345 问题: Redraw error when using visual block and scroll. 解决方案: Add check for w_topline. (closes #6597) 文件: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_visual_block_scroll.dump Patch 8.2.1346 问题: Small build fails. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.1347 问题: Cannot easily get the script ID. 解决方案: Support expand('<SID>'). 文件: runtime/doc/map.txt, src/ex_docmd.c, src/testdir/test_expand_func.vim Patch 8.2.1348 问题: Build failure without the eval feature. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.1349 问题: Vim9: can define a function with the name of an import. 解决方案: Disallow using an existing name. (closes #6585) 文件: src/userfunc.c, src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim Patch 8.2.1350 问题: Vim9: no test for error message when redefining function. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1351 问题: Vim9: no proper error if using namespace for nested function. 解决方案: Specifically check for a namespace. (closes #6582) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1352 问题: Vim9: no error for shadowing a script-local function by a nested function. 解决方案: Check for script-local function. (closes #6586) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1353 问题: Crash when drawing double-wide character in terminal window. (Masato Nishihata) 解决方案: Check getcell() returning NULL. (issue #6141) 文件: src/libvterm/src/screen.c, src/testdir/test_terminal.vim Patch 8.2.1354 问题: Test 59 is old style. 解决方案: Convert into a new style test. (Yegappan Lakshmanan, closes #6604) 文件: runtime/doc/eval.txt, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test59.in, src/testdir/test59.ok, src/testdir/test_spell_utf8.vim Patch 8.2.1355 问题: Vim9: no error using :let for options and registers. 解决方案: Give an error. (closes #6568) 文件: src/evalvars.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1356 问题: Vim9: cannot get the percent register. 解决方案: Check for readable registers instead of writable. (closes #6566) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1357 问题: Vim9: cannot assign to / register. 解决方案: Adjust check for assignment. (issue #6566) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1358 问题: Vim9: test fails with +dnd is not available. 解决方案: Add condition. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1359 问题: Vim9: cannot assign to / register in Vim9 script. 解决方案: Adjust check for assignment in Vim9 script. (closes #6567) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1360 问题: Stray error for white space after expression. 解决方案: Ignore trailing white space. (closes #6608) 文件: src/eval.c, src/testdir/test_filter_map.vim Patch 8.2.1361 问题: Error for white space after expression in assignment. 解决方案: Skip over white space. (closes #6617) 文件: src/eval.c, src/testdir/test_expr.vim Patch 8.2.1362 问题: Last entry of ":set term=xxx" overwritten by error message when 'cmdheight' is two or more. (Tony Mechelynck) 解决方案: Output extra line breaks. 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.1363 问题: Test trying to run terminal when it is not supported. 解决方案: Check if Vim can be run in a terminal. 文件: src/testdir/test_termcodes.vim Patch 8.2.1364 问题: Invalid memory access when searching for raw string. 解决方案: Check for delimiter match before following quote. (closes #6578) 文件: src/search.c Patch 8.2.1365 问题: Vim9: no error for missing white space around operator. 解决方案: Check for white space. (closes #6618) 文件: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1366 问题: Test 49 is old style. 解决方案: Convert several tests to new style. (Yegappan Lakshmanan, closes #6629) 文件: src/testdir/script_util.vim, src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1367 问题: Vim9: no error for missing white space around operator. 解决方案: Check for white space around *, / and %. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1368 问题: Vim9: no error for missing white space around operator. 解决方案: Check for white space around <, !=, etc. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1369 问题: MS-Windows: autocommand test sometimes fails. 解决方案: Do not rely on the cat command. 文件: src/testdir/test_autocmd.vim Patch 8.2.1370 问题: MS-Windows: warning for using fstat() with stat_T. 解决方案: use _fstat64() if available. (Naruhiko Nishino, closes #6625) 文件: src/macros.h Patch 8.2.1371 问题: Vim9: no error for missing white space around operator. 解决方案: Check for white space around && and ||. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1372 问题: Vim9: no error for missing white space around operator. 解决方案: Check for white space around ? and :. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1373 问题: Vim9: no error for assigning to non-existing script var. 解决方案: Check that in Vim9 script the variable was defined. (closes #6630) 文件: src/vim9compile.c, src/userfunc.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1374 问题: Vim9: error for assigning empty list to script variable. 解决方案: Use t_unknown for empty list member. (closes #6595) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1375 问题: Vim9: method name with digit not accepted. 解决方案: Use eval_isnamec() instead of eval_isnamec1(). (closes #6613) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1376 问题: Vim9: expression mapping causes error for using :import. 解决方案: Add EX_LOCK_OK to :import and :export. (closes #6606) 文件: src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.1377 问题: Triggering the ATTENTION prompt causes typeahead to be messed up. 解决方案: Increment tb_change_cnt. (closes #6541) 文件: src/getchar.c Patch 8.2.1378 问题: Cannot put space between function name and paren. 解决方案: Allow this for backwards compatibility. 文件: src/eval.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1379 问题: Curly braces expression ending in " }" does not work. 解决方案: Skip over white space when checking for "}". (closes #6634) 文件: src/dict.c, src/testdir/test_eval_stuff.vim Patch 8.2.1380 问题: Vim9: return type of getreg() is always a string. 解决方案: Use list of strings when there are three arguments. (closes #6633) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1381 问题: MS-Windows: crash with Python 3.5 when stdin is redirected. 解决方案: Reconnect stdin. (Yasuhiro Matsumoto, Ken Takata, closes #6641) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_python3.c Patch 8.2.1382 问题: Vim9: using :import in filetype plugin gives an error. 解决方案: Allow commands with the EX_LOCK_OK flag. (closes #6636) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1383 问题: Test 49 is old style. 解决方案: Convert test cases to new style. (Yegappan Lakshmanan, closes #6638) 文件: src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1384 问题: No ATTENTION prompt for :vimgrep first match file. 解决方案: When there is an existing swap file do not keep the dummy buffer. (closes #6649) 文件: src/quickfix.c, src/testdir/runtest.vim, src/testdir/test_quickfix.vim Patch 8.2.1385 问题: No testing on ARM. 解决方案: Add a test on Travis for ARM. (Ozaki Kiichi, closes #6615) 文件: .travis.yml Patch 8.2.1386 问题: Backslash not removed after space in option with space in 'isfname'. 解决方案: Do remove backslash before space, also when it is in 'isfname'. (Yasuhiro Matsumoto, closes #6651) 文件: src/option.c, src/testdir/test_options.vim Patch 8.2.1387 问题: Vim9: cannot assign to single letter variable with type. 解决方案: Exclude the colon from the variable name. (closes #6647) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1388 问题: Vim9: += only works for numbers. 解决方案: Use += as concatenate for a list. (closes #6646) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1389 问题: File missing from the distribution. 解决方案: Add script_util.vim to the list of distributes files. 文件: Filelist Patch 8.2.1390 问题: Vim9: type error after storing an option value. 解决方案: Drop the type after a STOREOPT instruction. (closes #6632) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1391 问题: Vim9: no error for shadowing a script function. 解决方案: Check for already defined items. (closes #6652) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1392 问题: Vim9: error line number incorrect after skipping over comment lines. 解决方案: Insert empty lines for skipped lines. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1393 问题: Insufficient testing for script debugging. 解决方案: Add more tests. (Ben Jackson) 文件: src/testdir/test_debugger.vim Patch 8.2.1394 问题: Vim9: compiling a function interferes with command modifiers. 解决方案: Save and restore command modifiers. (closes #6658) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1395 问题: Vim9: no error if declaring a funcref with a lower case letter. 解决方案: Check the name after the type is inferred. Fix confusing name. 文件: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1396 问题: Vim9: no error for unexpectedly returning a value. 解决方案: Only set the return type for lambda's. Make using function type in a function reference work. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1397 问题: Vim9: return type of maparg() not adjusted for fourth argument. 解决方案: Check if fourth argument is present. (closes #6645) 文件: src/evalfunc.c, src/testdir/test_maparg.vim Patch 8.2.1398 问题: Autoload script sourced twice if sourced directly. 解决方案: Do not source an autoload script again. (issue #6644) 文件: src/scriptfile.c, src/testdir/sautest/autoload/sourced.vim Patch 8.2.1399 问题: Vim9: may find imported item in wrong script. 解决方案: When looking up script-local function use the embedded script ID. (issue #6644) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1400 问题: Vim9: test does not delete written files. 解决方案: Correct file names. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1401 问题: Cannot jump to the last used tabpage. 解决方案: Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes #6661, neovim #11626) 文件: runtime/doc/eval.txt, runtime/doc/index.txt, runtime/doc/tabpage.txt, src/evalwindow.c, src/globals.h, src/normal.c, src/proto/window.pro, src/testdir/test_tabpage.vim, src/window.c Patch 8.2.1402 问题: s390x tests always fail. 解决方案: Temporarily disable s390x tests. 文件: .travis.yml Patch 8.2.1403 问题: Vim9: Vim highlighting fails in cmdline window if it uses Vim9 commands. 解决方案: Allow using :vim9script, :import and :export while in the cmdline window. (closes #6656) 文件: src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.1404 问题: Vim9: script test fails in the GUI. 解决方案: Use another key to map. Improve cleanup. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1405 问题: Vim9: vim9compile.c is getting too big. 解决方案: Split off type code to vim9type.c. 文件: Filelist, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9type.c, src/proto/vim9type.pro, src/proto.h, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile Patch 8.2.1406 问题: Popupwindow lacks scrollbar if no "maxheight" is used. 解决方案: Compute the max height depending on the position. (closes #6664) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_toohigh_1.dump, src/testdir/dumps/Test_popupwin_toohigh_2.dump Patch 8.2.1407 问题: Vim9: type of list and dict only depends on first item. 解决方案: Use all items to decide about the type. 文件: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_expr.vim, runtime/doc/vim9.txt Patch 8.2.1408 问题: Vim9: type casting not supported. 解决方案: Introduce type casting. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1409 问题: Npmrc and php.ini filetypes not recognized. 解决方案: Add filetype detection. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1410 问题: Adding compiler plugin requires test change. 解决方案: Include compiler plugin and adjust test. 文件: src/testdir/test_compiler.vim, runtime/compiler/xo.vim Patch 8.2.1411 问题: when splitting a window localdir is copied but prevdir is not. 解决方案: Also copy prevdir. (closes #6667) 文件: src/window.c, src/testdir/test_cd.vim Patch 8.2.1412 问题: Vim: not operator does not result in boolean. 解决方案: Make type depend on operator. (issue 6678) Fix using "false" and "true" in Vim9 script. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1413 (after 8.2.1401) 问题: Previous tab page not usable from an Ex command. 解决方案: Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan, closes #6677) 文件: runtime/doc/tabpage.txt, src/ex_docmd.c, src/window.c, src/testdir/test_tabpage.vim Patch 8.2.1414 问题: Popupwindow missing last couple of lines when cursor is in the first line. 解决方案: Compute the max height also when top aligned. (closes #6664) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_toohigh_3.dump, src/testdir/dumps/Test_popupwin_nospace.dump Patch 8.2.1415 问题: Closing a popup window with CTRL-C interrupts 'statusline' if it calls a function. 解决方案: Reset got_int while redrawing. (closes #6675) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_ctrl_c.dump Patch 8.2.1416 问题: Vim9: boolean evaluation does not work as intended. 解决方案: Use tv2bool() in Vim9 script. (closes #6681) 文件: src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.1417 问题: Test 49 is old style. 解决方案: Convert more parts to new style test. (Yegappan Lakshmanan, closes #6682) 文件: src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_vimscript.vim Patch 8.2.1418 问题: Vim9: invalid error for missing white space after function. 解决方案: Do not skip over white space. (closes #6679) 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.1419 问题: Vim9: not operator applied too early. 解决方案: Implement the "numeric_only" argument. (closes #6680) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1420 问题: Test 49 is old style. 解决方案: Convert remaining parts to new style. Remove obsolete items. (Yegappan Lakshmanan, closes #6683) 文件: Filelist, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/Makefile, src/testdir/README.txt, src/testdir/test49.in, src/testdir/test49.ok, src/testdir/test49.vim, src/testdir/test_quickfix.vim, src/testdir/test_vimscript.vim Patch 8.2.1421 问题: Vim9: handling "+" and "-" before number differs from Vim script. 解决方案: Use the same sequence of commands. 文件: src/vim9compile.c Patch 8.2.1422 问题: The Mac GUI implementation is outdated and probably doesn't even work. 解决方案: Remove the Mac GUI code. The MacVim project provides the supported Vim GUI version. 文件: Filelist, src/gui_mac.c, src/proto/gui_mac.pro, src/proto.h, src/Makefile, src/configure.ac, src/auto/configure, src/evalfunc.c, src/fileio.c, src/gui.c, src/if_mzsch.c, src/main.c, src/misc2.c, src/mouse.c, src/os_mac_conv.c, src/os_unix.c, src/feature.h, src/globals.h, src/gui.h, src/option.h, src/optiondefs.h, src/os_mac.h, src/structs.h, src/vim.h, src/INSTALLmac.txt Patch 8.2.1423 问题: Vim9: find global function when looking for script-local. 解决方案: Don't strip prefix if name starts with "s:". (closes #6688) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1424 (after 8.2.1422) 问题: Mac build fails. 解决方案: Adjust configure to not fall back to Athena. Adjust some other files. 文件: src/configure.ac, src/auto/configure, src/os_macosx.m, src/version.c Patch 8.2.1425 问题: Vim9: cannot use call() without :call. 解决方案: Do not skip over "call(". (closes #6689) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1426 问题: Vim9: cannot call autoload function in :def function. 解决方案: Load the autoload script. (closes #6690) 文件: src/vim9execute.c, src/vim9compile.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1427 问题: Vim9: cannot use a range with marks in :def function. 解决方案: Parse range after colon. (closes #6686) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1428 问题: Vim9: :def function does not abort on nested function error. 解决方案: Check whether an error message was given. (closes #6691) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1429 问题: Vim9: no error for missing white after : in dict. 解决方案: Check for white space. (closes #6671) Also check that there is no white before the :. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.1430 问题: Vim9: error for missing comma instead of extra white space. 解决方案: Check if comma can be found after white space. (closes #6668) Also check for extra white space in literal dict. (closes #6670) 文件: src/list.c, src/dict.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1431 问题: Vim9: no error for white space before comma in dict. 解决方案: Check for extra white space. (closes #6674) 文件: src/vim9compile.c, src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1432 问题: Various inconsistencies in test files. 解决方案: Add modelines where they were missing. Use Check commands instead of silently skipping over tests. Adjust indents and comments. (Ken Takata, closes #6695) 文件: src/testdir/test_arglist.vim, src/testdir/test_assert.vim, src/testdir/test_autochdir.vim, src/testdir/test_autocmd.vim, src/testdir/test_autoload.vim, src/testdir/test_balloon.vim, src/testdir/test_balloon_gui.vim, src/testdir/test_behave.vim, src/testdir/test_blockedit.vim, src/testdir/test_breakindent.vim, src/testdir/test_bufline.vim, src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim, src/testdir/test_changedtick.vim, src/testdir/test_changelist.vim, src/testdir/test_channel.vim, src/testdir/test_checkpath.vim, src/testdir/test_cindent.vim, src/testdir/test_cjk_linebreak.vim, src/testdir/test_clientserver.vim, src/testdir/test_close_count.vim, src/testdir/test_cmdline.vim, src/testdir/test_command_count.vim, src/testdir/test_comparators.vim, src/testdir/test_compiler.vim, src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim, src/testdir/test_curswant.vim, src/testdir/test_debugger.vim, src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, src/testdir/test_digraph.vim, src/testdir/test_display.vim, src/testdir/test_edit.vim, src/testdir/test_environ.vim, src/testdir/test_erasebackword.vim, src/testdir/test_escaped_glob.vim, src/testdir/test_ex_equal.vim, src/testdir/test_ex_undo.vim, src/testdir/test_ex_z.vim, src/testdir/test_exec_while_if.vim, src/testdir/test_exists.vim, src/testdir/test_exists_autocmd.vim, src/testdir/test_exit.vim, src/testdir/test_expand_dllpath.vim, src/testdir/test_expr_utf8.vim, src/testdir/test_feedkeys.vim, src/testdir/test_file_size.vim, src/testdir/test_fileformat.vim, src/testdir/test_filter_cmd.vim, src/testdir/test_find_complete.vim, src/testdir/test_findfile.vim, src/testdir/test_fixeol.vim, src/testdir/test_flatten.vim, src/testdir/test_fnameescape.vim, src/testdir/test_fold.vim, src/testdir/test_functions.vim, src/testdir/test_ga.vim, src/testdir/test_getcwd.vim, src/testdir/test_getvar.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_global.vim, src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, src/testdir/test_highlight.vim, src/testdir/test_hlsearch.vim, src/testdir/test_iminsert.vim, src/testdir/test_increment_dbcs.vim, src/testdir/test_ins_complete.vim, src/testdir/test_interrupt.vim, src/testdir/test_job_fails.vim, src/testdir/test_join.vim, src/testdir/test_json.vim, src/testdir/test_jumplist.vim, src/testdir/test_jumps.vim, src/testdir/test_lambda.vim, src/testdir/test_langmap.vim, src/testdir/test_largefile.vim, src/testdir/test_lineending.vim, src/testdir/test_listchars.vim, src/testdir/test_listener.vim, src/testdir/test_listlbr.vim, src/testdir/test_listlbr_utf8.vim, src/testdir/test_makeencoding.vim, src/testdir/test_man.vim, src/testdir/test_mapping.vim, src/testdir/test_marks.vim, src/testdir/test_matchadd_conceal.vim, src/testdir/test_matchadd_conceal_utf8.vim, src/testdir/test_memory_usage.vim, src/testdir/test_menu.vim, src/testdir/test_messages.vim, src/testdir/test_mksession.vim, src/testdir/test_modeline.vim, src/testdir/test_nested_function.vim, src/testdir/test_number.vim, src/testdir/test_options.vim, src/testdir/test_packadd.vim, src/testdir/test_partial.vim, src/testdir/test_paste.vim, src/testdir/test_plus_arg_edit.vim, src/testdir/test_preview.vim, src/testdir/test_profile.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_quickfix.vim, src/testdir/test_quotestar.vim, src/testdir/test_random.vim, src/testdir/test_recover.vim, src/testdir/test_regex_char_classes.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_registers.vim, src/testdir/test_rename.vim, src/testdir/test_retab.vim, src/testdir/test_scriptnames.vim, src/testdir/test_scroll_opt.vim, src/testdir/test_scrollbind.vim, src/testdir/test_search_stat.vim, src/testdir/test_searchpos.vim, src/testdir/test_set.vim, src/testdir/test_sha256.vim, src/testdir/test_shift.vim, src/testdir/test_shortpathname.vim, src/testdir/test_signs.vim, src/testdir/test_sort.vim, src/testdir/test_sound.vim, src/testdir/test_source_utf8.vim, src/testdir/test_spellfile.vim, src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, src/testdir/test_stat.vim, src/testdir/test_suspend.vim, src/testdir/test_swap.vim, src/testdir/test_syntax.vim, src/testdir/test_tab.vim, src/testdir/test_tabline.vim, src/testdir/test_tagcase.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_termcodes.vim, src/testdir/test_termencoding.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/test_terminal_fail.vim, src/testdir/test_true_false.vim, src/testdir/test_utf8_comparisons.vim, src/testdir/test_vartabs.vim, src/testdir/test_version.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, src/testdir/test_windows_home.vim, src/testdir/test_wnext.vim, src/testdir/test_wordcount.vim, src/testdir/test_writefile.vim, src/testdir/test_xxd.vim Patch 8.2.1433 问题: Vim9: cannot mingle comments in multi-line lambda. 解决方案: Skip over NULL lines. (closes #6694) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1434 问题: Vim9: crash when lambda uses outer function argument. 解决方案: Set the flag that the outer context is used. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1435 问题: Vim9: always converting to string for ".." leads to mistakes. 解决方案: Only automatically convert simple types. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1436 问题: Function implementing :substitute has unexpected name. 解决方案: Rename from do_sub() to ex_substitute(). 文件: src/ex_cmds.c, src/proto/ex_cmds.pro, src/ex_docmd.c, src/ex_cmds.h Patch 8.2.1437 问题: Vim9: 'statusline' is evaluated using Vim9 script syntax. 解决方案: Always use legacy script syntax. 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1438 问题: Missing tests for interrupting script execution from debugger. 解决方案: Add tests. (Yegappan Lakshmanan, closes #6697) 文件: src/testdir/test_debugger.vim Patch 8.2.1439 问题: Tiny and small builds have no test coverage. 解决方案: Restore tests that do not depend on the +eval feature. (Ken Takata, closes #6696) 文件: .travis.yml, Filelist, Makefile, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, src/testdir/Makefile, src/testdir/runtest.vim, src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in, src/testdir/test20.ok, src/testdir/test21.in, src/testdir/test21.ok, src/testdir/test22.in, src/testdir/test22.ok, src/testdir/test23.in, src/testdir/test23.ok, src/testdir/test24.in, src/testdir/test24.ok, src/testdir/test25.in, src/testdir/test25.ok, src/testdir/test26.in, src/testdir/test26.ok, src/testdir/test27.in, src/testdir/test27.ok, src/testdir/test_options.vim Patch 8.2.1440 问题: Debugger code insufficiently tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #6700) 文件: src/testdir/test_debugger.vim, src/testdir/test_vimscript.vim Patch 8.2.1441 问题: Running tests in tiny version gives error for summarize.vim. 解决方案: Set 'cpoptions' to allow for line continuation. Restore redirecting test output to /dev/null. 文件: src/testdir/summarize.vim, src/testdir/Makefile Patch 8.2.1442 问题: Outdated references to the Mac Carbon GUI. 解决方案: Remove or update references. (Yee Cheng Chin, closes #6703) 文件: READMEdir/README_extra.txt, src/Makefile, src/configure.ac, src/auto/configure, src/gui_haiku.cc, src/os_macosx.m, src/testdir/test_iminsert.vim, src/vim.h Patch 8.2.1443 问题: Vim9: crash when interrupting a nested :def function. 解决方案: Push a dummy return value onto the stack. (closes #6701) 文件: src/vim9execute.c Patch 8.2.1444 问题: Error messages are spread out and names can be confusing. 解决方案: Start moving error messages to a separate file and use clear names. 文件: Filelist, src/vim.h, src/globals.h, src/errors.h, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/dict.c, src/evalvars.c, src/ex_docmd.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim9type.c Patch 8.2.1445 问题: Vim9: function expanded name is cleared when sourcing a script again. 解决方案: Only clear the expanded name when deleting the function. (closes #6707) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1446 问题: Vim9: line number in error message is not correct. 解决方案: Set SOURCING_LNUM before calling emsg(). (closes #6708) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1447 问题: Vim9: return type of keys() is list<any>. 解决方案: Should be list<string>. (closes #6711) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1448 问题: Test 77a for VMS depends on small.vim which does not exist. 解决方案: Use the 'silent while 0" trick. (issue #6696) 文件: src/testdir/test77a.in Patch 8.2.1449 问题: Some test makefiles delete files that are not generated. 解决方案: Remove the deletion commands. 文件: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms Patch 8.2.1450 问题: Vim9: no check that script-local items don't become global. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1451 问题: Vim9: list type at script level only uses first item. 解决方案: Use all members, like in a compiled function. (closes #6712) Also for dictionary. 文件: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1452 问题: Vim9: dead code in to_name_end(). 解决方案: Remove check for lambda and dict, it won't be used. 文件: src/vim9compile.c Patch 8.2.1453 问题: Vim9: failure to compile lambda not tested. 解决方案: Add a test case. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1454 问题: Vim9: failure invoking lambda with wrong arguments. 解决方案: Handle invalid arguments. Add a test. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1455 问题: Vim9: crash when using typecast before constant. 解决方案: Generate constant before checking type. Add tets. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1456 问题: MS-Windows: test files are not deleted. 解决方案: use "del" instead of $(DEL). 文件: src/testdir/Make_dos.mak Patch 8.2.1457 问题: Vim9: the output of :disassemble cannot be interrupted. 解决方案: Check got_int. (closes #6715) 文件: src/vim9execute.c Patch 8.2.1458 问题: .gawk files not recognized. 解决方案: Recognize .gawk files. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1459 问题: Vim9: declaring a script variable at the script level does not infer the type. 解决方案: Get the type from the value. (closes #6716) 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1460 问题: Error messages are spread out. 解决方案: Move more messages into errors.h. 文件: src/errors.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim9type.c, src/scriptfile.c, src/ex_cmds.c, src/ex_docmd.c, src/match.c, src/eval.c, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1461 问题: Vim9: string indexes are counted in bytes. 解决方案: Use character indexes. (closes #6574) 文件: runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1462 问题: Vim9: string slice not supported yet. 解决方案: Add support for string slicing. 文件: src/errors.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1463 问题: Vim9: list slice not supported yet. 解决方案: Add support for list slicing. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/list.c, src/proto/list.pro, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1464 问题: Vim9: build warning for unused variable. 解决方案: Delete the variable declaration. 文件: src/vim9execute.c Patch 8.2.1465 问题: Vim9: subscript not handled properly. 解决方案: Adjust error message. Remove dead code. Disallow string to number conversion in scripts. 文件: src/errors.h, src/vim9compile.c, src/vim9execute.c, src/eval.c, src/typval.c, src/list.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1466 问题: Vim9: cannot index or slice a variable with type "any". 解决方案: Add runtime index and slice. 文件: src/eval.c, src/proto/eval.pro, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/errors.h, src/list.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.1467 问题: Vim9: :echomsg doesn't like a dict argument. 解决方案: Convert arguments like in legacy script. (closes #6717) 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1468 问题: Vim9: invalid error for missing white space. 解决方案: Don't skip over white space after index. (closes #6718) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1469 问题: Vim9: cannot assign string to string option. 解决方案: Change checks for option value. (closes #6720) 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1470 问题: Errors in spell file not tested. 解决方案: Add test for spell file errors. (Yegappan Lakshmanan, closes #6721) 文件: src/testdir/test_spellfile.vim Patch 8.2.1471 问题: :const only locks the variable, not the value. 解决方案: Lock the value as ":lockvar 1 var" would do. (closes #6719) 文件: src/evalvars.c, src/testdir/test_const.vim Patch 8.2.1472 问题: ":argdel" does not work like ":.argdel" as documented. (Alexey Demin) 解决方案: Make ":argdel" work like ":.argdel". (closes #6727) Also fix giving the error "0 more files to edit". 文件: src/arglist.c, src/ex_docmd.c, src/testdir/test_arglist.vim Patch 8.2.1473 问题: Items in a list given to :const can still be modified. 解决方案: Work like ":lockvar! name" but don't lock referenced items. Make locking a blob work. 文件: runtime/doc/eval.txt, src/evalvars.c, src/eval.c, src/testdir/test_const.vim Patch 8.2.1474 问题: /usr/lib/udef/rules.d not recognized as udevrules. 解决方案: Adjust match pattern. (Haochen Tong, closes 36722) 文件: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.1475 问题: Vim9: can't use v:true for option flags. 解决方案: Add tv_get_bool_chk(). (closes #6725) 文件: src/typval.c, src/proto/typval.pro, src/channel.c Patch 8.2.1476 (after 8.2.1474) 问题: Filetype test fails on MS-Windows. 解决方案: Remove "^" from pattern. 文件: runtime/autoload/dist/ft.vim Patch 8.2.1477 问题: Vim9: error when using bufnr('%'). 解决方案: Don't give an error for using a string argument. (closes #6723) 文件: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1478 问题: Vim9: cannot use "true" for some popup options. 解决方案: Add dict_get_bool(). (closes #6725) 文件: src/dict.c, src/proto/dict.pro, src/popupwin.c Patch 8.2.1479 问题: Vim9: error for list index uses wrong line number. 解决方案: Set source line number. (closes #6724) Add a way to assert the line number of the error with assert_fails(). 文件: runtime/doc/testing.txt, src/vim9execute.c, src/testing.c, src/evalfunc.c, src/message.c, src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1480 问题: Vim9: skip expression in search() gives error. 解决方案: use tv_get_bool() eval_expr_to_bool(). (closes #6729) 文件: src/eval.c, src/typval.c, src/proto/typval.pro, src/testdir/test_vim9_func.vim Patch 8.2.1481 问题: Vim9: line number reported with error may be wrong. 解决方案: Check line number in tests. 文件: src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim, src/vim9execute.c Patch 8.2.1482 问题: Vim9: crash when using a nested lambda. 解决方案: Do not clear the growarray when not evaluating. Correct pointer when getting the next line. (closes #6731) 文件: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1483 问题: Vim9: error for using special as number when returning "false" from a popup filter. 解决方案: Use tv_get_bool(). (closes #6733) 文件: src/popupwin.c Patch 8.2.1484 问题: Flaky failure in assert_fails(). 解决方案: Only used fourth argument if there is a third argument. 文件: src/testing.c Patch 8.2.1485 问题: Vim9: readdirex() expression doesn't accept bool. 解决方案: Accept both -1 and bool. (closes #6737) 文件: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1486 问题: Vim9: readdir() expression doesn't accept bool. 解决方案: Merge with code for readdirex(). (closes #6737) 文件: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1487 问题: Travis: installing snd-dummy is not always useful. 解决方案: Only install snd-dummy on amd64. (Ozaki Kiichi, closes #6738) 文件: .travis.yml, ci/load-snd-dummy.sh Patch 8.2.1488 问题: Text does not scroll when inserting above first line. 解决方案: Adjust off-by-one error. (Ken Takata, closes #6739) 文件: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_scroll_at_topline.dump Patch 8.2.1489 问题: Vim9: error when setting an option with setbufvar(). 解决方案: Do not get a number from a string value. (closes #6740) 文件: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.1490 问题: Vim9: using /= with float and number doesn't work. 解决方案: Better support assignment with operator. (closes #6742) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1491 问题: Vim9: crash when compiling heredoc lines start with comment. 解决方案: Skip over NULL pointers. Do not remove comment and empty lines when fetching function lines. (closes #6743) 文件: src/vim9compile.c, src/scriptfile.c, src/proto/scriptfile.pro, src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_cmds.h, src/autocmd.c, src/proto/autocmd.pro, src/ex_getln.c, src/proto/ex_getln.pro, src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1492 问题: Build failures. 解决方案: Move typedef out of #ifdef. Adjust argument types. Discover America. 文件: src/structs.h, src/ex_docmd.c Patch 8.2.1493 问题: Not enough test coverage for the spell file handling. 解决方案: Add spell file tests. (Yegappan Lakshmanan, closes #6728) 文件: src/spellfile.c, src/testdir/test_spellfile.vim Patch 8.2.1494 问题: Missing change to calling eval_getline(). 解决方案: Change last argument. 文件: src/eval.c Patch 8.2.1495 问题: "make clean" may delete too many files. 解决方案: Do not delete $APPDIR. (closes #6751) 文件: src/Makefile Patch 8.2.1496 问题: Vim9: cannot use " #" in a mapping. 解决方案: Do not remove a comment with the EX_NOTRLCOM flag. (closes #6746) 文件: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1497 问题: CursorHold test is flaky. (Jakub Kądziołka) 解决方案: Use WaitForAssert() (closes #6754) 文件: src/testdir/test_autocmd.vim Patch 8.2.1498 问题: On slow systems tests can be flaky. 解决方案: Use TermWait() instead of term-wait(). (Yegappan Lakshmanan, closes #6756) 文件: src/testdir/test_digraph.vim, src/testdir/test_display.vim, src/testdir/test_popupwin.vim, src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim, src/testdir/test_writefile.vim Patch 8.2.1499 问题: Vim9: error when using "$" with col(). 解决方案: Reorder getting the column value. (closes #6744) 文件: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1500 问题: Vim9: error when using address without a command. 解决方案: Execute the range itself. (closes #6747) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1501 问题: Vim9: concatenating to constant reverses order. 解决方案: Generate constant before option, register and environment variable. (closes #6757) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1502 问题: Vim9: can use += with a :let command at script level. 解决方案: Give an error. 文件: src/evalvars.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1503 问题: Vim9: error for an autocmd defined in a :def function in legacy Vim script. 解决方案: Don't check the variable type. (closes #6758) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.1504 问题: Vim9: white space checks are only done for a :def function. 解决方案: Also do checks at the script level. Adjust the name of a few error messages. 文件: src/userfunc.c, src/errors.h, src/dict.c, src/list.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim Patch 8.2.1505 问题: Not all file read and writecode is tested. 解决方案: Add a few tests. (Dominique Pellé, closes #6764) 文件: src/testdir/test_eval_stuff.vim, src/testdir/test_fnamemodify.vim, src/testdir/test_functions.vim Patch 8.2.1506 问题: Vim9: no error when using a number other than 0 or 1 as bool. 解决方案: Check the number is 0 or 1. 文件: src/errors.h, src/typval.c, src/testdir/test_vim9_func.vim Patch 8.2.1507 问题: Using malloc() directly. 解决方案: Use ALLOC_ONE(). Remove superfluous typecast. (Hussam al-Homsi, closes #6768) 文件: src/eval.c, src/memline.c, src/vimrun.c Patch 8.2.1508 问题: Not all debugger commands covered by tests. 解决方案: Add tests for going up/down in the stack. (Ben Jackson, closes #6765) 文件: src/testdir/test_debugger.vim Patch 8.2.1509 问题: Vertical separator is cleared when dragging a popup window using a multi-byte character for the border. 解决方案: Only clear the character before the window if it is using a multi-byte character. (closes #6766) 文件: src/screen.c Patch 8.2.1510 问题: Using "var" in a :def function may refer to a legacy Vim script variable. 解决方案: Require using "s:" to refer to a legacy Vim script variable. (closes #6771) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1511 问题: Putting a string in Visual block mode ignores multi-byte characters. 解决方案: Adjust the column for Visual block mode. (closes #6767) 文件: src/register.c, src/testdir/test_visual.vim Patch 8.2.1512 问题: Failure after ternary expression fails. 解决方案: Restore eval_flags. (Yasuhiro Matsumoto, closes #6776) 文件: src/eval.c, src/testdir/test_vimscript.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1513 问题: Cannot interrupt shell used for filename expansion. (Dominique Pellé) 解决方案: Do set tmode in mch_delay(). (closes #6770) 文件: src/vim.h, src/os_unix.c, src/proto/os_unix.pro, src/term.c, src/channel.c, src/if_cscope.c, src/os_amiga.c, src/ui.c, src/proto/os_amiga.pro, src/os_win32.c, src/proto/os_win32.pro Patch 8.2.1514 问题: Multibyte vertical separator is cleared when dragging a popup window using a multi-byte character for the border. 解决方案: Only clear the character before the window if it is double width. (closes #6766) 文件: src/screen.c Patch 8.2.1515 问题: Vim9: can create s:var in legacy script but cannot unlet. 解决方案: Allow :unlet for legacy script var. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1516 问题: Vim9: error for :exe has wrong line number. 解决方案: Set line number before calling do_cmdline_cmd(). (closes #6774) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1517 问题: Cannot easily get the character under the cursor. 解决方案: Add the {chars} argument to strpart(). 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.1518 问题: Vim9: cannot assign to local option. 解决方案: Skip over "&l:" and "&g:". (closes #6749) 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1519 问题: Vim9: Ex command default range is not set. 解决方案: When range is not given use default. (closes #6779) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.1520 问题: Vim9: CTRL-] used in :def function does not work. 解决方案: Omit count or prepend colon. (closes #6769) 文件: src/normal.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1521 问题: Reading past end of buffer when reading spellfile. (Yegappan Lakshmanan) 解决方案: Store the byte length and check for it. 文件: src/spellfile.c, src/spell.h Patch 8.2.1522 问题: Not enough test coverage for the spell file handling. 解决方案: Add spell file tests. (Yegappan Lakshmanan, closes #6763) 文件: src/testdir/test_spellfile.vim Patch 8.2.1523 问题: Still not enough test coverage for the spell file handling. 解决方案: Add spell file tests. (Yegappan Lakshmanan, closes #6790) 文件: src/testdir/test_spellfile.vim Patch 8.2.1524 问题: No longer get an error for string concatenation with float. (Tsuyoshi Cho) 解决方案: Only convert float for Vim9 script. (closes #6787) 文件: src/eval.c, src/testdir/test_eval_stuff.vim Patch 8.2.1525 问题: Messages from tests were not always displayed. 解决方案: Always show messages, the timing is always useful. (Ken Takata, closes #6792) 文件: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile Patch 8.2.1526 问题: Line in testdir Makefile got commented out. (Christian Brabandt) 解决方案: Revert. 文件: src/testdir/Makefile Patch 8.2.1527 问题: Vim9: cannot use a function name as a function reference at script level. 解决方案: Check if a name is a function name. (closes #6789) 文件: src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.1528 问题: Vim9: :endif not found after "if false". 解决方案: When skipping still check for a following command. (closes #6797) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1529 问题: Vim9: :elseif may be compiled when not needed. 解决方案: Do evaluate the :elseif expression. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1530 问题: Vim9: test fails on MS-Windows. 解决方案: Skip Ex command inside "if false". 文件: src/vim9compile.c Patch 8.2.1531 问题: Vim9: test still fails on MS-Windows. 解决方案: When skipping expect function to be NULL. 文件: src/vim9compile.c Patch 8.2.1532 问题: Compiler warning for conversion of size_t to long. 解决方案: Add type cast. 文件: src/eval.c Patch 8.2.1533 问题: Vim9: error when passing getreginfo() result to setreg(). 解决方案: Use dict_get_bool() for "isunnamed". (closes #6784) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1534 问题: Vim9: type error for argument type is not at call position. 解决方案: Set the context and stack after checking the arguments. (issue #6785) 文件: src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1535 问题: It is not possible to specify cell widths of characters. 解决方案: Add setcellwidths(). 文件: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro, src/errors.h, src/testdir/test_utf8.vim Patch 8.2.1536 问题: Cannot get the class of a character; emoji widths are wrong in some environments. 解决方案: Add charclass(). Update some emoji widths. Add script to check emoji widths. 文件: Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro, src/testdir/emoji_list.vim, src/testdir/test_functions.vim Patch 8.2.1537 问题: Memory access error when using setcellwidths(). 解决方案: Use array and pointers correctly. 文件: src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim Patch 8.2.1538 问题: Python: iteration over vim objects fails to keep reference. 解决方案: Keep a reference for the object. (Paul Ollis, closes #6803, closes #6806) 文件: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.1539 问题: Using invalid script ID causes a crash. 解决方案: Check the script ID to be valid. (closes #6804) 文件: src/globals.h, src/evalvars.c, src/profiler.c, src/scriptfile.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1540 问题: The user cannot try out emoji character widths. 解决方案: Move the emoji script to the runtime/tools directory. 文件: Filelist, src/testdir/emoji_list.vim, runtime/tools/emoji_list.vim Patch 8.2.1541 问题: Vim9: cannot find function reference for s:Func. 解决方案: Recognize <SNR> prefix. (closes #6805) 文件: src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1542 问题: Vim9: test with invalid SID does not work in the GUI. 解决方案: Skip the test in the GUI. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1543 问题: Vim9: test with invalid SID is skipped in the GUI. 解决方案: Read the CTRL-C that feedkeys() put in typeahead. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1544 问题: Cannot translate messages in a Vim script. 解决方案: Add gettext(). Try it out for a few messages in the options window. 文件: Filelist, src/po/Makefile, src/po/README.txt, runtime/optwin.vim, src/evalfunc.c, src/po/tojavascript.vim, src/po/fixfilenames.vim, runtime/doc/eval.txt, runtime/doc/usr_41.txt Patch 8.2.1545 问题: ch_logfile() is unclear about closing when forking. 解决方案: Adjust the log messages. 文件: src/channel.c, src/os_unix.c Patch 8.2.1546 问题: Build rule for Vim.app is unused. 解决方案: Delete the related build rules. 文件: src/Makefile Patch 8.2.1547 问题: Various comment problems. 解决方案: Update comments. 文件: src/arglist.c, src/map.c, src/mbyte.c, src/tag.c, src/undo.c, src/testdir/README.txt, src/testdir/test_put.vim, src/libvterm/README Patch 8.2.1548 问题: Cannot move position of "%%" in message translations. (Emir Sarı) 解决方案: Improve the check script. 文件: src/po/check.vim Patch 8.2.1549 问题: The "r" command fails for keys with modifiers if 'esckeys' is off and modifyOtherKeys is used. (Lauri Tirkkonen) 解决方案: Temporarily disable bracketed paste and modifyOtherKeys if 'esckeys' is off. (closes #6809) 文件: src/normal.c Patch 8.2.1550 问题: Vim9: bufname('%') gives an error. 解决方案: Only give an error for wrong argument type. (closes #6807) 文件: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1551 问题: Vim9: error for argument type does not mention the number. 解决方案: Pass the argument number to where the error is given. 文件: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.1552 问题: Warnings from asan with clang-11. (James McCoy) 解决方案: Avoid using a NULL pointer. (issue #6811) 文件: src/fold.c Patch 8.2.1553 (after 8.2.1552) 问题: Crash in edit test. 解决方案: Avoid using invalid pointer. 文件: src/fold.c Patch 8.2.1554 问题: Crash in normal test. 解决方案: Skip adjusting marks if there are no folds. 文件: src/fold.c Patch 8.2.1555 问题: Not all tests are executed on Github Actions. 解决方案: Copy "src" to "src2" earlier. Recognize "src2" in a couple more places. Add two tests to the list of flaky tests. (Ken Takata, closes #6798) 文件: .github/workflows/ci-windows.yaml, src/testdir/runtest.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1556 问题: Cursorline highlighting always overrules sign highlighting. 解决方案: Combine the highlighting, use the priority to decide how. (closes #6812) 文件: runtime/doc/sign.txt, src/structs.h, src/drawline.c, runtime/pack/dist/opt/termdebug/plugin/termdebug.vim, src/testdir/test_signs.vim, src/testdir/dumps/Test_sign_cursor_5.dump, src/testdir/dumps/Test_sign_cursor_6.dump Patch 8.2.1557 问题: Crash in :vimgrep when started as "vim -n". (Raul Segura) 解决方案: Check mfp pointer. (Yegappan Lakshmanan, closes #6827) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1558 问题: Signs test fails. 解决方案: Add missing change to sign.c. 文件: src/sign.c Patch 8.2.1559 问题: s390x tests work again. 解决方案: re-enable s390x tests. (James McCoy, closes #6829) 文件: .travis.yml Patch 8.2.1560 问题: Using NULL pointers in some code. (James McCoy) 解决方案: Avoid adding to a NULL pointer. Use byte as unsigned. 文件: src/fold.c, src/eval.c, src/spellsuggest.c, src/spellfile.c, src/vim9compile.c Patch 8.2.1561 问题: Using NULL pointers in fold code. 解决方案: Avoid using a NULL pointer. (Dominique Pellé, closes #6831, closes #6831) 文件: src/fold.c Patch 8.2.1562 问题: Vim9: error when using "%" where a buffer is expected. 解决方案: Add tv_get_buf_from_arg(). (closes #6814) 文件: src/typval.c, src/proto/typval.pro, src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1563 问题: Vim9: error when using '%" with setbufvar() or getbufvar(). 解决方案: Use tv_get_buf_from_arg(). (closes #6816) 文件: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.1564 问题: A few remaining errors from ubsan. 解决方案: Avoid the warnings. (Dominique Pellé, closes #6837) 文件: src/spellfile.c, src/spellsuggest.c, src/viminfo.c Patch 8.2.1565 问题: Spellfile test sometimes fails. 解决方案: Check running into the end of the file. 文件: src/spellfile.c Patch 8.2.1566 问题: Not all Bazel files are recognized. 解决方案: Add *.bazel and *.BUILD. (closes #6836) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1567 问题: No example to use ubsan with clang. 解决方案: Add example commands. (Dominique Pellé, issue #6811) 文件: src/Makefile Patch 8.2.1568 问题: prop_find() skips properties in the same line if "skipstart" is used. 解决方案: Use "continue" instead of "break". (closes #6840) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1569 问题: Vim9: fixes for functions not tested; failure in getchangelist(). 解决方案: Add tests. (closes #6813, closes #6815, closes #6817) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1570 问题: Configure check for dirfd() does not work on HPUX. (Michael Osipov) 解决方案: Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes #6838) 文件: src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h Patch 8.2.1571 问题: Vim9: count() third argument cannot be "true". 解决方案: Use tv_get_bool_chk(). (closes #6818) 文件: src/typval.c, src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1572 问题: Vim9: expand() does not take "true" as argument. 解决方案: Use tv_get_bool_chk(). (closes #6819) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1573 问题: Vim9: getreg() does not take "true" as argument. 解决方案: Use tv_get_bool_chk(). (closes #6820) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1574 问题: Vim9: glob() does not take "true" as argument. 解决方案: Use tv_get_bool_chk(). (closes #6821) 文件: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1575 问题: Vim9: globpath() does not take "true" as argument. 解决方案: Use tv_get_bool_chk(). (closes #6821) 文件: src/filepath.c, src/testdir/test_vim9_func.vim Patch 8.2.1576 问题: Vim9: index() does not take "true" as argument. 解决方案: Use tv_get_bool_chk(). (closes #6823) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1577 问题: Vim9: hasmapto(), mapcheck() and maparg() do not take "true" as argument. 解决方案: Use tv_get_bool(). (closes #6822, closes #6824) 文件: src/evalfunc.c, src/map.c, src/testdir/test_vim9_func.vim Patch 8.2.1578 问题: Vim9: popup_clear() does not take "true" as argument. 解决方案: Use tv_get_bool(). (closes #6826) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1579 问题: Reports from asan are not optimal. 解决方案: Use clang with ubsan. (James McCoy, closes #6811) 文件: .travis.yml Patch 8.2.1580 问题: Wildmenu does not work properly. 解决方案: Do not call may_do_incsearch_highlighting() if completion is in progress. 文件: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_1.dump, src/testdir/dumps/Test_wildmenu_2.dump, src/testdir/dumps/Test_wildmenu_3.dump, src/testdir/dumps/Test_wildmenu_4.dump Patch 8.2.1581 问题: Using line() for global popup window doesn't work. 解决方案: Set tabpage to "curtab". (closes #6847) 文件: src/evalwindow.c, src/testdir/test_popupwin.vim Patch 8.2.1582 问题: The channel log does not show typed text. 解决方案: Add raw typed text to the log file. 文件: src/ui.c, src/os_win32.c Patch 8.2.1583 问题: MS-Windows: cannot easily measure code coverage. 解决方案: Add the COVERAGE option. (Ken Takata, closes #6842) 文件: src/Make_cyg_ming.mak Patch 8.2.1584 问题: Vim9: cannot use "true" for "skipstart" in prop_find(). 解决方案: Use dict_get_bool() instead of tv_get_number(). (closes #6852) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1585 问题: Messages in errors.h not translated, xgettext on MS-Windows not fully supported. 解决方案: Add errors.h to list of input files. Update MS-Windows makefiles to improve message translations. (Ken Takata, closes #6858) 文件: src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak, src/po/Makefile, src/po/README.txt, src/po/fixfilenames.vim Patch 8.2.1586 问题: :resize command not fully tested. 解决方案: Add a couple of tests. (Dominique Pellé, closes #6857) 文件: src/testdir/test_window_cmd.vim Patch 8.2.1587 问题: Loop for handling keys for the command line is too long. 解决方案: Move wild menu handling to separate functions. (Yegappan Lakshmanan, closes #6856) 文件: src/cmdexpand.c, src/proto/cmdexpand.pro, src/ex_getln.c Patch 8.2.1588 问题: Cannot read back the prompt of a prompt buffer. 解决方案: Add prompt_getprompt(). (Ben Jackson, closes #6851) 文件: runtime/doc/channel.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/channel.c, src/edit.c, src/evalfunc.c, src/proto/channel.pro, src/proto/edit.pro, src/testdir/test_prompt_buffer.vim Patch 8.2.1589 问题: Term_start() options for size are overruled by 'termwinsize'. (Sergey Vlasov) 解决方案: Set 'termwinsize' to the specified size. 文件: src/terminal.c, src/testdir/test_terminal2.vim, src/testdir/term_util.vim Patch 8.2.1590 问题: Vim9: bufnr() doesn't take "true" argument. 解决方案: use tv_get_bool_chk(). (closes #6863) 文件: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1591 问题: Using winheight('.') in tests works but is wrong. 解决方案: Use winheight(0). (issue #6863) 文件: src/testdir/test_functions.vim, src/testdir/test_quickfix.vim Patch 8.2.1592 问题: Vim9: passing "true" to char2nr() fails. 解决方案: Use tv_get_bool_chk(). (closes #6865) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1593 问题: Tests do not check the error number properly. 解决方案: Add a colon after the error number. (closes #6869) 文件: src/testdir/test_assert.vim, src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, src/testdir/test_const.vim, src/testdir/test_cscope.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, src/testdir/test_global.vim, src/testdir/test_gui.vim, src/testdir/test_hlsearch.vim, src/testdir/test_lambda.vim, src/testdir/test_let.vim, src/testdir/test_listdict.vim, src/testdir/test_move.vim, src/testdir/test_normal.vim, src/testdir/test_popupwin.vim, src/testdir/test_put.vim, src/testdir/test_quickfix.vim, src/testdir/test_rename.vim, src/testdir/test_search.vim, src/testdir/test_signs.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagfunc.vim, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_textprop.vim, src/testdir/test_timers.vim, src/testdir/test_true_false.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vimscript.vim, src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim, src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim Patch 8.2.1594 问题: Pull requests on github do not notify a maintainer. 解决方案: Add a CODEOWNERS file with a few initial entries. 文件: Filelist, .github/CODEOWNERS Patch 8.2.1595 问题: Cannot easily see what Vim sends to the terminal. 解决方案: Write output to the channel log if it contains terminal control sequences. Avoid warnings for tputs() argument. 文件: src/term.c, src/globals.h, src/edit.c, src/normal.c, src/optionstr.c Patch 8.2.1596 问题: Using win_screenpos('.') in tests works but is wrong. 解决方案: Use win_screenpos(0). 文件: src/testdir/test_terminal3.vim Patch 8.2.1597 问题: The channel source file is too big. 解决方案: Move job related code to a new source file. 文件: Filelist, src/Makefile, src/Make_mvc.mak, src/Make_cyg_ming.mak, src/channel.c, src/proto/channel.pro, src/job.c, src/proto/job.pro, src/proto.h, src/edit.c, src/proto/edit.pro, src/globals.h, src/configure.ac, src/auto/configure Patch 8.2.1598 问题: Starting a hidden terminal resizes the current window. 解决方案: Do not resize the current window for a hidden terminal. (closes #6872) 文件: src/terminal.c, src/testdir/test_terminal2.vim Patch 8.2.1599 问题: Missing line end when skipping a long line with :cgetfile. 解决方案: Fix off-by-one error. (closes #6870) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1600 问题: Vim9: cannot use "true" with deepcopy(). 解决方案: Use tv_get_bool_chk(). (closes #6867) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_listdict.vim Patch 8.2.1601 问题: Vim9: cannot use "true" with garbagecollect(). 解决方案: Use tv_get_bool(). (closes #6871) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1602 问题: Vim9: cannot use "true" with getbufinfo(). 解决方案: Use dict_get_bool(). (closes #6873) 文件: src/evalbuffer.c, src/testdir/test_vim9_func.vim Patch 8.2.1603 问题: Vim9: cannot use "true" with getchar(). 解决方案: use tv_get_bool_chk(). (closes #6874) 文件: src/getchar.c, src/testdir/test_vim9_func.vim Patch 8.2.1604 问题: Vim9: cannot use "true" with getcompletion(). 解决方案: use tv_get_bool_chk(). (closes #6875) 文件: src/cmdexpand.c, src/testdir/test_vim9_func.vim Patch 8.2.1605 问题: Default maintainer on github is wrong. 解决方案: Use Bram's account. 文件: .github/CODEOWNERS Patch 8.2.1606 问题: Vim9: cannot use "true" with has(). 解决方案: Use tv_get_bool(). (closes #6876) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1607 问题: Vim9: getchar() test fails on MS-Windows. 解决方案: First consume any available input. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1608 问题: Vim9: getchar() test fails with GUI. 解决方案: Avoid that getchar(0) gets stuck on K_IGNORE. 文件: src/getchar.c Patch 8.2.1609 问题: Vim9: test fails when build without +channel. 解决方案: Add check for +channel. (closes #6879) 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1610 问题: Vim9: cannot pass "true" to list2str() and str2list(). 解决方案: Use tv_get_bool_chk(). (closes #6877) 文件: src/evalfunc.c, src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1611 问题: Vim9: cannot pass "true" to nr2char(). 解决方案: use tv_get_bool_chk(). (closes #6878) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1612 问题: Vim9: cannot pass "true" to prop_remove(). 解决方案: Use dict_get_bool(). (closes #6853) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1613 问题: Vim9: cannot pass "true" to prop_type_add(). 解决方案: Use tv_get_bool(). (closes #6850) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1614 问题: Vim9: cannot pass "true" to searchcount(). 解决方案: Use tv_get_bool_chk(). (closes #6854) 文件: src/search.c, src/testdir/test_vim9_func.vim Patch 8.2.1615 问题: Vim9: cannot pass "true" to searchdecl(). 解决方案: use tv_get_bool_chk(). (closes #6881) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1616 问题: Vim9: cannot pass "true" to synID(). 解决方案: Use tv_get_bool_chk(). (closes #6860) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1617 问题: Vim9: cannot pass "true" to win_splitmove(). 解决方案: Use dict_get_bool(). (closes #6862) Alphabetize test functions. 文件: src/evalwindow.c, src/testdir/test_vim9_func.vim Patch 8.2.1618 问题: Vim9: cannot pass "true" to setloclist(). 解决方案: Use dict_get_bool(). (closes #6882) 文件: src/quickfix.c, src/testdir/test_vim9_func.vim Patch 8.2.1619 问题: Vim9: cannot pass "true" to spellsuggest(). 解决方案: Use tv_get_bool_chk(). (closes #6883) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1620 问题: searchcount() test fails. 解决方案: Restore default flag value. 文件: src/search.c Patch 8.2.1621 问题: Crash when using submatch(0, 1) in substitute(). 解决方案: Increment reference count. (closes #6887) 文件: src/regexp.c, src/testdir/test_substitute.vim Patch 8.2.1622 问题: Loop to handle keys for the command line is too long. 解决方案: Move code to functions. (Yegappan Lakshmanan, closes #6880) 文件: src/ex_getln.c Patch 8.2.1623 问题: Vim9: using :call where it is not needed. 解决方案: Remove :call. (closes #6892) 文件: src/testdir/test_maparg.vim, src/testdir/test_textprop.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1624 问题: Vim9: cannot pass "true" to split(), str2nr() and strchars(). 解决方案: Use tv_get_bool_chk(). (closes #6884, closes #6885, closes #6886) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1625 问题: Compiler warning for use of fptr_T. 解决方案: Make the type less strict. 文件: src/regexp.c Patch 8.2.1626 问题: Test for strchars() fails with different error number. 解决方案: Adjust the error number. 文件: src/testdir/test_utf8.vim Patch 8.2.1627 问题: Vim9: cannot pass "true" to submatch(), term_gettty() and term_start() 解决方案: Use tv_get_bool_chk(). (closes #6888, closes #6890, closes #6889) 文件: src/evalfunc.c, src/terminal.c, src/job.c, src/testdir/test_vim9_func.vim Patch 8.2.1628 问题: Vim9: cannot pass "true" to timer_paused(). 解决方案: Use tv_get_bool(). (closes #6891) 文件: src/time.c, src/testdir/test_vim9_func.vim Patch 8.2.1629 问题: Test fails without terminal feature. 解决方案: Check for terminal feature. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1630 问题: Terminal test fails. 解决方案: Correct argument to term_start(). Correct error number. 文件: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim Patch 8.2.1631 问题: test_fails() does not check the context of the line number. 解决方案: Use another argument to specify the context of the line number. 文件: runtime/doc/testing.txt, runtime/doc/eval.txt, src/testdir/test_vim9_func.vim, src/testing.c, src/globals.h, src/evalfunc.c, src/message.c Patch 8.2.1632 问题: Not checking the context of test_fails(). 解决方案: Add the line number and context arguments. Give error if assert_fails() argument types are wrong. 文件: src/testing.c, src/errors.h, src/testdir/test_assert.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1633 问题: Some error messages are internal but do not use iemsg(). 解决方案: Use iemsg(). (Dominique Pellé, closes #6894) 文件: src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.1634 问题: Loop to handle keys for the command line is too long. 解决方案: Move a few more parts to separate functions. (Yegappan Lakshmanan, closes #6895) 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.1635 问题: No digraph for 0x2022 BULLET. 解决方案: Use "oo". (Hans Ginzel, closes #6904) 文件: src/digraph.c, runtime/doc/digraph.txt Patch 8.2.1636 问题: Get stuck if a popup filter causes an error. 解决方案: Check whether the function can be called and does not cause an error. (closes #6902) 文件: src/structs.h, src/popupwin.c, src/testdir/test_popupwin.vim src/testdir/dumps/Test_popupwin_wrong_name.dump, src/testdir/dumps/Test_popupwin_three_errors_1.dump, src/testdir/dumps/Test_popupwin_three_errors_2.dump Patch 8.2.1637 问题: Vim9: :put ={expr} does not work inside :def function. 解决方案: Add ISN_PUT. (closes #6397) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/register.c, src/proto/register.pro, src/edit.c, src/ex_docmd.c, src/mouse.c, src/normal.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1638 问题: Leaking memory when popup filter function can't be called. 解决方案: Don't return too soon. 文件: src/popupwin.c Patch 8.2.1639 问题: Options window cannot be translated. 解决方案: Get the translation for "local to" texts once and use them in many places. Fix that 'whichwrap' is not a local option. (issue #6800) 文件: runtime/optwin.vim Patch 8.2.1640 问题: Amiga: missing header for getgrgid(). 解决方案: Add the grp.h header. (Ola Söder, closes #6906) 文件: src/os_amiga.h Patch 8.2.1641 问题: Vim9: cannot use 0 or 1 where a bool is expected. 解决方案: Allow using 0 and 1 for a bool type. (closes #6903) 文件: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.1642 问题: Options test fails. 解决方案: Correct call to OptionG(). 文件: runtime/optwin.vim Patch 8.2.1643 问题: Vim9: :defcompile compiles dead functions. 解决方案: Skip over dead functions. 文件: src/userfunc.c Patch 8.2.1644 问题: Vim9: cannot assign 1 and 0 to bool at script level. 解决方案: Add the TTFLAG_BOOL_OK flag to the type. Fix name of test function. 文件: src/vim9type.c, src/testdir/test_vim9_script.vim, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1645 问题: GTK3: icons become broken images when resized. 解决方案: Use gtk_image_new_from_icon_name(). (closes #6916) Fix compiler warnings. 文件: src/gui_gtk_x11.c Patch 8.2.1646 问题: Amiga: Unnecessary #include. 解决方案: Remove the #include. (Ola Söder, closes #6908) 文件: src/version.c Patch 8.2.1647 问题: Vim9: result of expression with && and || cannot be assigned to a bool variable. 解决方案: Add the TTFLAG_BOOL_OK flag and convert the value if needed. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1648 问题: Amiga: no common build file for Amiga (-like) systems. 解决方案: Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes #6805) 文件: Filelist, src/Make_ami.mak, src/Make_morph.mak, src/INSTALLami.txt Patch 8.2.1649 问题: GTK3: using old file chooser. 解决方案: Use native file chooser on GTK 3.20 and above. (Yogeshwar Velingker, closes #6909) 文件: src/gui_gtk.c Patch 8.2.1650 问题: Vim9: result of && and || expression cannot be assigned to a bool at the script level. 解决方案: Add the VAR_BOOL_OK flag. Convert to bool when needed. 文件: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/evalvars.c, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1651 问题: Spellfile code not completely tested. 解决方案: Add a few more test cases. (Yegappan Lakshmanan, closes #6918) 文件: src/testdir/test_spellfile.vim Patch 8.2.1652 问题: Cannot translate lines in the options window. 解决方案: Use the AddOption() function to split descriptions where indicated by a line break. (issue #6800) 文件: runtime/optwin.vim Patch 8.2.1653 问题: Expand('<stack>') does not include the final line number. 解决方案: Add the line number. (closes #6927) 文件: src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, src/testing.c, src/testdir/test_expand_func.vim Patch 8.2.1654 问题: When job writes to hidden buffer current window has display errors. (Johnny McArthur) 解决方案: Use aucmd_prepbuf() instead of switch_to_win_for_buf(). (closes #6925) 文件: src/channel.c Patch 8.2.1655 问题: Cannot build with Strawberry Perl 5.32.0. 解决方案: Use Perl_sv_2pvbyte_flags. (closes #6921) 文件: src/if_perl.xs Patch 8.2.1656 问题: Vim9: callstack wrong if :def function calls :def function. 解决方案: Set the line number before calling. (closes #6914) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1657 问题: Vim9: no proper error for nested ":def!". 解决方案: Check for "!". (closes #6920) 文件: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1658 问题: Expand('<stack>') has trailing "..". 解决方案: Remove the "..". (closes #6927) 文件: src/scriptfile.c, src/testdir/test_expand_func.vim Patch 8.2.1659 问题: Spellfile code not completely tested. 解决方案: Add a few more test cases. (Yegappan Lakshmanan, closes #6929) 文件: src/testdir/test_spell.vim, src/testdir/test_spellfile.vim Patch 8.2.1660 问题: Assert functions require passing expected result as the first argument, which isn't obvious. 解决方案: Use a method, as in "runtest()->assert_equal(expected)". 文件: src/testdir/test_vim9_func.vim Patch 8.2.1661 问题: Cannot connect to 127.0.0.1 for host with only IPv6 addresses. 解决方案: pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger, closes #6931) 文件: src/channel.c Patch 8.2.1662 问题: :mksession does not restore shared terminal buffer properly. 解决方案: Keep a hashtab with terminal buffers. (Rob Pilling, closes #6930) 文件: src/hashtab.c, src/proto/terminal.pro, src/session.c, src/terminal.c, src/testdir/test_mksession.vim Patch 8.2.1663 问题: Options window entries cannot be translated. 解决方案: Use AddOption() for all explanations. (closes #6800) 文件: runtime/optwin.vim Patch 8.2.1664 问题: Memory leak when using :mkview with a terminal buffer. 解决方案: Don't use a hastab for :mkview. (Rob Pilling, closes #6935) 文件: src/session.c, src/terminal.c, src/testdir/test_mksession.vim Patch 8.2.1665 问题: Cannot do fuzzy string matching. 解决方案: Add matchfuzzy(). (Yegappan Lakshmanan, closes #6932) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/search.pro, src/search.c, src/testdir/test_functions.vim Patch 8.2.1666 问题: The initial value of 'backupskip' can have duplicate items. 解决方案: Remove duplicates, like when it is set later. (Tom Ryder, closes #6940) 文件: src/option.c, src/testdir/test_options.vim Patch 8.2.1667 问题: Local function name cannot shadow a global function name. 解决方案: Ignore global functions when checking a script-local or scoped function name. (closes #6926) 文件: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.1668 问题: Vim9: not accepting 0 or 1 as bool when type is any. 解决方案: Convert the type with the CHECKTYPE instruction. (closes #6913) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1669 问题: Vim9: memory leak when storing a value fails. 解决方案: Free the value when not storing it. 文件: src/evalvars.c Patch 8.2.1670 问题: A couple of gcc compiler warnings. 解决方案: Initialize local variables. (Dominique Pellé, closes #6944) 文件: src/memline.c, src/option.c Patch 8.2.1671 问题: Vim9: stray error for missing white space. 解决方案: Do not skip over white space after member. (closes #6917) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1672 问题: v_lock is used when it is not initialized. (Yegappan Lakshmanan) 解决方案: Initialize the typval in eval1(). 文件: src/eval.c Patch 8.2.1673 问题: complete_info() selected index has an invalid value. (Ben Jackson) 解决方案: Set the index when there is only one match. (closes #6945) Add test for complete_info(). 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.1674 问题: Vim9: internal error when using variable that was not set. 解决方案: Give a meaningful error. (closes #6937) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.1675 问题: MinGW: testdir makefile deletes non-existing file. 解决方案: Use another way to delete the output file if it already exists. (Michael Soyka) 文件: src/testdir/Make_ming.mak Patch 8.2.1676 问题: Compiler warnings for function typecast. 解决方案: Add an intermediate cast to "void *". 文件: src/os_unix.c Patch 8.2.1677 问题: Memory access errors when calling setloclist() in an autocommand. 解决方案: Give an error if the list was changed unexpectedly. (closes #6946) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1678 问题: Crash when using ":set" after ":ownsyntax". (Dhiraj Mishra) 解决方案: Make sure 'spelloptions' is not NULL. (closes #6950) 文件: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.1679 问题: Vim9: ":*" is not recognized as a range. 解决方案: Move recognizing "*" into skip_range(). (closes #6938) 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c, src/ex_getln.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1680 问题: Vim9: line number for compare error is wrong. 解决方案: Set SOURCING_LNUM. (closes #6936) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1681 问题: Vim9: unnecessary :call commands in tests. 解决方案: Remove the commands. (issue #6936) 文件: src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1682 问题: Vim9: const works in an unexpected way. 解决方案: ":const" only disallows changing the variable, not the value. Make "list[0] = 9" work at the script level. 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1683 问题: Vim9: assignment test fails. 解决方案: Include changes to find Ex command. 文件: src/ex_docmd.c Patch 8.2.1684 问题: "gF" does not use line number after file in Visual mode. 解决方案: Look for ":123" after the Visual area. (closes #6952) 文件: src/findfile.c, src/testdir/test_gf.vim Patch 8.2.1685 问题: Vim9: cannot declare a constant value. 解决方案: Introduce ":const!". 文件: runtime/doc/vim9.txt, src/ex_cmds.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/errors.h, src/vim.h, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.1686 问题: Vim9: "const!" not sufficiently tested. 解决方案: Add a few more test cases. Fix type checking. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1687 问题: Vim9: out of bounds error. 解决方案: Check that cmdidx is not negative. 文件: src/vim9compile.c Patch 8.2.1688 问题: Increment/decrement removes text property. 解决方案: Insert the new number before deleting the old one. (closes #6962) 文件: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.1689 问题: 'colorcolumn' doesn't show in indent. 解决方案: Also draw the column when draw_state is WL_BRI or WL_SBR. (Alexey Demin, closes #6948, closes #6619) 文件: src/drawline.c, src/testdir/dumps/Test_colorcolumn_2.dump, src/testdir/dumps/Test_colorcolumn_3.dump, src/testdir/test_highlight.vim Patch 8.2.1690 问题: Text properties not adjusted for "I" in Visual block mode. 解决方案: Call inserted_bytes(). (closes #6961) 文件: src/ops.c, src/change.c, src/proto/change.pro, src/testdir/test_textprop.vim Patch 8.2.1691 问题: Vim9: list<any> is not accepted where list<number> is expected. 解决方案: Add functions to allocate and free a type_T, use it in ISN_CHECKTYPE. (closes #6959) 文件: src/vim9.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalfunc.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.1692 问题: Build fails because TTFLAG_STATIC is missing. 解决方案: Include missing change. 文件: src/structs.h Patch 8.2.1693 问题: "hi def" does not work for cleared highlight. 解决方案: Check the "sg_cleared" flag. (Maxim Kim, closes #6956, closes #4405) 文件: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1694 问题: Compiler warning for loss if data. 解决方案: Add typecast. 文件: src/ops.c Patch 8.2.1695 问题: Vim9: crash when using varargs type "any". 解决方案: Check if uf_va_type is &t_any. (closes #6957) 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1696 问题: Unused (duplicate) macros. 解决方案: Remove the macros. 文件: src/spell.c Patch 8.2.1697 问题: Inconsistent capitalization of error messages. 解决方案: Always start with a capital. 文件: src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim Patch 8.2.1698 问题: Cannot lock a variable in legacy Vim script like in Vim9. 解决方案: Make ":lockvar 0" work. 文件: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, src/dict.c, src/eval.c, src/list.c, src/typval.c, src/userfunc.c, src/testdir/test_const.vim, src/testdir/test_listdict.vim Patch 8.2.1699 问题: Build failure due to missing error message. 解决方案: Add error message. 文件: src/errors.h Patch 8.2.1700 问题: Vim9: try/catch causes wrong value to be returned. 解决方案: Reset tcd_return. (closes #6964) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1701 问题: Vim9: sort("i") does not work. 解决方案: Don't try getting a number for a string argument. (closes #6958) 文件: src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.1702 问题: Crash when using undo after deleting folded lines. 解决方案: Check for NULL pointer. (closes #6968) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1703 问题: ":highlight clear" does not restore default link. 解决方案: Remember the default link and restore it. (Antony Scriven, closes #6970, closes #4405) 文件: runtime/doc/syntax.txt, src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1704 问题: Vim9: crash in for loop when autoload script has an error. 解决方案: Reset suppress_errthrow. Check for NULL list. (closes #6967) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1705 问题: "verbose hi Name" reports incorrect info after ":hi clear". 解决方案: Store the script context. (Antony Scriven, closes #6975) 文件: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.1706 问题: Vim9: crash after running into the "Multiple closures" error. 解决方案: When a function fails still update any closures. (closes #6973) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1707 问题: Small inconsistency in highlight test. 解决方案: Use one argument for :execute. (Antony Scriven, #6975) 文件: src/testdir/test_highlight.vim Patch 8.2.1708 问题: Vim9: error message for function has unprintable characters. 解决方案: use printable_func_name(). (closes #6965) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1709 问题: Vim9: memory leak when using multiple closures. 解决方案: Free the partial. 文件: src/vim9execute.c Patch 8.2.1710 问题: Vim9: list of list type can be wrong. 解决方案: Use VAR_UNKNOWN for empty list. Recognize VAR_UNKNOWN when looking for a common type. (closes #6979) 文件: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1711 问题: Vim9: leaking memory when using partial. 解决方案: Do delete the function even when it was compiled. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9execute.c Patch 8.2.1712 问题: Vim9: leaking memory when calling a lambda. 解决方案: Decrement function reference from ISN_DCALL. 文件: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.1713 问题: Motif GUI: crash when setting menu colors. (Andrzej Bylicki) 解决方案: Add {} to make "n" incremented correctly. (closes #6989, closes #5948) 文件: src/gui_motif.c Patch 8.2.1714 问题: Text properties corrupted with substitute command. (Filipe Brandenburger) 解决方案: Get the changed line again after using u_savesub(). (closes #6984) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.1715 问题: Motif GUI: commented out code missed {}. 解决方案: Add {} and reenable the code. (similar to #6989) 文件: src/gui_motif.c Patch 8.2.1716 问题: Options window has duplicate translations. 解决方案: Make one entry for "global or local to buffer". Fix wrong text. (closes #6983) 文件: runtime/optwin.vim Patch 8.2.1717 问题: MS-Windows installer doesn't have Russian translations. 解决方案: Add Russian translations. (closes #6985) 文件: nsis/gvim.nsi, nsis/lang/russian.nsi Patch 8.2.1718 问题: Vim9: :def function disallows "firstline" and "lastline" argument names for no good reason. 解决方案: Don't check the arguments for a :def function. (closes #6986) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1719 问题: Vim9: no error if comma is missing in between arguments. 解决方案: Give an error message. 文件: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1720 问题: Vim9: memory leak with heredoc that isn't executed. (Dominique Pellé) 解决方案: Don't clear the list items. (closes #6991) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1721 问题: MS-Windows installer doesn't work. 解决方案: Write "Russian" in ASCII. (closes #6995, see #6985). 文件: nsis/lang/russian.nsi Patch 8.2.1722 问题: Vim9: cannot assign a lambda to a variable of type function. 解决方案: Allow for assigning a partial to a variable of type function. (Naruhiko Nishino, closes #6996) 文件: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1723 问题: Vim9: Variable argument name cannot start with underscore. 解决方案: Use eval_isnamec1(). (closes #6988) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1724 问题: Vim9: assignment tests spread out. 解决方案: Create new test file for assignment tests. 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/Make_all.mak Patch 8.2.1725 问题: Not all Pascal files are recognized. 解决方案: Add filetype patterns. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1726 问题: Fuzzy matching only works on strings. 解决方案: Support passing a dict. Add matchfuzzypos() to also get the match positions. (Yegappan Lakshmanan, closes #6947) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/search.pro, src/search.c, src/testdir/Make_all.mak, src/testdir/test_functions.vim, src/testdir/test_matchfuzzy.vim Patch 8.2.1727 问题: A popup created with "cursorline" will ignore "firstline". 解决方案: When both "cursorline" and "firstline" are present put the cursor on "firstline". (closes #7000) Add the "winid" argument to getcurpos(). 文件: runtime/doc/eval.txt, src/evalfunc.c, src/popupwin.c, src/evalwindow.c, src/testdir/test_popupwin.vim, src/testdir/test_functions.vim Patch 8.2.1728 问题: Compiler warning for using uninitialized variable. (John Marriott) 解决方案: Initialize "neighbor". 文件: src/search.c Patch 8.2.1729 问题: Endless loop when ":normal" feeds popup window filter. 解决方案: Add the ex_normal_busy_done flag. 文件: src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c, src/menu.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_normal_cmd.dump Patch 8.2.1730 问题: Vim9: cannot use member of unknown type. 解决方案: When type is unknown use "any". (closes #6997) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1731 问题: Vim9: cannot use += to append to empty NULL list. 解决方案: Copy the list instead of extending it. (closes #6998) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.1732 问题: Stuck when win_execute() for a popup causes an error. 解决方案: Disable the filter callback on error. (issue #6999) 文件: src/popupwin.c, src/testdir/term_util.vim, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_win_execute.dump Patch 8.2.1733 问题: Vim9: memory leaks when using nested function. 解决方案: Free function when compilation fails. 文件: src/vim9compile.c Patch 8.2.1734 问题: Vim9: cannot use a funcref for a closure twice. 解决方案: Instead of putting the funcref on the stack use a growarray on the execution context. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1735 问题: Github actions appear to timeout too soon. 解决方案: use "timeout" instead of "ping". 文件: .github/workflows/ci-windows.yaml Patch 8.2.1736 问题: Failure to compile a pattern not tested much. 解决方案: Add tests where a pattern fails to compile. (Yegappan Lakshmanan, closes #7004) 文件: src/testdir/gen_opt_test.vim, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, src/testdir/test_checkpath.vim, src/testdir/test_cmdline.vim, src/testdir/test_debugger.vim, src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_listdict.vim, src/testdir/test_options.vim, src/testdir/test_search_stat.vim, src/testdir/test_sort.vim, src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim, src/testdir/test_user_func.vim Patch 8.2.1737 问题: Cursor line highlight in popup window is not always updated. 解决方案: Check if the cursor has moved. (closes #7010) 文件: src/popupwin.c, src/testdir/test_popupwin.vim src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump Patch 8.2.1738 问题: Mac: str2float() recognizes comma instead of decimal point. 解决方案: Set LC_NUMERIC to "C". (closes #7003) 文件: src/os_mac_conv.c Patch 8.2.1739 问题: Vim9: crash when compiling a manually defined function. (Antony Scriven) 解决方案: Check that the script ID is positive. (closes #7012) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.1740 问题: Test fails without the terminal feature. 解决方案: Skip test if the terminal feature is not available. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1741 问题: pathshorten() only supports using one character. 解决方案: Add an argument to control the length. (closes #7006) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.1742 问题: Test still fails without the terminal feature. 解决方案: Put check for terminal feature in separate function. 文件: src/testdir/test_vim9_script.vim Patch 8.2.1743 问题: Cannot build without the eval feature. 解决方案: Move shorten_dir outside of #ifdef. 文件: src/filepath.c Patch 8.2.1744 问题: Vim9: using ":const!" is weird. 解决方案: Use "var" - "final" - "const" like Dart. "let" still works for now. 文件: runtime/doc/vim9.txt, src/ex_cmds.h, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/cmdexpand.c, src/eval.c, src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/vim9script.c, src/vim.h, src/ex_cmdidxs.h, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1745 问题: Tiny version doesn't build. 解决方案: Add dummy ex_var() function. 文件: src/ex_docmd.c Patch 8.2.1746 问题: Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino) 解决方案: Specifically check for "fina". (closes #7020) 文件: src/ex_docmd.c, src/testdir/test_trycatch.vim, src/testdir/test_vim9_script.vim Patch 8.2.1747 问题: Result of expand() unexpectedly depends on 'completeslash'. 解决方案: Temporarily reset 'completeslash'. (Yasuhiro Matsumoto, closes #7021) 文件: src/evalfunc.c, src/testdir/test_ins_complete.vim Patch 8.2.1748 问题: Closing split window in other tab may cause a crash. 解决方案: Set tp_curwin properly. (Rob Pilling, closes #7018) 文件: src/window.c, src/testdir/test_winbuf_close.vim Patch 8.2.1749 问题: Vim9: crash when closure fails in nested function. 解决方案: Handle function returns before dereferencing remaining closures. (closes #7008) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1750 问题: Setting firstline with popup_setoptions() fails if cursorline is set. 解决方案: Use apply_options(). Update the popup before applying "zz". (closes #7010) 文件: src/popupwin.c, src/proto/popupwin.pro, src/move.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump, src/testdir/dumps/Test_popupwin_set_firstline_1.dump, src/testdir/dumps/Test_popupwin_set_firstline_2.dump Patch 8.2.1751 问题: Using 2 where bool is expected may throw an error. 解决方案: Make this backwards compatible. 文件: src/typval.c, src/evalfunc.c, src/testdir/test_search.vim, src/testdir/test_terminal2.vim Patch 8.2.1752 问题: GTK GUI: cannot map alt-? with <A-?>. (Ingo Karkat) 解决方案: Adjust the characters for which the shift modifier is removed. (closes #7016) Make Motif and Win32 use the same function as GTK. 文件: src/misc2.c, src/gui_x11.c, src/gui_w32.c, src/testdir/test_termcodes.vim Patch 8.2.1753 问题: Vim9: crash when using import at script level. 解决方案: Give a "not implemented yet" error. (closes #7026) 文件: src/evalvars.c Patch 8.2.1754 问题: Completion with spell checking not tested. 解决方案: Add a test case. (Dominique Pellé, closes #7024) 文件: src/testdir/test_spell.vim Patch 8.2.1755 问题: Vim9: crash when using invalid heredoc marker. (Dhiraj Mishra) 解决方案: Check for NULL list. (closes #7027) Fix comment character. 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.1756 问题: Vim9: :let will soon be disallowed. 解决方案: Add v:disallow_let temporarily. Fix tests. 文件: src/vim.h, src/errors.h, src/evalvars.c, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1757 问题: Mac: default locale is lacking the encoding. 解决方案: Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022) 文件: src/os_mac_conv.c, src/testdir/test_environ.vim Patch 8.2.1758 问题: Vim9: type of unmaterialized list is wrong. 解决方案: Use list<number>. 文件: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1759 问题: Vim9: Some tests are still using :let. 解决方案: Change more declarations to use :var. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1760 问题: Vim9: crash when end marker is missing. (Dhiraj Mishra) 解决方案: Check for end of function lines. (closes #7031) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1761 问题: Vim9: Some tests are still using :let. 解决方案: Change more declarations to use :var. 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1762 问题: When a timer uses :stopinsert Insert mode completion isn't stopped. (Stanley Chan) 解决方案: Call ins_compl_prep(ESC). 文件: src/edit.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_pum_stopped_by_timer.dump Patch 8.2.1763 问题: Vim9: cannot use "true" for popup window scrollbar option. 解决方案: use dict_get_bool(). (closes #7029) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1764 问题: Vim9: no error when assigning to script var with wrong type. 解决方案: Fix off-by-one error. (closes #7028) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1765 问题: Vim9: some tests use "var var". 解决方案: Use "var name". (closes #7032) 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1766 问题: Vim9: Some tests are still using :let. 解决方案: Change the last few declarations to use :var. 文件: src/testdir/runtest.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_maparg.vim, src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim Patch 8.2.1767 问题: Vim9: test fails with python support. 解决方案: Use "let" in legacy function. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1768 问题: Cannot use the help menu from a terminal window. 解决方案: Add ":tlnoremenu" commands. (Yee Cheng Chin, closes #7023) 文件: runtime/menu.vim, src/testdir/test_gui.vim Patch 8.2.1769 问题: A popup filter interferes with using :normal to move the cursor in a popup. 解决方案: Do not invoke the filter when ex_normal_busy is set. 文件: runtime/doc/popup.txt, src/getchar.c, src/evalfunc.c, src/ex_docmd.c, src/menu.c, src/globals.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_normal_cmd.dump Patch 8.2.1770 问题: Invalid memory use when using SpellFileMissing autocmd. 解决方案: Add test case. (Dominique Pellé, closes #7036) Fix using a window that was closed. 文件: src/spell.c, src/testdir/test_spell.vim Patch 8.2.1771 问题: synIDattr() cannot get the value of ctermul. 解决方案: Add the "ul" value for "what". (closes #7037) 文件: runtime/doc/eval.txt, src/highlight.c, src/evalfunc.c, src/testdir/test_highlight.vim Patch 8.2.1772 问题: Cannot use CTRL-W <Down> to move out of a terminal window. 解决方案: Use special_to_buf() instead of mb_char2bytes(). (closes #7045) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1773 问题: Crash when calling mapset() with a list as first argument. 解决方案: Check for NULL. (closes #7040) 文件: src/map.c, src/testdir/test_maparg.vim Patch 8.2.1774 问题: GTK: hang when forced to exit. 解决方案: Do not clean up "mainwin" when really_exiting is set. (Zdenek Dohnal, closes #7042) 文件: src/gui_gtk_x11.c Patch 8.2.1775 问题: MS-Windows: adding a long quickfix list is slow. 解决方案: Shorten the buffer name only for the first entry. (Yegappan Lakshmanan, closes #7039, closes #7033) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1776 问题: Filetype.vim may be loaded twice. 解决方案: Do "syntax on" after "filetype on". (Adam Stankiewicz, closes #7049) 文件: runtime/defaults.vim Patch 8.2.1777 问题: Vim9: some assignment tests in the wrong file. 解决方案: Move assignment tests to test_vim9_assign. 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1778 问题: Vim9: returning from a partial call clears outer context, causing a crash. 解决方案: Put the outer context in the stack frame. (closes #7044) 文件: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.1779 问题: Some debian changelog files are not recognized. 解决方案: Add */debian/changelog. (Jason Franklin) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1780 问题: Statusline not updated when splitting windows. 解决方案: Call status_redraw_all(). (Jason Franklin, closes #5496) 文件: src/window.c, src/testdir/test_statusline.vim Patch 8.2.1781 问题: Writing to prompt buffer interferes with insert mode. 解决方案: Use win_enter() instead of just setting "curwin". (Ben Jackson, closes #7035) 文件: src/autocmd.c, src/testdir/test_prompt_buffer.vim Patch 8.2.1782 问题: Vim9: cannot pass boolean to mapset(). 解决方案: Use get_tv_bool(). (closes #7041) 文件: src/map.c, src/testdir/test_vim9_func.vim Patch 8.2.1783 (after 8.2.1781) 问题: Try-catch test fails. 解决方案: Don't call win_enter(), only call entering_window(). 文件: src/autocmd.c, src/window.c, src/proto/window.pro, src/testdir/runtest.vim Patch 8.2.1784 问题: commits are not scanned for security problems 解决方案: Enable Github code scanning. (Christian Brabandt, closes #7057) 文件: .github/workflows/codeql-analysis.yml Patch 8.2.1785 问题: Compiler warning for strcpy() out of bounds. (Christian Brabandt) 解决方案: use memmove() instead. 文件: src/dict.c Patch 8.2.1786 问题: Various Normal mode commands not fully tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #7059) 文件: src/testdir/test_normal.vim, src/testdir/test_regexp_utf8.vim, src/testdir/test_registers.vim, src/testdir/test_spellfile.vim, src/testdir/test_tagjump.vim, src/testdir/test_visual.vim Patch 8.2.1787 问题: Crash with 'incsearch' and very long line. 解决方案: Check whether regprog becomes NULL. (closes #7063) 文件: src/search.c, src/testdir/test_search.vim Patch 8.2.1788 问题: Vim9: still allows :let for declarations. 解决方案: Make the default for v:disallow_let one. It can still be set to zero to allow for using :let. 文件: src/evalvars.c, src/testdir/runtest.vim Patch 8.2.1789 问题: Vim9: crash with invalid list constant. (Dhiraj Mishra) 解决方案: Return FAIL when compiling the list fails. (closes #7066) 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.1790 问题: MS-Windows with Python: crash when executed from Vifm. 解决方案: Use NUL instead of CONIN. (Ken Takata, closes #7061, closes #7053) 文件: src/if_python3.c Patch 8.2.1791 问题: Vim9: debugger test fails. 解决方案: Use "var" instead of "let". 文件: src/testdir/test_debugger.vim Patch 8.2.1792 问题: Configure does not recognize Racket 6.1+. 解决方案: Add a check for "rktio". (closes #7062) 文件: src/configure.ac, src/auto/configure Patch 8.2.1793 问题: Not consistently giving the "is a directory" warning. 解决方案: Adjust check for illegal file name and directory. (Yasuhiro Matsumoto, closes #7067) 文件: src/fileio.c, src/testdir/test_edit.vim Patch 8.2.1794 问题: No falsy Coalescing operator. 解决方案: Add the "??" operator. Fix mistake with function argument count. 文件: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, src/vim9type.c, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1795 问题: Vim9: operators && and || have a confusing result. 解决方案: Make the result a boolean. 文件: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1796 问题: Vim9: invalid memory access with weird function name. (Dhiraj Mishra) 解决方案: Check the name is valid. Add a test. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1797 问题: Vim9: some parts of the code not tested. 解决方案: Add a few tests. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1798 问题: Vim9: ternary operator condition is too permissive. 解决方案: Use tv_get_bool_chk(). 文件: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.1799 问题: Some Normal mode commands not fully tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #7073) 文件: src/testdir/test_gf.vim, src/testdir/test_goto.vim, src/testdir/test_normal.vim, src/testdir/test_registers.vim, src/testdir/test_startup.vim, src/testdir/test_tabpage.vim, src/testdir/test_visual.vim Patch 8.2.1800 问题: Vim9: memory leak if "if" condition is invalid. 解决方案: Free ppconst earlier. 文件: src/vim9compile.c Patch 8.2.1801 问题: Undo file not found when using ":args" or ":next". 解决方案: Handle like editing another file. (closes #7072) 文件: src/ex_cmds.c, src/testdir/test_undo.vim Patch 8.2.1802 问题: Vim9: crash with unterminated dict. (Dhiraj Mishra) 解决方案: Return empty string instead of NULL. (closes #7084) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1803 问题: A few failures are not tested. 解决方案: Test a few failures. (Dominique Pellé, closes #7075) 文件: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_json.vim, src/testdir/test_listdict.vim Patch 8.2.1804 问题: resolve('/') returns an empty string. 解决方案: Don't remove single slash. (closes #7074) 文件: src/filepath.c, src/testdir/test_functions.vim Patch 8.2.1805 问题: Unix: terminal mode changed when using ":shell". 解决方案: Avoid calling settmode() when not needed. (issue #7079) 文件: src/os_unix.c Patch 8.2.1806 问题: MS-Windows with Python: Vim freezes after import command. 解决方案: Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro Matsumoto, closes #7083) 文件: src/if_python3.c Patch 8.2.1807 问题: Can use :help in a terminal popup window. 解决方案: Give an error. (closes #7088) 文件: src/help.c, src/testdir/test_popupwin.vim Patch 8.2.1808 问题: No test coverage for ":spelldump!". 解决方案: Add a test. (Dominique Pellé, closes #7089) 文件: src/testdir/test_spell.vim Patch 8.2.1809 问题: Mapping some keys with Ctrl does not work properly. 解决方案: For terminal, GTK and Motif handle "@", "^" and "_" codes. 文件: src/misc2.c, src/proto/misc2.pro, src/term.c, src/gui_gtk_x11.c, src/gui_x11.c, src/testdir/test_termcodes.vim Patch 8.2.1810 问题: Some code in normal.c not covered by tests. 解决方案: Add normal mode tests. (Yegappan Lakshmanan, closes #7086) 文件: src/testdir/test_charsearch.vim, src/testdir/test_normal.vim Patch 8.2.1811 问题: Mapping Ctrl-key does not work for '{', '}' and '|'. 解决方案: Remove the shift modifier. (closes #6457) 文件: runtime/doc/map.txt, src/misc2.c, src/testdir/test_termcodes.vim Patch 8.2.1812 问题: Vim9: nested closure throws an internal error. 解决方案: Do not skip a local variable with a partial. (closes #7065) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1813 问题: Vim9: can assign wrong type to script dict. (Christian J. Robinson) 解决方案: Check the type if known. 文件: src/structs.h, src/eval.c, src/vim9script.c, src/proto/vim9script.pro, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.1814 (after 8.2.1813) 问题: Missing change to remove "static". 解决方案: Add the change. 文件: src/evalvars.c Patch 8.2.1815 问题: Vim9: memory leak when using function reference. 解决方案: Temporarily disable the test. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.1816 问题: Vim9: another memory leak when using function reference. 解决方案: Temporarily disable the tests. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1817 问题: Vim9: wrong instruction when reusing a local variable spot. 解决方案: Clear a newly allocated local variable. (closes #7080) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1818 问题: SE Linux: deprecation warning for security_context_t. 解决方案: Use "char *" instead. (James McCoy, closes #7093) 文件: src/os_unix.c Patch 8.2.1819 问题: Vim9: Memory leak when using a closure. 解决方案: Compute the minimal refcount in the funcstack. Reenable disabled tests. 文件: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1820 问题: Vim9: crash when error happens in timer callback. 解决方案: Check that current_exception is not NULL. (closes #7100) 文件: src/ex_docmd.c Patch 8.2.1821 问题: Vim9: concatenating to a NULL list doesn't work. 解决方案: Handle a NULL list like an empty list. (closes #7064) 文件: src/list.c, src/testdir/test_vim9_assign.vim Patch 8.2.1822 (after 8.2.1821) 问题: List test doesn't fail. 解决方案: Adjust the test for NULL list handling. 文件: src/testdir/test_listdict.vim Patch 8.2.1823 问题: "gN" does not select the matched string. 解决方案: Move the cursor to the start of the match. 文件: src/search.c, src/testdir/test_gn.vim Patch 8.2.1824 问题: Vim9: variables at the script level escape their scope. 解决方案: When leaving a scope remove variables declared in it. 文件: src/structs.h, src/ex_eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.1825 问题: Vim9: accessing freed memory. 解决方案: Clear sv_name when the variable is deleted. 文件: src/ex_eval.c Patch 8.2.1826 问题: Vim9: cannot use a {} block at script level. 解决方案: Recognize a {} block. 文件: src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_eval.c, src/structs.h, src/proto/ex_eval.pro, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.1827 问题: Filetype detection does not test enough file names. 解决方案: Test more file names. (Adam Stankiewicz, closes #7099) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1828 问题: Build failure without the +eval feature. 解决方案: Add dummies for ex_block and ex_endblock. 文件: src/ex_docmd.c Patch 8.2.1829 问题: Warnings when executing Github actions. 解决方案: Use another method to set environment variables. (Ken Takata, closes #7107) 文件: .github/workflows/ci-windows.yaml Patch 8.2.1830 问题: MS-Windows: Python3 issue with stdin. 解决方案: Check if stdin is readable. (Ken Takata, closes #7106) 文件: src/if_python3.c Patch 8.2.1831 问题: File missing from distribution. 解决方案: Add the github code analyses file. 文件: Filelist Patch 8.2.1832 问题: readdirex() error is displayed as a message. (Yegappan Lakshmanan) 解决方案: Use semsg() instead of smsg(). 文件: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.1833 问题: When reading from stdin dup() is called twice. 解决方案: Remove the dup() in main.c. (Ken Takata, closes #7110) 文件: src/main.c Patch 8.2.1834 问题: PyEval_InitThreads() is deprecated in Python 3.9. 解决方案: Do not call PyEval_InitThreads in Python 3.9 and later. (Ken Takata, closes #7113) Avoid warnings for functions. 文件: src/if_python3.c, src/if_py_both.h Patch 8.2.1835 问题: ":help ??" finds the "!!" tag. 解决方案: Do not translate "?" into ".". (Naruhiko Nishino, closes #7114, closes #7115) 文件: src/help.c, src/testdir/test_help_tagjump.vim Patch 8.2.1836 问题: Autocmd test fails on pacifist systems. 解决方案: Check that /bin/kill exists. (James McCoy, closes #7117) Tune the timing, make the autocmd test run faster. 文件: src/testdir/test_autocmd.vim Patch 8.2.1837 问题: Using "gn" after "gN" does not work. 解决方案: Extend the other end of the Visual area. (closes #7109) 文件: src/search.c, src/testdir/test_gn.vim Patch 8.2.1838 问题: Vim9: cannot insert a comment line in an expression. 解决方案: Skip comment lines at the script level. (closes #7111) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1839 问题: Vim9: memory leaks reported in assign test. 解决方案: Move the failing job_start() call to separate test files, it causes false leak reports. 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_fails.vim, src/testdir/Make_all.mak Patch 8.2.1840 问题: Vim9: error message is not clear about compilation error. 解决方案: Say "compiling" instead of "processing". 文件: src/vim9compile.c, src/message.c, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.1841 问题: Vim9: test for compilation error fails in normal build. 解决方案: Invoke CheckRunVimInTerminal in a separate function. 文件: src/testdir/test_vim9_func.vim Patch 8.2.1842 问题: Crash when USE_FNAME_CASE is defined and using :browse. 解决方案: Don't use read-only memory for ".". (Yegappan Lakshmanan, closes #7123) 文件: src/ex_cmds.c, src/ex_docmd.c, src/testdir/test_edit.vim Patch 8.2.1843 问题: Netbeans: with huge buffer number memory allocation may fail. 解决方案: Check for size overflow. 文件: src/netbeans.c Patch 8.2.1844 问题: Using "q" at the more prompt doesn't stop a long message. 解决方案: Check for "got_int". (closes #7122) 文件: src/message.c, src/testdir/test_messages.vim, src/testdir/dumps/Test_quit_long_message.dump Patch 8.2.1845 问题: Vim9: function defined in a block can't use variables defined in that block. 解决方案: First step: Make a second hashtab that holds all script variables, also block-local ones, with more information. 文件: src/structs.h, src/evalvars.c, src/ex_eval.c, src/vim9script.c, src/proto/vim9script.pro, src/scriptfile.c Patch 8.2.1846 问题: Vim9: variables declared in a local block are not found in when a function is compiled. 解决方案: Look for script variables in sn_all_vars. 文件: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/proto/userfunc.pro, src/ex_eval.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.1847 问题: Vim9: using negative value for unsigned type. 解决方案: Use zero instead of -1. 文件: src/vim9compile.c Patch 8.2.1848 问题: Crash when passing a NULL string or list to popup_settext(). 解决方案: Check for NULL pointers. (closes #7132) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1849 问题: Vim9: garbage collection frees block-local variables. 解决方案: Mark all script variables as used. 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.1850 问题: "vat" does not select tags correctly over line break. 解决方案: Adjust the search pattern. (Aufar Gilbran, closes #7136) 文件: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.1851 问题: Vim9: "!" followed by space incorrectly used. 解决方案: Skip over trailing spaces. (closes #7131) 文件: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1852 问题: map() returning zero for NULL list is unexpected. 解决方案: Return the empty list. (closes #7133) 文件: src/list.c, src/testdir/test_filter_map.vim, src/testdir/test_blob.vim Patch 8.2.1853 问题: "to_f" is recognized at "topleft" modifier. 解决方案: Do not recognize modifier when "_" follows. (closes #7019) 文件: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.1854 问题: Vim9: crash when throwing exception for NULL string. (Dhiraj Mishra) 解决方案: Handle NULL string like empty string. (closes #7139) 文件: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.1855 问题: Vim9: get error message when nothing is wrong. 解决方案: Check called_emsg instead of did_emsg. (closes #7143) 文件: src/vim9compile.c, src/vim9execute.c, src/errors.h Patch 8.2.1856 问题: "2resize" uses size of current window. (Daniel Steinberg) 解决方案: Use size of resized window. (Yasuhiro Matsumoto, closes #7152) 文件: src/ex_docmd.c, src/testdir/test_window_cmd.vim Patch 8.2.1857 问题: Vim9: using job_status() on an unused var gives an error. 解决方案: Return "fail". (closes #7158) 文件: src/job.c, src/testdir/test_vim9_assign.vim Patch 8.2.1858 问题: Vim9: filter functions return number instead of bool. 解决方案: Return v:true instead of one. (closes #7144) 文件: src/popupwin.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.1859 问题: Vim9: crash in unpack assignment. 解决方案: Make sure an error message is turned into an exception. (closes #7159) 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.1860 问题: Vim9: memory leak when throwing empty string. 解决方案: Free the empty string. 文件: src/vim9execute.c Patch 8.2.1861 问题: Vim9: no specific error when parsing lambda fails. 解决方案: Also give syntax errors when not evaluating. (closes #7154) 文件: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1862 问题: vim9: memory leak when compiling lambda fails. 解决方案: Call clear_evalarg(). 文件: src/vim9compile.c Patch 8.2.1863 问题: Json code not sufficiently tested. 解决方案: Add more test cases. (Dominique Pellé, closes #7166) 文件: src/testdir/test_json.vim Patch 8.2.1864 问题: Vim9: no error for wrong list type. 解决方案: Add flag to indicate a constant. (closes #7160) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.1865 问题: Vim9: add() does not check type of argument. 解决方案: Inline the add() call. (closes #7160) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1866 问题: Vim9: appending to pushed blob gives wrong result. 解决方案: Set ga_maxlen when copying a blob. 文件: src/blob.c, src/testdir/test_vim9_func.vim Patch 8.2.1867 问题: Vim9: argument to add() not checked for blob. 解决方案: Add the BLOBAPPEND instruction. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.1868 问题: Vim9: no error for missing space after comma in dict. 解决方案: Check for white space. (closes #6672) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1869 问题: Vim9: memory leak when using add(). 解决方案: Free the added item. 文件: src/vim9execute.c Patch 8.2.1870 问题: Vim9: no need to keep all script variables. 解决方案: Only keep script variables when a function was defined that could use them. Fix freeing static string on exit. 文件: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, src/ex_eval.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.1871 问题: Using %v in 'errorformat' may fail before %Z. 解决方案: Set qf_viscol only when qf_col is set. (closes #7169) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1872 问题: Matchfuzzy() does not prefer sequential matches. 解决方案: Give sequential matches a higher bonus. (Christian Brabandt, closes #7140) 文件: src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1873 问题: Vim9: missing white space when using <f-args>. 解决方案: Add spaces. (Christian J. Robinson) 文件: src/usercmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1874 问题: Can't do something just before leaving Insert mode. 解决方案: Add the InsertLeavePre autocommand event. (closes #7177) 文件: runtime/doc/autocmd.txt, src/edit.c, src/vim.h, src/autocmd.c, src/testdir/test_edit.vim Patch 8.2.1875 问题: Warning when building GTK gui. 解决方案: Add missing function parameter. 文件: src/gui_gtk_f.c Patch 8.2.1876 问题: Vim9: argument types for builtin functions are not checked at compile time. 解决方案: Add an argument type checking mechanism. Implement type checks for one function. 文件: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim, src/testdir/Make_all.mak Patch 8.2.1877 (after 8.2.1876) 问题: Test for function list fails. 解决方案: Move "obsolete" comments one line up. 文件: src/evalfunc.c Patch 8.2.1878 问题: GTK: error for redefining function. (Tony Mechelynck) 解决方案: Remove "gtk_" prefix from local functions and prepend "gui_" to global functions. 文件: src/gui_gtk_f.c, src/gui_gtk_f.h, src/gui_gtk.c, src/gui_gtk_x11.c Patch 8.2.1879 问题: Vim9: argument types of insert() not checked when compiling. 解决方案: Add argument type checks for insert(). 文件: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1880 问题: Vim9: Asan complains about adding zero to NULL. 解决方案: Check for argument count first. 文件: src/vim9compile.c Patch 8.2.1881 问题: Cannot build with GTK3. 解决方案: Adjust form functions. 文件: src/gui_gtk_f.c Patch 8.2.1882 问题: Vim9: v:disallow_let is no longer needed. 解决方案: Remove v:disallow_let. 文件: src/evalvars.c, src/vim.h, src/vim9compile.c Patch 8.2.1883 问题: Compiler warnings when using Python. 解决方案: Adjust PyCFunction to also have the second argument. Use "int" return type for some functions. Insert "(void *)" to get rid of the remaining warnings. 文件: src/if_py_both.h, src/if_python.c, src/if_python3.c Patch 8.2.1884 问题: Compiler warning for uninitialized variable. (John Marriott) 解决方案: Initialize with NULL. 文件: src/vim9compile.c, src/evalfunc.c Patch 8.2.1885 问题: Filetype tests unnecessarily creates swap files. 解决方案: Disable 'swapfile'. (Ken Takata, closes #7183) 文件: src/testdir/test_filetype.vim Patch 8.2.1886 问题: Using ":silent!" in a popup filter has unexpected effect. 解决方案: Use did_emsg instead of called_emsg. (closes #7178) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.1887 问题: Github actions not optimally configured. 解决方案: Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi, closes #7184) 文件: .github/workflows/ci-windows.yaml Patch 8.2.1888 问题: Vim9: Getbufline(-1, 1, '$') gives an error. 解决方案: Return an empty list. (closes #7180) 文件: src/evalbuffer.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1889 问题: Vim9: erroneous error for missing white space after {}. 解决方案: Don't skip over white space after {}. (issue #7167) 文件: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.1890 问题: Vim9: strange error for subtracting from a list. 解决方案: Check getting a number, not a string. (closes #7167) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.1891 问题: Vim9: skipping over expression doesn't handle line breaks. 解决方案: Pass evalarg to skip_expr(). (closes #7157) 文件: src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/ex_docmd.c, src/misc1.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1892 问题: Valgrind warns for using uninitialized access in tests. 解决方案: Fix condition for breaking out of loop. (Dominique Pellé, closes #7187) 文件: src/terminal.c Patch 8.2.1893 问题: Fuzzy matching does not support multiple words. 解决方案: Add support for matching white space separated words. (Yegappan Lakshmanan, closes #7163) 文件: runtime/doc/eval.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1894 问题: Vim9: command modifiers are not supported. 解决方案: Support "silent" and "silent!". 文件: src/structs.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.1895 (after 8.2.1894) 问题: Vim9: silent command modifier test fails. 解决方案: Add missing changes. 文件: src/ex_docmd.c Patch 8.2.1896 问题: Valgrind warns for using uninitialized memory. 解决方案: NUL terminate the SmcOpenConnection() error message. (Dominique Pellé, closes #7194) 文件: src/os_unix.c Patch 8.2.1897 问题: Command modifiers are saved and set inconsistently. 解决方案: Separate parsing and applying command modifiers. Save values in cmdmod_T. 文件: src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_cmds.h, src/vim9compile.c Patch 8.2.1898 问题: Command modifier parsing always uses global cmdmod. 解决方案: Pass in cmdmod_T to use. Rename struct fields consistently. 文件: src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c, src/diff.c, src/change.c, src/cmdhist.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c, src/help.c, src/if_cscope.c, src/indent.c, src/mark.c, src/memline.c, src/message.c, src/option.c, src/ops.c, src/os_unix.c, src/quickfix.c, src/register.c, src/scriptfile.c, src/search.c, src/session.c, src/tag.c, src/terminal.c, src/textformat.c, src/usercmd.c, src/vim9compile.c, src/window.c, src/proto/ex_docmd.pro Patch 8.2.1899 问题: Crash in out-of-memory situation. 解决方案: Bail out if shell_name is NULL. (Dominique Pellé, closes #7196) 文件: src/ex_cmds.c Patch 8.2.1900 问题: Vim9: command modifiers do not work. 解决方案: Make most command modifiers work. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.1901 问题: Variable completion does not work in command line window. 解决方案: Use the "prevwin". (closes #7198) 文件: src/evalvars.c, src/testdir/test_ins_complete.vim Patch 8.2.1902 问题: Default option values are changed when using :badd for an existing buffer. 解决方案: When calling buflist_new() pass a zero line number. (closes #7195) 文件: src/ex_cmds.c, src/testdir/test_buffer.vim Patch 8.2.1903 (after 8.2.1902) 问题: Buffer test fails with normal features. 解决方案: Use 'numberwidth' instead of 'conceallevel' in the test. 文件: src/testdir/test_buffer.vim Patch 8.2.1904 问题: Still using default option values after using ":badd +1". 解决方案: Find a window where options were set. Don't set the window when using ":badd". 文件: src/buffer.c, src/ex_cmds.c, src/vim.h, src/testdir/test_buffer.vim Patch 8.2.1905 问题: The wininfo list may contain stale entries. 解决方案: When closing a window remove any other entry where the window pointer is NULL. 文件: src/buffer.c, src/proto/buffer.pro, src/window.c Patch 8.2.1906 问题: Warning for signed/unsigned. 解决方案: Use size_t instead of int. (Mike Williams) 文件: src/proto/usercmd.pro, src/usercmd.c, src/vim9execute.c Patch 8.2.1907 问题: Complete_info().selected may be wrong. 解决方案: Update cp_number if it was never set. (issue #6945) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.1908 问题: Lua is initialized even when not used. 解决方案: Put lua_init() after check for "eap->skip". (Christian Brabandt, closes #7191). Avoid compiler warnings. 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.1909 问题: Number of status line items is limited to 80. 解决方案: Dynamically allocate the arrays. (Rom Grk, closes #7181) 文件: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, src/proto/buffer.pro, src/screen.c, src/structs.h, src/testdir/test_options.vim, src/testdir/test_statusline.vim, src/vim.h Patch 8.2.1910 问题: Reading past the end of the command line. 解决方案: Check for NUL. (closes #7204) 文件: src/ex_docmd.c, src/testdir/test_edit.vim Patch 8.2.1911 问题: Tiny build fails. 解决方案: Add #ifdef. 文件: src/insexpand.c Patch 8.2.1912 问题: With Python 3.9 some tests fail. 解决方案: Take into account the different error message. (James McCoy, closes #7210) 文件: src/testdir/test_python3.vim Patch 8.2.1913 问题: GTK GUI: rounding for the cell height is too strict. 解决方案: Round up above 15/16 of a pixel. (closes #7203) 文件: src/gui_gtk_x11.c Patch 8.2.1914 问题: Vim9: cannot put line break in expression for '=' register. 解决方案: Pass fgetline to set_expr_line(). (closes #7209) 文件: src/register.c, src/proto/register.pro, src/ex_docmd.c, src/eval.c, src/proto/eval.pro, src/misc2.c, src/testdir/test_vim9_script.vim Patch 8.2.1915 问题: Vim9: error for wrong number of arguments is not useful. 解决方案: Mention whatever we have for the name. (closes #7208) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.1916 问题: Vim9: function call is aborted even when "silent!" is used. 解决方案: Use did_emsg instead of called_emsg. (closes #7213) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1917 问题: No test for improved Man command. 解决方案: Test that shell arguments are properly escaped. 文件: src/testdir/test_man.vim Patch 8.2.1918 问题: Vim9: E1100 mentions :let. 解决方案: Mention "var". (closes #7207) 文件: src/vim9script.c, src/errors.h Patch 8.2.1919 问题: Assert_fails() setting emsg_silent changes normal execution. 解决方案: Use a separate flag in_assert_fails. 文件: src/testing.c, src/globals.h, src/buffer.c, src/change.c, src/fileio.c, src/insexpand.c, src/message.c, src/misc1.c, src/normal.c, src/screen.c, src/term.c, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/gen_opt_test.vim, src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim, src/testdir/test_popup.vim, src/testdir/test_terminal.vim Patch 8.2.1920 问题: Listlbr test fails when run after another test. 解决方案: Add test separately to list of test targets. 文件: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim Patch 8.2.1921 问题: Fuzzy matching does not recognize path separators. 解决方案: Add a bonus for slash and backslash. (Yegappan Lakshmanan, closes #7225) 文件: src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.1922 问题: Win32: scrolling doesn't work properly when part of window is off-screen. 解决方案: Fall back to GDI scrolling if part of the window is off-screen. Handle multi-monitor setup better. (Ken Takata, closes #7219) 文件: src/gui_w32.c Patch 8.2.1923 问题: Vim9: "filter" command modifier doesn't work. 解决方案: Check for space on char before argument. (closes #7216, closes #7222) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1924 问题: Vim9: crash when indexing dict with NULL key. 解决方案: Use empty string instead of NULL. (closes #7229) Make error message more useful for empty string. 文件: src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim Patch 8.2.1925 (after 8.2.1924) 问题: List/dict test fails. 解决方案: Correct expected exception. File: src/testdir/test_listdict.vim Patch 8.2.1926 问题: Cannot use a space in 'spellfile'. (Filipe Brandenburger) 解决方案: Permit using a space. (closes #7230) 文件: src/spell.c, src/testdir/gen_opt_test.vim Patch 8.2.1927 问题: Vim9: get unknown error with an error in a timer function. 解决方案: Use did_emsg instead of called_emsg. (closes #7231) 文件: src/vim9compile.c, src/vim9execute.c Patch 8.2.1928 问题: Vim9: "silent!" not effective when list index is wrong. 解决方案: Ignore list index failure when emsg_silent is set. (closes #7232) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.1929 问题: MS-Windows: problem loading Perl 5.32. 解决方案: Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes #7234) 文件: src/if_perl.xs Patch 8.2.1930 问题: Wrong input if removing shift results in special key code. 解决方案: Handle special key codes. (closes #7189) 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.1931 问题: Vim9: arguments of extend() not checked at compile time. 解决方案: Add argument type checking for extend(). 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.1932 问题: Compiler warnings when building with Athena GUI. 解决方案: Fix function signatures. 文件: src/gui_at_fs.c Patch 8.2.1933 问题: Cannot sort using locale ordering. 解决方案: Add a flag for :sort and sort() to use the locale. (Dominique Pellé, closes #7237) 文件: runtime/doc/change.txt, runtime/doc/eval.txt, src/ex_cmds.c, src/list.c, src/testdir/test_sort.vim Patch 8.2.1934 问题: Vim9: command modifiers in :def function not tested. 解决方案: Add tests. Fix using modifier before filter command. 文件: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1935 (after 8.2.1933) 问题: Sort test fails on Mac. 解决方案: Disable the sort test with locale on Mac. 文件: src/testdir/test_sort.vim Patch 8.2.1936 问题: Session sets the local 'scrolloff' value to the global value. 解决方案: Do not let restoring the global option value change the local value. 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.1937 问题: Vim9: test for confirm modifier fails in some situations. 解决方案: Add a short wait. Handle failure better. 文件: src/testdir/term_util.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.1938 问题: Wiping out a terminal buffer makes some tests fail. 解决方案: Do not wipe out the terminal buffer unless wanted. 文件: src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim Patch 8.2.1939 问题: Invalid memory access in Ex mode with global command. 解决方案: Make sure the cursor is on a valid line. (closes #7238) 文件: src/move.c, src/testdir/test_ex_mode.vim Patch 8.2.1940 问题: Vim9: browse modifier test fails on Mac. 解决方案: Only test when the +browse feature is available. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.1941 问题: Ex mode test fails on MS-Windows with GUI. 解决方案: Skip the test when using gvim. 文件: src/testdir/test_ex_mode.vim Patch 8.2.1942 问题: Insufficient test coverage for the Netbeans interface. 解决方案: Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan, closes #7240) 文件: runtime/doc/netbeans.txt, src/mouse.c, src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim, src/testdir/test_quickfix.vim Patch 8.2.1943 问题: Vim9: wrong error message when colon is missing. 解决方案: Check for a missing colon. (issue #7239) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1944 问题: Netbeans test is flaky. 解决方案: Add a short delay. (Yegappan Lakshmanan, closes #7246) 文件: src/testdir/test_netbeans.vim Patch 8.2.1945 问题: Crash when passing NULL function to reduce(). 解决方案: Check for NULL pointer and give an error. (Dominique Pellé, closes #7243) 文件: src/list.c, src/errors.h, src/testdir/test_listdict.vim Patch 8.2.1946 问题: sort() with NULL string not tested. 解决方案: Add a test. use v:collate. (Dominique Pellé, closes #7247) 文件: src/testdir/test_sort.vim Patch 8.2.1947 问题: Crash when using "zj" without folds. (Sean Dewar) 解决方案: Check for at least one fold. (closes #7245) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1948 问题: GUI: crash when handling message while closing a window. (Srinath Avadhanula) 解决方案: Don't handle message while closing a window. (closes #7250) 文件: src/window.c, src/globals.h, src/getchar.c Patch 8.2.1949 问题: Vim9: using extend() on null dict is silently ignored. 解决方案: Give an error message. Initialize a dict variable with an empty dictionary. (closes #7251) 文件: src/errors.h, src/list.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.1950 问题: Vim9: crash when compiling function fails when getting type. 解决方案: Handle NULL type. (closes #7253) 文件: src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.1951 (after 8.2.1949) 问题: Test for list and dict fails. 解决方案: Adjust for using an empty list/dict for a null one. 文件: src/testdir/test_listdict.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.1952 问题: Vim9: crash when using a NULL dict key. 解决方案: Use a NULL dict key like an empty string. (closes #7249) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.1953 问题: Vim9: extra "unknown" error after other error. 解决方案: Restore did_emsg count after EXEC instruction. (closes #7254) Improve error message from assert_fails() 文件: src/vim9execute.c, src/testing.c, src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim Patch 8.2.1954 问题: Vim9: not all command modifiers are tested. 解决方案: Add tests for "keep" modifiers. Fix that marks are lost even though ":lockmarks" is used. 文件: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.1955 问题: Vim9: not all command modifiers are tested. 解决方案: Add tests for remaining modifiers. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.1956 问题: Vim9: cannot specify argument types for lambda. 解决方案: Allow adding argument types. Check arguments when calling a function reference. 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.1957 问题: Diff and cursorcolumn highlighting don't mix. 解决方案: Fix condition for what attribute to use. (Christian Brabandt, closes #7258, closes #7260) 文件: src/drawline.c, src/testdir/dumps/Test_diff_cuc_01.dump, src/testdir/dumps/Test_diff_cuc_02.dump, src/testdir/dumps/Test_diff_cuc_03.dump, src/testdir/dumps/Test_diff_cuc_04.dump, src/testdir/test_diffmode.vim Patch 8.2.1958 (after 8.2.1956) 问题: Build failure with timers. 解决方案: Add missing change. 文件: src/popupwin.c Patch 8.2.1959 问题: Crash when terminal buffer name is made empty. (Dhiraj Mishra) 解决方案: Fall back to "[No Name]". (closes #7262) 文件: src/buffer.c, src/proto/buffer.pro, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1960 问题: Warning for uninitialized variable. 解决方案: Initialize the variable. 文件: src/evalfunc.c Patch 8.2.1961 问题: Various comments can be improved. 解决方案: Various comment adjustments. 文件: src/dict.c, src/structs.h, src/time.c, src/testdir/shared.vim, src/testdir/test_netbeans.vim, src/gui_motif.c Patch 8.2.1962 问题: Netbeans may access freed memory. 解决方案: Check the buffer pointer is still valid. Add a test. (Yegappan Lakshmanan, closes #7248) 文件: src/netbeans.c, src/testdir/test_netbeans.vim Patch 8.2.1963 问题: Crash when using a popup window with "latin1" encoding. 解决方案: Don't use ScreenLinesUC when enc_utf8 is false. (closes #7241) 文件: src/screen.c, src/terminal.c, src/testdir/test_popupwin.vim Patch 8.2.1964 问题: Not all ConTeXt files are recognized. 解决方案: Add two patterns. (closes #7263) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.1965 问题: Vim9: tests fail without the channel feature. 解决方案: Check if the channel feature is present. (Dominique Pellé, closes #7270) 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1966 问题: Popup becomes current window after closing a terminal window. 解决方案: When restoring the window after executing autocommands, check that the window ID is still the same. (Naruhiko Nishino, closes #7272) 文件: src/autocmd.c, src/window.c, src/proto/window.pro, src/structs.h, src/testdir/test_popupwin.vim Patch 8.2.1967 问题: The session file does not restore the alternate file. 解决方案: Add ":balt". Works like ":badd" and also sets the buffer as the alternate file. Use it in the session file. (closes #7269, closes #6714) 文件: runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_docmd.c, src/vim.h, src/ex_cmds.c, src/session.c, src/testdir/test_buffer.vim Patch 8.2.1968 问题: Vim9: has() assumes a feature does not change dynamically. 解决方案: Check whether a feature may change dynamically. (closes #7265) 文件: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_disassemble.vim Patch 8.2.1969 问题: Vim9: map() may change the list or dict item type. 解决方案: Add mapnew(). 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/test_filter_map.vim Patch 8.2.1970 问题: It is easy to make mistakes when cleaning up swap files after the system crashed. 解决方案: Warn for the process still running after recovery. Do not automatically delete a swap file created on another system. (David Fries, closes #7273) 文件: src/memline.c, src/testdir/test_swap.vim Patch 8.2.1971 问题: Memory leak when map() fails. 解决方案: Clear the typval. 文件: src/list.c Patch 8.2.1972 问题: Crash when recreating nested fold. 解决方案: Check for empty growarray. (closes #7278) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.1973 问题: Finding a patch number can be a bit slow. 解决方案: Use binary search. (closes #7279) 文件: src/version.c Patch 8.2.1974 问题: Vim9: test for has('gui_running') fails with VIMDLL. 解决方案: Adjust the #ifdef. (Ken Takata, closes #7276) 文件: src/evalfunc.c Patch 8.2.1975 问题: Win32: memory leak when encoding conversion fails. 解决方案: Free the allocated memory. (Ken Takata, closes #7277) 文件: src/os_win32.c Patch 8.2.1976 问题: Cannot backspace in prompt buffer after using cursor-left. (Maxim Kim) 解决方案: Ignore "arrow_used" in a prompt buffer. (closes #7281) 文件: src/edit.c, src/testdir/test_prompt_buffer.vim Patch 8.2.1977 问题: Vim9: error for using a string in a condition is confusing. 解决方案: Give a more specific error. Also adjust the compile time type checking for || and &&. 文件: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/typval.c, src/errors.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.1978 问题: Making a mapping work in all modes is complicated. 解决方案: Add the <Cmd> special key. (Yegappan Lakshmanan, closes #7282, closes 4784, based on patch by Bjorn Linse) 文件: runtime/doc/autocmd.txt, runtime/doc/eval.txt, runtime/doc/map.txt, src/edit.c, src/errors.h, src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/insexpand.c, src/keymap.h, src/map.c, src/misc2.c, src/normal.c, src/ops.c, src/proto/getchar.pro, src/screen.c, src/terminal.c, src/testdir/test_mapping.vim Patch 8.2.1979 问题: "term_opencmd" option of term_start() is truncated. (Sergey Vlasov) 解决方案: Allocate the buffer to hold the command. (closes #7284) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1980 问题: Vim9: some tests are not done at the script level. 解决方案: Use CheckDefAndScriptSuccess() in more places. Fix uncovered problems. 文件: src/eval.c, src/list.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim Patch 8.2.1981 问题: MinGW: parallel compilation might fail. 解决方案: Add dependencies on $(OUTDIR). (Masamichi Abe, closes #7287) 文件: src/Make_cyg_ming.mak Patch 8.2.1982 问题: Quickfix window not updated when adding invalid entries. 解决方案: Update the quickfix buffer properly. (Yegappan Lakshmanan, closes #7291, closes #7271) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.1983 问题: ml_get error when using <Cmd> to open a terminal. 解决方案: If the window changed reset the incsearch state. (closes #7289) 文件: src/ex_getln.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_from_cmd.dump Patch 8.2.1984 问题: Cannot use :vimgrep in omni completion, causing C completion to fail. 解决方案: Add the EX_LOCK_OK flag to :vimgrep. (closes #7292) 文件: src/ex_cmds.h, src/testdir/test_quickfix.vim Patch 8.2.1985 问题: Crash when closing terminal popup with <Cmd> mapping. 解决方案: Check b_term is not NULL. (closes #7294) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.1986 问题: Expression test is flaky on Appveyor. 解决方案: Temporarily disable the test in MS-Windows. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.1987 问题: MS-Windows: Win32.mak is no longer needed. 解决方案: Do not include Win32.mak. (Jason McHugh, closes #7290) 文件: src/Make_mvc.mak, src/INSTALLpc.txt Patch 8.2.1988 问题: Still in Insert mode when opening terminal popup with a <Cmd> mapping in Insert mode. 解决方案: Exit Insert mode. (closes #7295) 文件: src/edit.c, src/testdir/test_terminal.vim Patch 8.2.1989 问题: Info popup triggers WinEnter and WinLeave autocommands. 解决方案: Suppress autocommands for the info popup. (closes #7296) 文件: src/popupmenu.c, src/testdir/test_popupwin.vim Patch 8.2.1990 问题: Cursor position wrong in terminal popup with finished job. 解决方案: Only add the top and left offset when not done already. (closes #7298) 文件: src/popupwin.c, src/structs.h, src/drawline.c, src/move.c, src/terminal.c, src/testdir/dumps/Test_terminal_popup_m1.dump Patch 8.2.1991 问题: Coverity warns for not using the ga_grow() return value. 解决方案: Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes #7303) 文件: src/getchar.c Patch 8.2.1992 问题: Build fails with small features. 解决方案: Add #ifdef. 文件: src/move.c Patch 8.2.1993 问题: Occasional failure of the netbeans test. 解决方案: Add "silent!". (Yegappan Lakshmanan, closes #7304) 文件: src/testdir/test_netbeans.vim Patch 8.2.1994 (after 8.2.1981) 问题: MS-Windows: MinGW always does a full build. 解决方案: Only check if $OUTDIR exists. (Masamichi Abe, closes #7311) 文件: src/Make_cyg_ming.mak Patch 8.2.1995 问题: The popup menu can cause too much redrawing. 解决方案: Reduce the length of the displayed text. (Yasuhiro Matsumoto, closes #7306) 文件: src/popupmenu.c Patch 8.2.1996 问题: Vim9: invalid error for argument of extend(). 解决方案: Check if the type could match. (closes #7299) 文件: src/evalfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.1997 问题: Window changes when using bufload() while in a terminal popup. 解决方案: When searching for a window by ID also find a popup window. (closes #7307) 文件: src/window.c, src/testdir/test_terminal.vim Patch 8.2.1998 问题: Terminal Cmd test sometimes fails to close popup. 解决方案: Add "term_finish" option. 文件: src/testdir/test_terminal.vim Patch 8.2.1999 问题: Terminal popup test sometimes fails. 解决方案: Wait for the popup to close. 文件: src/testdir/test_terminal.vim Patch 8.2.2000 问题: Vim9: dict.key assignment not implemented yet. 解决方案: Implement dict.key assignment. (closes #7312) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2001 问题: Vim9: :def function does not apply 'maxfuncdepth'. 解决方案: Use 'maxfuncdepth'. (issue #7313) 文件: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.2002 问题: Vim9: lambda argument shadowed by function name. 解决方案: Let function name be shadowed by lambda argument. (closes #7313) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2003 问题: Build error with +conceal but without +popupwin. 解决方案: Add #ifdef. (Tom Ryder, closes #7316) 文件: src/drawline.c Patch 8.2.2004 (after 8.2.2002) 问题: Compiler warning for uninitialized variable. 解决方案: Initialize "ufunc". (John Marriott) 文件: src/vim9compile.c Patch 8.2.2005 问题: Redoing a mapping with <Cmd> doesn't work properly. 解决方案: Fill the redo buffer. Use "<SNR>" instead of a key code. (closes #7282) 文件: src/ops.c, src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.2006 问题: .pbtxt files are not recognized. 解决方案: Recognize .pbtxt as protobuf text buffers. (closes #7326) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2007 问题: Test for insert mode in popup is not reliable. 解决方案: Wait for the popup to disappear. (Ozaki Kiichi, closes #7321) 文件: src/testdir/test_terminal.vim Patch 8.2.2008 问题: MS-Windows GUI: handling channel messages lags. 解决方案: Reduce the wait time from 100 to 10 msec. (closes #7097) 文件: src/gui_w32.c Patch 8.2.2009 问题: MS-Windows: setting $LANG in gvimext only causes problems. 解决方案: Do not set $LANG. (Ken Takata, closes #7325) 文件: src/GvimExt/gvimext.cpp Patch 8.2.2010 问题: Vim9: compiling fails for unreachable return statement. 解决方案: Fix it. (closes #7319) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2011 问题: "syn sync" reports a very large number. 解决方案: Use "at the first line". 文件: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2012 问题: Vim9: confusing error message when using bool wrongly. 解决方案: Mention "Bool" instead of "Special". (closes #7323) 文件: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.2013 问题: Vim9: not skipping white space after unary minus. 解决方案: Skip whitespace. (closes #7324) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2014 问题: Using CTRL-O in a prompt buffer moves cursor to start of the line. 解决方案: Do not move the cursor when restarting edit. (closes #7330) 文件: src/job.c, src/testdir/test_prompt_buffer.vim Patch 8.2.2015 问题: Vim9: literal dict #{} is not like any other language. 解决方案: Support the JavaScript syntax. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/proto/vim9compile.pro, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2016 问题: Swap file test is a little flaky. 解决方案: Don't set a byte to a fixed value, increment it. 文件: src/testdir/test_swap.vim Patch 8.2.2017 (after 8.2.2015) 问题: Missing part of the dict change. 解决方案: Also change the script level dict. 文件: src/dict.c Patch 8.2.2018 问题: Vim9: script variable not found from lambda. 解决方案: In a lambda also check the script hashtab for a variable without a scope. (closes #7329) 文件: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.2019 (after 8.2.2016) 问题: Swap file test fails on MS-Windows. 解决方案: Add four to the process ID. (Ken Takata, closes #7333) 文件: src/testdir/test_swap.vim Patch 8.2.2020 问题: Some compilers do not like the "namespace" argument. 解决方案: Rename to "use_namespace". (closes #7332) 文件: src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.2021 问题: Vim9: get E1099 when autocommand resets did_emsg. 解决方案: Add did_emsg_cumul. (closes #7336) 文件: src/globals.h, src/ex_docmd.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2022 问题: Vim9: star command recognized erroneously. 解决方案: Give an error for missing colon. (issue #7335) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2023 问题: Vim: memory leak when :execute fails. 解决方案: Clear the growarray. 文件: src/vim9execute.c Patch 8.2.2024 问题: Flicker when redrawing a popup with a title and border. 解决方案: Do not redraw the border where the title is displayed. (Naruhiko Nishino, closes #7334) 文件: src/popupwin.c Patch 8.2.2025 问题: Amiga: Not all colors are used on OS4. 解决方案: Adjust the #ifdef to include __amigaos4__. (Ola Söder, closes #7328) 文件: src/term.c Patch 8.2.2026 问题: Coverity warns for possibly using not NUL terminated string. 解决方案: Put a NUL in b0_hname just in case. 文件: src/memline.c Patch 8.2.2027 问题: Coverity warns for uninitialized field. 解决方案: Set "v_lock". 文件: src/list.c Patch 8.2.2028 问题: Coverity warns for using an uninitialized variable. 解决方案: Initialize to NULL. 文件: src/eval.c Patch 8.2.2029 问题: Coverity warns for not checking return value. 解决方案: Check that u_save_cursor() returns OK. 文件: src/ops.c Patch 8.2.2030 问题: Some tests fail on Mac. 解决方案: Avoid Mac test failures. Add additional test for wildmenu. (Yegappan Lakshmanan, closes #7341) 文件: src/testdir/runtest.vim, src/testdir/test_cmdline.vim, src/testdir/test_options.vim, src/testdir/test_popupwin.vim Patch 8.2.2031 问题: Some tests fail when run under valgrind. 解决方案: Avoid timing problems. 文件: src/testdir/test_vim9_func.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_debugger.vim, src/testdir/test_quotestar.vim Patch 8.2.2032 问题: Cabalconfig and cabalproject filetypes not recognized. 解决方案: Detect more cabal files. (Marcin Szamotulski, closes #7339) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2033 问题: Vim9: :def without argument gives compilation error. 解决方案: Add the DEF instruction. (closes #7344) 文件: src/ex_docmd.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2034 问题: Vim9: list unpack in for statement not compiled yet. 解决方案: Compile list unpack. (closes #7345) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/eval.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2035 问题: MS-Windows: some tests may fail. 解决方案: Avoid test failures. (Yegappan Lakshmanan, closes #7346) 文件: src/testdir/test_channel.vim, src/testdir/test_ex_mode.vim, src/testdir/test_functions.vim Patch 8.2.2036 问题: Current buffer is messed up if creating a new buffer for the quickfix window fails. 解决方案: Check that creating the buffer succeeds. (closes #7352) 文件: src/quickfix.c, src/testdir/test_quickfix.vim, src/testdir/dumps/Test_quickfix_window_fails.dump Patch 8.2.2037 问题: Compiler test depends on list of compiler plugins. 解决方案: Compare with the actual list of compiler plugins. 文件: src/testdir/test_compiler.vim Patch 8.2.2038 问题: Compiler test fails on MS-Windows. 解决方案: Sort the found compiler plugin names. 文件: src/testdir/test_compiler.vim Patch 8.2.2039 问题: Viminfo is not written when creating a new file. 解决方案: Set "b_marks_read" in the new buffer. (Christian Brabandt, closes #7350) 文件: src/bufwrite.c, src/testdir/test_viminfo.vim Patch 8.2.2040 问题: Terminal buffer disappears even when 'bufhidden' is "hide". (Sergey Vlasov) 解决方案: Check 'bufhidden' when a terminal buffer becomes hidden. (closes #7358) 文件: src/buffer.c, src/testdir/test_terminal.vim Patch 8.2.2041 问题: Haskell filetype not optimally recognized. 解决方案: Recognize all *.hsc files as Haskell. (Marcin Szamotulski, closes #7354) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2042 问题: Build failure with +profile but without +reltime. 解决方案: Adjust #ifdef. (Christian Brabandt, closes #7361) 文件: src/syntax.c Patch 8.2.2043 问题: GTK3: white border around text stands out. 解决方案: Use current theme color. (closes #7357, issue #349) 文件: src/gui_gtk_x11.c Patch 8.2.2044 问题: MS-Windows: swap file test sometimes fails. 解决方案: Use a more reliable way to change the process ID. When "timeout" fails use "ping" to wait up to ten minutes. (Ken Takata, closes #7365) 文件: .github/workflows/ci-windows.yaml, src/testdir/test_swap.vim Patch 8.2.2045 问题: Highlighting a character too much with incsearch. 解决方案: Check "search_match_endcol". (Christian Brabandt, closes #7360) 文件: src/drawline.c, src/testdir/test_search.vim, src/testdir/dumps/Test_incsearch_newline1.dump, src/testdir/dumps/Test_incsearch_newline2.dump, src/testdir/dumps/Test_incsearch_newline3.dump, src/testdir/dumps/Test_incsearch_newline4.dump, src/testdir/dumps/Test_incsearch_newline5.dump Patch 8.2.2046 问题: Some test failures don't give a clear error. 解决方案: Use assert_match() and assert_fails() instead of assert_true(). (Ken Takata, closes #7368) 文件: src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim Patch 8.2.2047 问题: Amiga: FEAT_ARP defined when it should not. 解决方案: Adjust #ifdef. (Ola Söder, closes #7370) 文件: src/feature.h Patch 8.2.2048 问题: Amiga: obsolete code. 解决方案: Remove the unused lines. (Ola Söder, closes #7373) 文件: src/gui.c Patch 8.2.2049 问题: Amiga: obsolete function. 解决方案: Remove the function. (Ola Söder, closes #7374) 文件: src/memfile.c Patch 8.2.2050 问题: Search test contains unneeded sleeps. 解决方案: Rename the function, remove sleeps. (Christian Brabandt, closes #7369) 文件: src/testdir/test_search.vim Patch 8.2.2051 问题: Vim9: crash when aborting a user function call. 解决方案: Do not use the return value when aborting. (closes #7372) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2052 问题: Vim9: "edit +4 fname" gives an error. (Naruhiko Nishino) 解决方案: Allow using a range in the +cmd argument. (closes #7364) 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2053 问题: Vim9: lambda doesn't accept argument types. 解决方案: Optionally accept argument types at the script level. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2054 问题: Amiga: FEAT_ARP defined when it should not. 解决方案: Adjust "||" to "&&" in #ifdef. (Ola Söder, closes #7375) 文件: src/feature.h Patch 8.2.2055 问题: MS-Windows: two Vim instances may use the same temp file. 解决方案: Use the process ID for the temp name. (Ken Takata, closes #7378) 文件: src/fileio.c Patch 8.2.2056 问题: Configure fails when building with the "implicit-function-declaration" error enabled, specifically on Mac. 解决方案: Declear the functions like in the source code. (suggestion by Clemens Lang, closes #7380) 文件: src/configure.ac, src/auto/configure Patch 8.2.2057 问题: Getting the selection may trigger TextYankPost autocmd. 解决方案: Only trigger the autocommand when yanking in Vim, not for getting the selection. (closes #7367) 文件: src/clipboard.c, src/normal.c, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.2058 问题: Using mkview/loadview changes the jumplist. 解决方案: Use ":keepjumps". Don't let ":badd" or ":balt" change the jumplist. (closes #7371) 文件: src/session.c, src/ex_docmd.c, src/testdir/test_mksession.vim Patch 8.2.2059 问题: Amiga: can't find plugins. 解决方案: Do not use "**" in the pattern. (Ola Söder, closes #7384) 文件: src/main.c Patch 8.2.2060 问题: Check for features implemented with "if". 解决方案: Use the Check commands. (Ken Takata, closes #7383) 文件: src/testdir/test_autocmd.vim, src/testdir/test_compiler.vim, src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, src/testdir/test_expr.vim, src/testdir/test_fold.vim Patch 8.2.2061 问题: Vim9: E1030 error when using empty string for term_sendkeys(). 解决方案: Don't check for an invalid type unless the terminal can't be found. (closes #7382) 文件: src/terminal.c, src/testdir/test_termcodes.vim Patch 8.2.2062 问题: <Cmd> does not handle CTRL-V. 解决方案: Call get_literal() after encountering CTRL-V. (closes #7387) 文件: src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.2063 问题: Vim9: only one level of indexing supported. 解决方案: Handle more than one index in an assignment. 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.2064 问题: terminal: cursor is on while redrawing, causing flicker. 解决方案: Switch the cursor off while redrawing. Always add the top and left offset to the cursor position when not done already. (closes #5943) 文件: src/terminal.c, src/popupwin.c Patch 8.2.2065 问题: Using map() and filter() on a range() is inefficient. 解决方案: Do not materialize the range. (closes #7388) 文件: src/list.c, src/testdir/test_functions.vim Patch 8.2.2066 问题: Vim9: assignment with += doesn't work. 解决方案: Do not see the "+" as an addition operator. 文件: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2067 (after 8.2.2064) 问题: Cursor position in popup terminal is wrong. 解决方案: Don't check the flags. 文件: src/terminal.c, src/testdir/test_popupwin.vim Patch 8.2.2068 问题: Transparent syntax item uses start/end of containing region. 解决方案: Do not change the startpos and endpos of a transparent region to that of its containing region. (Adrian Ghizaru, closes #7349, closes #7391) 文件: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2069 问题: The quickfix window is not updated after setqflist(). 解决方案: Update the quickfix buffer. (Yegappan Lakshmanan, closes #7390, closes #7385) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.2070 问题: Can't get the exit value in VimLeave or VimLeavePre autocommands. 解决方案: Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes #7395) 文件: runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/evalvars.c, src/main.c, src/testdir/test_exit.vim, src/vim.h Patch 8.2.2071 问题: Vim9: list assign doesn't accept an empty remainder list. 解决方案: Recognize list assignment with ";". 文件: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2072 问题: Vim9: list assign not well tested. 解决方案: Test with different destinations. Fix white space error. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2073 问题: Vim9: for with unpack only works for local variables. 解决方案: Recognize different destinations. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2074 问题: Vim9: using :normal from Vim9 script can't handle range. 解决方案: Execute a :normal command in legacy script context. (closes #7401) 文件: src/structs.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2075 问题: Error for const argument to mapnew(). 解决方案: Don't give an error. (closes #7400) 文件: src/list.c, src/testdir/test_filter_map.vim Patch 8.2.2076 问题: MS-Windows console: sometimes drops typed characters. 解决方案: Do not wait longer than 10 msec for input. (issue #7164) 文件: src/os_win32.c Patch 8.2.2077 问题: Build failure with small features. 解决方案: Add #ifdef. 文件: src/structs.h, src/ex_docmd.c Patch 8.2.2078 问题: Illegal memory access when using :print on invalid text. (Dhiraj Mishra) 解决方案: Check for more composing characters than supported. (closes #7399) 文件: src/message.c, src/testdir/test_utf8.vim Patch 8.2.2079 问题: Vim9: cannot put a linebreak before or after "in" of ":for". 解决方案: Skip over linebreak. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2080 问题: Vim9: no proper error message for using s:var in for loop. 解决方案: Give a specific error. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2081 问题: Vim9: cannot handle a linebreak after "=" in assignment. 解决方案: Skip over linebreak. (closes #7407) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2082 问题: Vim9: can still use the deprecated #{} dict syntax. 解决方案: Remove support for #{} in Vim9 script. (closes #7406, closes #7405) 文件: src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim Patch 8.2.2083 问题: Vim9: crash when using ":silent!" and getting member fails. 解决方案: Jump to on_fatal_error. (closes #7412) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2084 问题: CTRL-V U doesn't work to enter a Unicode character when modifyOtherKeys is effective. (Ken Takata) 解决方案: Add a flag to get_literal() for the shift key. (closes #7413) 文件: src/edit.c, src/proto/edit.pro, src/ex_getln.c, src/getchar.c, src/normal.c, src/testdir/test_termcodes.vim Patch 8.2.2085 问题: Qt translation file is recognized as typescript. 解决方案: Check the first line for "<?xml". (closes #7418) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2086 问题: Libvterm tests are only run on Linux. 解决方案: Use static libraries. (Ozaki Kiichi, closes #7419) 文件: .travis.yml, src/Makefile, src/libvterm/Makefile, src/libvterm/t/run-test.pl Patch 8.2.2087 问题: Vim9: memory leak when statement is truncated. 解决方案: Increment the number of local variables. 文件: src/vim9compile.c Patch 8.2.2088 问题: Vim9: script test sometimes fails. 解决方案: Unlet variables. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2089 问题: Libvterm test fails to build on Mac. 解决方案: Adjust configure to remove a space between -L and the path that follows. 文件: src/configure.ac, src/auto/configure Patch 8.2.2090 问题: Vim9: dict does not accept a key in quotes. 解决方案: Recognize a key in single or double quotes. 文件: runtime/doc/vim9.txt, src/dict.c, src/proto/dict.pro, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2091 问题: MS-Windows: build warnings. 解决方案: Add a #pragma to suppress the deprecation warning. (Ken Takata) Avoid using a non-ASCII character. (closes #7421) 文件: src/message.c, src/os_win32.c Patch 8.2.2092 问题: Vim9: unpredictable errors for script tests. 解决方案: Use a different script file name for each run. 文件: src/testdir/vim9.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_quickfix.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2093 问题: Vim9: script test sometimes fails. 解决方案: Do not find a script variable by its typval if the name was cleared. 文件: src/vim9script.c Patch 8.2.2094 问题: When an expression fails getting the next command may be wrong. 解决方案: Do not check for a next command after :eval fails. (closes #7415) 文件: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2095 问题: Vim9: crash when failed dict member is followed by concatenation. 解决方案: Remove the dict from the stack. (closes #7416) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2096 问题: Vim9: command modifiers not restored after assignment. 解决方案: Jump to nextline instead of using continue. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2097 问题: Vim9: using :silent! when calling a function prevents aborting that function. 解决方案: Add emsg_silent_def and did_emsg_def. 文件: src/globals.h, src/message.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2098 问题: Vim9: function argument of sort() and map() not tested. 解决方案: Add a couple of tests. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.2099 问题: Vim9: some checks are not tested. 解决方案: Add a few more tests. Give better error messages. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2100 问题: Insufficient testing for function range and dict. 解决方案: Add a few tests. (Dominique Pellé, closes #7428) 文件: src/testdir/test_functions.vim, src/testdir/test_lambda.vim, src/testdir/test_signals.vim, src/testdir/test_user_func.vim Patch 8.2.2101 问题: Vim9: memory leak when literal dict has an error and when an expression is not complete. 解决方案: Clear the typval and the growarray. 文件: src/dict.c, src/vim9compile.c Patch 8.2.2102 问题: Vim9: not all error messages tested. 解决方案: Add a few test cases. 文件: src/testdir/test_vim9_func.vim Patch 8.2.2103 问题: Vim9: unreachable code. 解决方案: Remove the code to prepend s: to the variable name 文件: src/vim9compile.c Patch 8.2.2104 问题: Build problem with Ruby 2.7. 解决方案: Adjust function declarations. (Ozaki Kiichi, closes #7430) 文件: src/configure.ac, src/auto/configure, src/if_ruby.c Patch 8.2.2105 问题: Sound test is a bit flaky. 解决方案: Use WaitForAssert(). (Dominique Pellé, closes #7429) 文件: src/testdir/test_sound.vim Patch 8.2.2106 问题: TOML files are not recognized. 解决方案: Match *.toml. (issue #7432) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2107 问题: Vim9: some errors not tested. 解决方案: Add tests. Fix getting the right error. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2108 问题: Vim9: no test to check for :let error. 解决方案: Add a test. Rename tests from _let_ to _var_. 文件: src/testdir/test_vim9_assign.vim Patch 8.2.2109 问题: "vim -" does not work well when modifyOtherKeys is enabled and a shell command is executed on startup. 解决方案: Only change modifyOtherKeys when executing a shell command in raw mode. 文件: src/os_unix.c Patch 8.2.2110 问题: Cannot use ":shell" when reading from stdin. (Gary Johnson) 解决方案: Revert patch 8.2.1833. 文件: src/main.c Patch 8.2.2111 问题: GTK: Menu background is the same color as the main window. 解决方案: Fix white space around the text in another way. (closes #7437, closes #7427) 文件: src/gui_gtk_x11.c Patch 8.2.2112 问题: Running tests may leave some files behind. 解决方案: Delete the right files. Fix a few typos. (Dominique Pellé, closes #7436) 文件: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, src/testdir/test_mksession.vim Patch 8.2.2113 问题: MS-Windows GUI: crash after using ":set guifont=" four times. 解决方案: Check for NULL pointer. (Ken Takata, closes #7434) 文件: src/gui_dwrite.cpp, src/testdir/test_gui.vim Patch 8.2.2114 问题: Vim9: unreachable code in assignment. 解决方案: Remove impossible condition and code. 文件: src/vim9compile.c Patch 8.2.2115 问题: Vim9: some errors not tested for; dead code. 解决方案: Add a test. Remove dead code. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2116 问题: MS-Windows GUI: test for 'guifont' is incomplete. 解决方案: Set 'renderoptions'. (Christian Brabandt) 文件: src/testdir/test_gui.vim Patch 8.2.2117 问题: Some functions use any value as a string. 解决方案: Check that the value is a non-empty string. 文件: src/typval.c, src/proto/typval.pro, src/mbyte.c, src/filepath.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2118 问题: Dead code in the job support. (Dominique Pellé) 解决方案: Define USE_ARGV before checking for it. 文件: src/job.c Patch 8.2.2119 问题: GTK3: status line background color is wrong. 解决方案: Don't change the code for earlier GTK3 versions. (closes #7444) 文件: src/gui_gtk_x11.c Patch 8.2.2120 问题: Not all Perl functionality is tested. 解决方案: Add a few more test cases. (Dominique Pellé, closes #7440) 文件: src/testdir/test_perl.vim Patch 8.2.2121 问题: Internal error when using \ze before \zs in a pattern. 解决方案: Check the end is never before the start. (closes #7442) 文件: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.2122 问题: Vim9: crash when sourcing vim9script early. 解决方案: Use set_option_value() instead of setting p_cpo directly. (closes #7441) 文件: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2123 问题: After using a complete popup the buffer is listed. (Boris Staletic) 解决方案: Make the buffer unlisted. 文件: src/popupmenu.c, src/testdir/test_popupwin.vim Patch 8.2.2124 问题: Vim9: a range cannot be computed at runtime. 解决方案: Add the ISN_RANGE instruction. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2125 (after 8.2.2122) 问题: Vim9: leaking memory. 解决方案: Free the saved 'cpo' value. 文件: src/scriptfile.c Patch 8.2.2126 问题: Ruby: missing function prototype. 解决方案: Add the prototype. 文件: src/if_ruby.c Patch 8.2.2127 问题: Vim9: executing user command defined in Vim9 script not tested. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2128 问题: There is no way to do something on CTRL-Z. 解决方案: Add VimSuspend and VimResume autocommand events. (closes #7450) 文件: runtime/doc/autocmd.txt, src/autocmd.c, src/ex_docmd.c, src/normal.c, src/testdir/test_suspend.vim, src/vim.h Patch 8.2.2129 问题: MS-Windows: Checking if a file name is absolute is slow. 解决方案: Do not use mch_FullName(). (closes #7033) 文件: src/os_mswin.c Patch 8.2.2130 问题: Insert mode completion messages end up in message history. 解决方案: Set msg_hist_off. (closes #7452) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.2131 问题: Vim9: crash when lambda uses same var as assignment. 解决方案: Do not let lookup_local change lv_from_outer, make a copy. (closes #7461) 文件: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_func.vim Patch 8.2.2132 问题: Padding not drawn properly for popup window with title. 解决方案: Draw the padding below the title. (closes #7460) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_longtitle_3.dump, src/testdir/dumps/Test_popupwin_longtitle_4.dump Patch 8.2.2133 问题: Vim9: checking for a non-empty string is too strict. 解决方案: Check for any string. (closes #7447) 文件: src/typval.c, src/proto/typval.pro, src/errors.h, src/filepath.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2134 问题: Vim9: get E1099 when autocmd triggered in builtin function. 解决方案: Check that did_emsg increased instead of checking that it changed. (closes #7448) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2135 问题: Vim9: #{ still seen as start of dict in some places. 解决方案: Remove check for { after #. (closes #7456) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2136 问题: Vim9: Using uninitialized variable. 解决方案: Initialize "len" to zero. Clean up fnamemodify(). 文件: src/filepath.c Patch 8.2.2137 问题: Vim9: :echo and :execute give error for empty argument. 解决方案: Ignore an empty argument. (closes #7468) 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2138 问题: Vim9: "exit_cb" causes Vim to exit. 解决方案: Require white space after a command in Vim9 script. (closes #7467) Also fix that Vim9 style heredoc was not always recognized. 文件: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim, src/testdir/test_let.vim Patch 8.2.2139 问题: Vim9: unreachable code in assignment. 解决方案: Don't check "new_local" when "has_index" is set. Add test for wrong type of list index. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2140 问题: Build failure with tiny features. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.2141 问题: A user command with try/catch may not catch an expression error. 解决方案: When an expression fails check for following "|". (closes #7469) 文件: src/eval.c, src/testdir/test_trycatch.vim, src/testdir/test_vimscript.vim Patch 8.2.2142 问题: Memory leak when heredoc is not terminated. 解决方案: Free heredoc_trimmed. 文件: src/userfunc.c Patch 8.2.2143 问题: Vim9: dead code in compiling :unlet. 解决方案: Don't check for "!" a second time. 文件: src/vim9compile.c Patch 8.2.2144 问题: Vim9: some corner cases not tested. 解决方案: Add a few tests. 文件: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2145 问题: Vim9: concatenating lists does not adjust type of result. 解决方案: When list member types differ use "any" member type. (closes #7473) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2146 问题: Vim9: automatic conversion of number to string for dict key. 解决方案: Do not convert number to string. (closes #7474) 文件: src/dict.c, src/testdir/test_vim9_expr.vim Patch 8.2.2147 问题: Quickfix window title not updated in all tab pages. 解决方案: Update the quickfix window title in all tab pages. (Yegappan Lakshmanan, closes #7481, closes #7466) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.2148 问题: Vim9: crash when user command doesn't match. 解决方案: Adjust command index. (closes #7479) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2149 问题: Popupwin test for latin1 sometimes fails. 解决方案: Wait for the script to finish. 文件: src/testdir/test_popupwin.vim Patch 8.2.2150 问题: Github actions CI isn't used for all available platforms. 解决方案: Update the github workflows. (Ozaki Kiichi, closes #7433) 文件: .coveralls.yml, .github/workflows/ci-windows.yaml, .github/workflows/ci.yml, .travis.yml, README.md, ci/build-snd-dummy.sh, ci/setup-xvfb.sh Patch 8.2.2151 问题: $dir not expanded when configure checks for moonjit. 解决方案: Use double quotes instead of single quotes. (closes #7478) 文件: src/configure.ac, src/auto/configure Patch 8.2.2152 问题: screenpos() does not include the WinBar offset. 解决方案: Use W_WINROW() instead of directly using w_window. (closes #7487) 文件: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.2153 问题: Popupwin test for latin1 still fails sometimes. 解决方案: Wait for the "cat" command to finish. 文件: src/testdir/test_popupwin.vim Patch 8.2.2154 问题: Popupwin test for terminal buffer fails sometimes. 解决方案: Wait for the prompt to appear. 文件: src/testdir/test_popupwin.vim Patch 8.2.2155 问题: Warning from Github actions for code analysis. 解决方案: Remove the "git checkout HEAD^2" block. 文件: .github/workflows/codeql-analysis.yml Patch 8.2.2156 问题: Github actions run on pushing a tag. 解决方案: Don't run CI on tag push. Omit coveralls on pull-request. (Ozaki Kiichi, closes #7489) 文件: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml Patch 8.2.2157 问题: Vim9: can delete a Vim9 script variable from a function. 解决方案: Check the variable is defined in Vim9 script. (closes #7483) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2158 问题: CI on cirrus times out, coveralls doesn't always run. 解决方案: Set timeout to 20 minutes. Adjust condition. (closes #7493) 文件: .cirrus.yml, .github/workflows/ci.yml Patch 8.2.2159 问题: Vim9: when declaring a list it is not allocated yet, causing a following extend() to fail. 解决方案: When fetching a variable value for a list or dict that is null allocate the list or dict, so it can be used. (closes #7491) 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2160 问题: Various typos. 解决方案: Fix spelling mistakes. (closes #7494) 文件: src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c, src/ex_cmds.c, src/feature.h, src/getchar.c, src/gui_haiku.cc, src/gui_xmdlg.c, src/help.c, src/if_ole.cpp, src/insexpand.c, src/list.c, src/map.c, src/memline.c, src/normal.c, src/os_win32.c, src/search.c, src/term.c, src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim, src/testdir/test_increment.vim, src/testdir/test_menu.vim, src/testdir/test_netbeans.vim, src/testdir/test_popupwin.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_sort.vim, src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, src/testdir/test_vartabs.vim, src/testdir/test_vimscript.vim, src/textprop.c, src/userfunc.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.2161 问题: Arguments -T and -x not tested yet. 解决方案: Add a test. (Dominique Pellé, closes #7490) 文件: src/testdir/test_startup.vim Patch 8.2.2162 问题: Vim9: Cannot load or store autoload variables. 解决方案: Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485) 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2163 问题: Crash when discarded exception is the current exception. 解决方案: Compare the exception with current_exception. (closes #7499) 文件: src/ex_eval.c Patch 8.2.2164 问题: Vim9: autoload function doesn't work in script that starts with an upper case letter. 解决方案: Check for the autoload character. (closes #7502) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2165 问题: Vim9: assignment to dict member does not work. 解决方案: Fix recognizing dict member. (closes #7484) 文件: src/ex_docmd.c, src/eval.c, src/evalvars.c, src/vim.h Patch 8.2.2166 问题: Auto format doesn't work when deleting text. 解决方案: Make "x" trigger auto format. (closes #7504) 文件: src/ops.c, src/testdir/test_textformat.vim Patch 8.2.2167 问题: Vim9: assign test fails. (Elimar Riesebieter) 解决方案: Adjust the test for dict assignment. 文件: src/testdir/test_vim9_assign.vim Patch 8.2.2168 问题: Vim9: error for assigning to dict of dict. 解决方案: Remember the destination type. (closes #7506) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2169 问题: Vim9: test leaves file behind. 解决方案: Rename script files. (Dominique Pellé, closes #7511) Use try/finally. 文件: src/testdir/test_vim9_script.vim, src/testdir/vim9.vim Patch 8.2.2170 问题: Vim9: a global function defined in a :def function fails if it uses the context. 解决方案: Create a partial to store the closure context. (see #7410) 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2171 问题: Valgrind warning for using uninitialized value. 解决方案: Do not use "startp" or "endp" unless there is a match. 文件: src/regexp_nfa.c Patch 8.2.2172 问题: Vim9: number of arguments is not always checked. (Yegappan Lakshmanan) 解决方案: Check number of arguments when calling function by name. 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2173 问题: Vim9: get internal error when assigning to undefined variable. 解决方案: Add error message. (closes #7475) 文件: src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2174 问题: Mac version doesn't specify the CPU architecture. 解决方案: Add "arm64" or "x86_64". (Yee Cheng Chin, closes #7519) 文件: src/version.c Patch 8.2.2175 问题: Github actions: clang-11 handling suboptimal. 解决方案: Separate step of installing clang-11. Get ubuntu release name dynamically. (Ozaki Kiichi, closes #7514) 文件: .github/workflows/ci.yml Patch 8.2.2176 问题: Crash with a sequence of fold commands. 解决方案: Bail out when there are no folds at all. Add a test (Dominique Pellé) (closes #7515) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.2177 问题: Pattern "^" does not match if the first character in the line is combining. (Rene Kita) 解决方案: Do accept a match at the start of the line. (closes #6963) 文件: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2178 问题: Python 3: non-utf8 character cannot be handled. 解决方案: Change the string decode. (Björn Linse, closes #1053) 文件: src/if_py_both.h, src/if_python.c, src/if_python3.c, src/testdir/test_python3.vim, src/testdir/test_python2.vim Patch 8.2.2179 问题: Vim9: crash when indexing a dict with a number. 解决方案: Add ISN_STOREINDEX. (closes #7513) 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/errors.h, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2180 问题: Vim9: test for error after error is flaky. 解决方案: Wait for job to finish instead of a fixed delay. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2181 问题: Valgrind warnings for using uninitialized value. 解决方案: Do not use "start" or "end" unless there is a match. 文件: src/regexp_nfa.c, src/regexp_bt.c Patch 8.2.2182 问题: Vim9: value of 'magic' is still relevant. 解决方案: Always behave like 'magic' is on in Vim9 script (closes #7509) 文件: src/option.c, src/proto/option.pro, src/arglist.c, src/buffer.c, src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/normal.c, src/search.c, src/tag.c, src/structs.h, src/globals.h, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2183 问题: Vim9: value of 'edcompatible' and 'gdefault' are used. 解决方案: Ignore these deprecated options in Vim9 script. (closes #7508) 文件: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2184 问题: Vim9: no error when using "2" for a line number. 解决方案: Give an error message if the line number is invalid. (closes #7492) 文件: src/typval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_cursor_func.vim Patch 8.2.2185 问题: BufUnload is not triggered for the quickfix dummy buffer. 解决方案: Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517) Fix white space around "=". 文件: src/quickfix.c, src/testdir/test_autocmd.vim Patch 8.2.2186 问题: Vim9: error when using 'opfunc'. 解决方案: Do not expect a return value from 'opfunc'. (closes #7510) 文件: src/eval.c, src/proto/eval.pro, src/ops.c, src/testdir/test_vim9_func.vim Patch 8.2.2187 问题: Python 3 test fails sometimes. (Christian Brabandt) 解决方案: Accept two SystemError messages. 文件: src/testdir/test_python3.vim Patch 8.2.2188 问题: Vim9: crash when calling global function from :def function. 解决方案: Set the outer context. Define the partial for the context on the original function. Use a refcount to keep track of which ufunc is using a dfunc. (closes #7525) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/proto/vim9execute.pro, src/userfunc.c, src/proto/userfunc.pro, src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.2189 问题: Cannot repeat a command that uses the small delete register. 解决方案: Store the register name instead of the contents. (Christian Brabandt, closes #7527) 文件: src/ops.c, src/register.c, src/testdir/test_registers.vim Patch 8.2.2190 问题: Vim9: crash when compiled with EXITFREE. 解决方案: Check that df_ufunc is not NULL. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2191 问题: Vim9: using wrong name with lambda in nested function. 解决方案: Copy the lambda name earlier. (closes #7525) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2192 问题: Codecov on github actions fails. 解决方案: Revert to codecov script. (Ozaki Kiichi, closes #7529) 文件: Filelist, .github/workflows/ci.yml Patch 8.2.2193 问题: Vim9: can change constant in :def function. 解决方案: Check if a variable is locked. (issue #7526) 文件: src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2194 问题: Vim9: cannot use :const or :final at the script level. 解决方案: Support using :const and :final. (closes #7526) 文件: src/vim.h, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2195 问题: Failing tests for :const. 解决方案: Add missing check for ASSIGN_FINAL. 文件: src/eval.c, src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.2196 问题: :version output has extra spaces in compile and link command. 解决方案: Adjust QUOTESED. (closes #7505) 文件: src/configure.ac, src/auto/configure Patch 8.2.2197 问题: Assert arguments order reversed. 解决方案: Swap the arguments. (Christian Brabandt, closes #7531) 文件: src/testdir/test_registers.vim Patch 8.2.2198 问题: ml_get error when resizing window and using text property. 解决方案: Validate botline of the right window. (closes #7528) 文件: src/move.c, src/proto/move.pro, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.2199 问题: First write after setting 'eol' does not have NL added. (Tomáš Janoušek) 解决方案: Only use b_no_eol_lnum when doing a binary write. (closes #7535) 文件: src/bufwrite.c, src/testdir/test_writefile.vim Patch 8.2.2200 问题: Vim9: lambda without white space around -> is confusing. 解决方案: Require white space in a :def function. (issue #7503) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2201 问题: Write file test fails on MS-Windows. 解决方案: Force edit after setting 'fileformat'. 文件: src/testdir/test_writefile.vim Patch 8.2.2202 问题: Write file test still fails on MS-Windows. 解决方案: Set fileformat with the :edit command 文件: src/testdir/test_writefile.vim Patch 8.2.2203 问题: Moodle gift files are not recognized. 解决方案: Add a filetype pattern. (Delim Temizer) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2204 问题: Vim9: using -> both for method and lambda is confusing. 解决方案: Use => for lambda in :def function. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2205 问题: Vim9: memory leak when parsing lambda fails. 解决方案: Clear growarrays. 文件: src/userfunc.c Patch 8.2.2206 问题: :exe command line completion only works for first argument. 解决方案: Skip over text if more is following. (closes #7546) 文件: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.2207 问题: Illegal memory access if popup menu items are changed while the menu is visible. (Tomáš Janoušek) 解决方案: Make a copy of the text. (closes #7537) 文件: src/popupmenu.c, src/testdir/test_popup.vim, src/testdir/dumps/Test_popup_command_04.dump, src/testdir/dumps/Test_popup_command_05.dump Patch 8.2.2208 问题: Vim9: after reloading a script variable index may be invalid. 解决方案: When the sequence number doesn't match give an error for using a script-local variable from a compiled function. (closes #7547) 文件: src/vim9.h, src/structs.h, src/errors.h, src/vim9compile.c, src/vim9execute.c, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2209 问题: Vim9: return type of => lambda not parsed. 解决方案: Parse and use the return type. 文件: src/vim9compile.c, src/userfunc.c, src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2210 问题: Vim9: allocating a type to set TTFLAG_BOOL_OK. 解决方案: Add t_number_bool. 文件: src/globals.h, src/vim9type.c, src/vim9compile.c Patch 8.2.2211 问题: MS-Windows: can't load Python dll if not in the path. 解决方案: Use the InstallPath registry entry. (Kelvin Lee, closes #7540) 文件: src/if_python3.c Patch 8.2.2212 问题: Vim9: lambda with => does not work at the script level. 解决方案: Make it work. 文件: src/eval.c, src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2213 问题: Checking white space around -> is not backwards compatible. 解决方案: Only check white space around =>. 文件: src/userfunc.c Patch 8.2.2214 问题: ":e#" does not give a warning for missing white space. 解决方案: Adjust the check for white space. (closes #7545) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2215 问题: Vim9: =expr not recognized in global command. 解决方案: Skip over pattern. (issue #7541) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2216 问题: Vim9: range with missing colon can be hard to spot. 解决方案: Include the start of the range in the error. (closes #7543) 文件: src/errors.h, src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2217 问题: Vim9: command modifiers not restored in catch block. 解决方案: Restore command modifiers. (closes #7542) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2218 问题: Vim9: failure if passing more arguments to a lambda than expected. 解决方案: Only put expected arguments on the stack. (closes #7548) 文件: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2219 问题: Vim9: method call with expression not supported. 解决方案: Implement expr->(expr)(). 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2220 问题: Vim9: memory leak when parsing nested parenthesis. 解决方案: Clear newargs. 文件: src/userfunc.c Patch 8.2.2221 问题: If <Down> is mapped on the command line 'wildchar' is inserted. 解决方案: Set KeyTyped when using 'wildchar'. (closes #7552) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.2222 问题: Vim9: cannot keep script variables when reloading. 解决方案: Add the "noclear" argument to :vim9script. 文件: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, src/vim9script.c, src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2223 问题: Vim9: Reloading marks a :def function as deleted. 解决方案: Clear the function contents but keep the index. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2224 问题: Vim9: crash if script reloaded with different variable type. 解决方案: Check the type when accessing the variable. 文件: src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim Patch 8.2.2225 问题: Vim9: error when using :import in legacy script twice. 解决方案: Make it possible to redefine an import when reloading. 文件: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, src/evalvars.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2226 问题: Vim9: script test fails. 解决方案: Add missing change. 文件: src/scriptfile.c Patch 8.2.2227 问题: Vim9: recognizing lambda is too complicated. 解决方案: Call compile_lambda() and check for NOTDONE. 文件: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2228 问题: Vim9: cannot use ":e #" because # starts a comment. 解决方案: Support using %% instead of #. 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2229 问题: build failure without the +eval feature. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.2230 问题: Vim9: insert completion runs into error. 解决方案: Insert colon before range. (closes #7556) 文件: src/insexpand.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2231 问题: When "--remote file" is used "file" is not reloaded. 解决方案: When a :drop command is used for a file that is already displayed in a window and it has not been changed, check if it needs to be reloaded. (closes #7560) 文件: src/ex_cmds.c, src/testdir/test_clientserver.vim Patch 8.2.2232 问题: Compiler error for falling through into next case. 解决方案: Move FALLTHROUGH below the #endif 文件: src/ex_docmd.c Patch 8.2.2233 问题: Cannot convert a byte index into a character index. 解决方案: Add charidx(). (Yegappan Lakshmanan, closes #7561) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.2234 问题: Command line wildmenu test often fails with Unix GUI. 解决方案: Skip the test where it is expected to fail. 文件: src/testdir/test_cmdline.vim Patch 8.2.2235 问题: Build failure with some Ruby versions. 解决方案: Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes #7564) 文件: ci/config.mk.clang.sed, src/if_ruby.c Patch 8.2.2236 问题: 'scroll' option can change when setting the statusline or tabline but the option context is not updated. 解决方案: Update the script context when the scroll option is changed as a side effect. (Christian Brabandt, closes #7533) 文件: runtime/doc/options.txt, src/scriptfile.c, src/testdir/test_options.vim, src/vim.h, src/window.c Patch 8.2.2237 问题: CI on Mac fails in sed command. 解决方案: Set LC_ALL to "C". (Ozaki Kiichi, closes #7565) 文件: .github/workflows/ci.yml Patch 8.2.2238 问题: Vim9: cannot load a Vim9 script without the +eval feature. 解决方案: Support Vim9 script syntax without the +eval feature. 文件: src/ex_docmd.c, src/vim9script.c, src/globals.h, src/main.c, src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c, src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h Patch 8.2.2239 问题: Vim9: concatenating lines with backslash is inconvenient. 解决方案: Support concatenating lines starting with '|', useful for :autocmd, :command, etc. (closes #6702) 文件: runtime/doc/vim9.txt, src/scriptfile.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/structs.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2240 问题: Clientserver test fails if full path is used. 解决方案: Ignore the path preceding the file name. 文件: src/testdir/test_clientserver.vim Patch 8.2.2241 问题: Build with Ruby and clang may fail. 解决方案: Adjust configure and sed script. (Ozaki Kiichi, closes #7566) 文件: ci/config.mk.clang.sed, src/auto/configure, src/configure.ac Patch 8.2.2242 问题: Vim9: line continuation with bar does not work at script level. 解决方案: Check for Vim9 script. 文件: src/structs.h, src/ex_docmd.c, src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2243 问题: Crash when popup mask contains zeroes. 解决方案: Check boundaries properly. (closes #7569) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2244 问题: Crash when making the window width of the not-current window negative. 解决方案: Make sure the window width is not negative. (closes #7568) 文件: src/window.c, src/testdir/test_window_cmd.vim Patch 8.2.2245 问题: Vim9: return value of winrestcmd() cannot be executed. 解决方案: Put colons before each range. (closes #7571) 文件: src/evalwindow.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2246 问题: Cursor keys not recognized at the hit-Enter prompt after executing an external command. 解决方案: Change the codes for the extra cursor keys. (closes #7562) Tune the delays to avoid test flakiness. 文件: runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim Patch 8.2.2247 问题: VMS: various smaller problems. 解决方案: Fix VMS building and other problems. (Zoltan Arpadffy) 文件: src/term.c, src/gui_gtk_vms.h, src/os_vms_conf.h, src/gui_x11.c, src/Make_vms.mms, src/macros.h, src/gui.h, src/os_unix.h Patch 8.2.2248 问题: ASAN error on exit with GUI. 解决方案: Check the window still has lines. (Christian Brabandt, closes #7573) 文件: src/term.c Patch 8.2.2249 问题: Termcodes test is flaky when used over ssh with X forwarding. 解决方案: Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576, closes #7563) 文件: src/testdir/test_termcodes.vim Patch 8.2.2250 问题: Vim9: sublist is ambiguous. 解决方案: Require white space around the colon. (closes #7409) 文件: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2251 问题: Test failures in legacy script. 解决方案: Check for Vim9 script. 文件: src/eval.c Patch 8.2.2252 问题: Vim9: crash when using lambda without return type in dict. 解决方案: Without a return type use t_unknown. (closes #7587) 文件: src/vim9type.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2253 问题: Vim9: expr test fails. 解决方案: Add missing assignment. 文件: src/userfunc.c Patch 8.2.2254 问题: Vim9: bool option type is number. 解决方案: Have get_option_value() return a different value for bool and number options. (closes #7583) 文件: src/option.h, src/option.c, src/proto/option.pro, src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/spell.c, src/typval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2255 (after 8.2.2254) 问题: Tcl test fails. 解决方案: Change option handling. 文件: src/if_tcl.c Patch 8.2.2256 问题: Vim9: cannot use function( after line break in :def function. 解决方案: Check for "(" after "function". (closes #7581) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2257 问题: Vim9: using -> for lambda is ambiguous. 解决方案: Stop supporting ->, must use =>. 文件: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2258 问题: Not all OCaml related files are detected. 解决方案: Update OCaml file type detection. (Markus Mottl, closes #7590) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2259 问题: Test_Executable() fails when using chroot. 解决方案: Ignore the difference between "sbin" and "bin". 文件: src/testdir/test_functions.vim Patch 8.2.2260 问题: Window resize test fails in very wide terminal. 解决方案: Resize using the 'columns' option. (Vladimir Lomov, closes #7592) 文件: src/testdir/test_window_cmd.vim Patch 8.2.2261 问题: Vim9: boolean option gets string type. 解决方案: Check for VAR_BOOL. (closes #7588) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2262 问题: Vim9: converting bool to string prefixes v:. 解决方案: Do not use the v: prefix. 文件: src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2263 问题: Vim9: compilation error with try-catch in skipped block. 解决方案: Do not bail out when generate_instr() returns NULL. (closes #7584) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2264 问题: Vim9: no error for mismatched :endfunc or :enddef. 解决方案: Check for the mismatch. (issue #7582) 文件: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2265 问题: Error message for missing endfunc/enddef is last line. 解决方案: Report the line where the function starts. (closes #7582) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2266 问题: Vim9: it can be hard to see where white space is missing. 解决方案: Mention the text where the error was seen. (closes #7580) 文件: src/errors.h, src/eval.c, src/evalvars.c, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2267 问题: Vim9: cannot use unlet for a dict member. 解决方案: Pass GLV_NO_DECL to get_lval(). (closes #7585) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2268 问题: Vim9: list unpack seen as declaration. 解决方案: Check for "var". (closes #7594) 文件: src/vim9compile.c, src/evalvars.c, src/eval.c, src/vim.h, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2269 问题: Not all :hardcopy code covered by tests. 解决方案: Test more combinations. (Dominique Pellé, closes #7595) 文件: src/testdir/test_hardcopy.vim Patch 8.2.2270 问题: Warning for size_t to int conversion. (Randall W. Morris) 解决方案: Add a type cast. 文件: src/vim9execute.c Patch 8.2.2271 问题: ml_get error when changing hidden buffer in Python. 解决方案: Block updating folds. (closes #7598) 文件: src/evalbuffer.c, src/testdir/test_python3.vim Patch 8.2.2272 问题: Vim9: extend() can violate the type of a variable. 解决方案: Add the type to the dictionary or list and check items against it. (closes #7593) 文件: src/structs.h, src/evalvars.c, src/dict.c, src/list.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2273 问题: Build failure. 解决方案: Add missing changes to header file. 文件: src/vim9.h Patch 8.2.2274 问题: badge for Travis is outdated. 解决方案: Update badge for move from travis-ci.org to travis-ci.com. 文件: README.md Patch 8.2.2275 问题: CTRL-C not recognized in Mintty. 解决方案: Recognize the modifyOtherKeys code ending in "u". (Christian Brabandt, closes #7575) 文件: src/ui.c Patch 8.2.2276 问题: List of distributed files is outdated. 解决方案: Update the file list. Minor comment updates. 文件: Filelist, src/clipboard.c, src/fileio.c, src/option.c, src/screen.c, src/testdir/test_signals.vim, src/testdir/Make_vms.mms Patch 8.2.2277 问题: Missing backslash. 解决方案: Add backslash. 文件: Filelist Patch 8.2.2278 问题: Falling back to old regexp engine can some patterns. 解决方案: Do not fall back once [[:lower:]] or [[:upper:]] is used. (Christian Brabandt, closes #7572) 文件: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2279 问题: Vim9: memory leak with catch in skipped block. 解决方案: Free the pattern if not used. 文件: src/vim9compile.c Patch 8.2.2280 问题: Fuzzy matching doesn't give access to the scores. 解决方案: Return the scores with a third list. (Yegappan Lakshmanan, closes #7596) 文件: runtime/doc/eval.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.2281 问题: Vim9: compiled "wincmd" cannot be followed by bar. 解决方案: Check for bar after "wincmd". (closes #7599) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2282 问题: Length check mismatch with argument of strncmp(). (Christian Brabandt) 解决方案: Adjust length check. 文件: src/ui.c Patch 8.2.2283 问题: Vim9: crash when lambda has fewer arguments than expected. 解决方案: Don't check arguments when already failed. (closes #7606) 文件: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.2284 问题: Vim9: cannot set an option to a boolean value. 解决方案: Check for VAR_BOOL. (closes #7603) 文件: src/evalvars.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2285 问题: Vim9: cannot set an option to a false. 解决方案: For VAR_BOOL use string "0". (closes #7603) 文件: src/evalvars.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2286 问题: Sort test fails when locale is Canadian English. (Neil H Watson) 解决方案: Expect a different sort order. (closes #7609) 文件: src/testdir/test_sort.vim Patch 8.2.2287 问题: Sort test fails when locale is French Canadian. 解决方案: Expect a different sort order. (Dominique Pellé, closes #7609) 文件: src/testdir/test_sort.vim Patch 8.2.2288 问题: Vim9: line break and comment not always skipped. 解决方案: Skip over white space and then line break more consistently. (closes #7610) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2289 问题: Vim9: 'cpo' can become empty. 解决方案: Use empty_option instead of an empty string. Update quickfix buffer after restoring 'cpo'. (closes #7608) 文件: src/evalfunc.c, src/syntax.c, src/eval.c, src/quickfix.c, src/evalbuffer.c, src/ex_eval.c, src/gui_motif.c, src/map.c, src/testdir/test_quickfix.vim Patch 8.2.2290 问题: Vim9: unlet of global variable cannot be compiled. 解决方案: Skip over variables that might be defined later. Give an error if a subscript is found. (closes #7585) 文件: src/eval.c, src/vim9compile.c, src/vim.h, src/testdir/test_vim9_assign.vim Patch 8.2.2291 问题: Vim9: cannot use "null" for v:null. 解决方案: Support "null" like "true" and "false". (closes #7495) 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim Patch 8.2.2292 问题: Vim: expr test fails. 解决方案: Add missing part of "null" support. 文件: src/eval.c Patch 8.2.2293 问题: Build failure with Motif. (Tony Mechelynck) 解决方案: Use empty_option instead of empty_options. 文件: src/gui_motif.c Patch 8.2.2294 问题: VMS: a few remaining problems. 解决方案: Add VMS specific changes. Add Lua support. (Zoltan Arpadffy) 文件: src/fileio.c, src/os_vms_conf.h, src/Make_vms.mms, src/macros.h, src/os_vms.c, src/vim9execute.c, src/gui_xmebw.c, src/os_unix.h Patch 8.2.2295 问题: Incsearch does not detect empty pattern properly. 解决方案: Return magic state when skipping over a pattern. (Christian Brabandt, closes #7612, closes #6420) 文件: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/option.c, src/tag.c, src/proto/regexp.pro, src/regexp.c, src/search.c, src/structs.h, src/vim9compile.c, src/testdir/dumps/Test_incsearch_sub_01.dump, src/testdir/dumps/Test_incsearch_sub_02.dump, src/testdir/test_search.vim Patch 8.2.2296 问题: Cannot use CTRL-N and CTRL-P in a popup menu. 解决方案: Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614) 文件: runtime/doc/popup.txt, src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2297 问题: Vim9: cannot set 'number' to a boolean value. 解决方案: Use tv_get_bool(). (closes #7615) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2298 问题: Vim9: comment right after "(" of function not recognized. 解决方案: Do not skip over white space before calling get_function_args(). (closes #7613) 文件: src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.2299 问题: Vim9: invalid memory access making error message flaky. 解决方案: Do not check cmd_argt for CMD_USER. (issue #7467) 文件: src/ex_docmd.c, src/vim9execute.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2300 问题: Vim9: wrong order on type stack when using dict. 解决方案: Generate constants before a dict. (closes #7619) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2301 问题: Vim9: cannot unlet a dict or list item. 解决方案: Add ISN_UNLETINDEX. Refactor assignment code to use for unlet. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2302 问题: Vim9: using an option value may use uninitialized memory. 解决方案: Clear v_lock. (closes #7620) 文件: src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2303 问题: Vim9: backtick expansion doesn't work for :foldopen. 解决方案: Do recognize backtick expansion. (closes #7621) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2304 问题: Vim9: no test for unletting an imported variable. 解决方案: Add a test. Fix line number in error. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2305 问题: Vim9: "++var" and "--var" are silently accepted. 解决方案: Give an error message. 文件: src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2306 问题: Vim9: when using function reference type is not checked. 解决方案: When using a function reference lookup the type and check the argument types. (issue #7629) 文件: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/vim9execute.c, src/evalvars.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2307 问题: A shell command in the vimrc causes terminal output. 解决方案: Do not call starttermcap() after a shell command if the termcap wasn't active before. 文件: src/ex_cmds.c Patch 8.2.2308 问题: Vim9: no error when assigning lambda to funcref without return value. 解决方案: Default return value to "any". (closes #7629) 文件: src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2309 问题: 0o777 not recognized as octal. 解决方案: Use vim_isodigit(). (Ken Takata, closes #7633, closes #7631) 文件: src/charset.c, src/testdir/test_eval_stuff.vim Patch 8.2.2310 问题: Vim9: winsaveview() return type is too generic. 解决方案: use dict<number> instead of dict<any>. (closes #7626) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2311 问题: Vim9: cannot assign to a variable that shadows a command modifier. 解决方案: Check for assignment after possible command modifier. (closes #7632) 文件: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2312 问题: Build failure with Ruby 3.0 and 32 bits. 解决方案: Add #ifdef. (closes #7638) 文件: src/if_ruby.c Patch 8.2.2313 问题: Vim9: using uninitialized field when parsing range. ":silent!" not respected when parsing range fails. 解决方案: Initialize ea.skip. On pattern failure handle it like an error. (closes #7636) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2314 问题: Vim9: returning zero takes two instructions. 解决方案: Add ISN_RETURN_ZERO. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2315 问题: Vim9: "enddef" as dict key misinterpreted as function end. 解决方案: Check for following colon. (closes #7640) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2316 问题: Vim9: cannot list a lambda function. 解决方案: Support the <lambda>9 notation, like :disassemble. (closes #7634) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2317 问题: Vim9: command modifier before list unpack doesn't work. 解决方案: Only recognize "[" directly after the name. (closes #7641) 文件: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2318 问题: Vim9: string and list index work differently. 解决方案: Make string index work like list index. (closes #7643) 文件: src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/list.c, src/proto/vim9execute.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2319 问题: "exptype_T" can be read as "expected type". 解决方案: Rename to "exprtype_T", expression type. 文件: src/eval.c, src/typval.c, src/proto/typval.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, src/structs.h, src/vim9.h Patch 8.2.2320 问题: Vim9: no error for comparing bool with string. 解决方案: Check for wrong types when comparing. (closes #7639) 文件: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.2321 问题: Vim9: cannot nest closures. 解决方案: Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER. (closes #7150, closes #7635) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2322 问题: Vim9: closure nested limiting to one level. 解决方案: Add outer_T. Also make STOREOUTER work. 文件: src/vim9execute.c, src/vim9.h, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2323 问题: Vim9: error when inferring type from empty dict/list. 解决方案: When the member is t_unknown use t_any. (closes #7009) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2324 问题: Not easy to get mark en cursor position by character count. 解决方案: Add functions that use character index. (Yegappan Lakshmanan, closes #7648) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c, src/evalfunc.c, src/proto/eval.pro, src/tag.c, src/testdir/test_cursor_func.vim, src/typval.c Patch 8.2.2325 问题: Vim9: crash if map() changes the item type. 解决方案: Check that the item type is still OK. (closes #7652) Fix problem with mapnew() on range list. 文件: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2326 问题: Build error with +eval feature but without +spell. 解决方案: Adjust #ifdef. (John Marriott) 文件: src/mbyte.c Patch 8.2.2327 问题: Debugging code included. 解决方案: Remove the debugging code. 文件: src/vim9execute.c Patch 8.2.2328 问题: Some test files may not be deleted. 解决方案: Add a delete() call, correct name. (Dominique Pellé, closes #7654) 文件: src/testdir/test_clientserver.vim, src/testdir/test_vim9_script.vim Patch 8.2.2329 问题: Not all ways Vim can be started are tested. 解决方案: Add a test for different program names. (Dominique Pellé, closes #7651) 文件: src/testdir/test_startup.vim Patch 8.2.2330 问题: Vim9: crash when using :trow in a not executed block. 解决方案: Don't generate the instruction when skipping. (closes #7659) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2331 问题: Vim9: wrong error when modifying dict declared with :final. 解决方案: Do not check for writable variable when an index follows. (closes #7657) 文件: src/vim9compile.c, src/structs.h, src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2332 问题: Vim9: missing :endif not reported when using :windo. 解决方案: Pass a getline function to do_cmdline(). (closes #7650) 文件: src/vim9execute.c, src/structs.h, src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2333 问题: Vim9: warning for uninitialized variable. (Tony Mechelynck) 解决方案: Initialize "res". 文件: src/vim9execute.c Patch 8.2.2334 问题: Pascal-like filetypes not always detected. 解决方案: Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns, closes #7662) 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.2335 问题: Vim9: "silent return" does not restore command modifiers. 解决方案: Restore command modifiers before returning. (closes #7649) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2336 问题: Vim9: it is not possible to extend a dictionary with different item types. 解决方案: Add extendnew(). (closes #7666) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2337 问题: Configure test for GTK only says "no". (Harm te Hennepe) 解决方案: Hint that a -def package is needed. (closes #5229) 文件: src/configure.ac, src/auto/configure Patch 8.2.2338 问题: Vim9: no error if using job_info() result wrongly. 解决方案: Adjust return type on number of arguments. (closes #7667) 文件: src/evalfunc.c, src/globals.h, src/testdir/test_vim9_builtin.vim Patch 8.2.2339 问题: Cannot get the type of a value as a string. 解决方案: Add typename(). 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vimscript.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2340 问题: win_execute() unexpectedly returns number zero when failing. 解决方案: Return an empty string. (closes #7665) 文件: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_execute_func.vim Patch 8.2.2341 问题: Expression command line completion shows variables but not functions after "g:". (Gary Johnson) 解决方案: Prefix "g:" when needed to a global function. 文件: src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_cmdline.vim Patch 8.2.2342 问题: "char" functions return the wrong column in Insert mode when the cursor is beyond the end of the line. 解决方案: Compute the column correctly. (Yegappan Lakshmanan, closes #7669) 文件: src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim Patch 8.2.2343 问题: Vim9: return type of readfile() is any. 解决方案: Add readblob() so that readfile() can be expected to always return a list of strings. (closes #7671) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2344 问题: Using inclusive index for slice is not always desired. 解决方案: Add the slice() method, which has an exclusive index. (closes #7408) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/proto/vim9execute.pro, src/list.c, src/proto/list.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2345 问题: No focus events in a terminal. 解决方案: Add the t_fd and t_fe termcap entries and implement detecting focus events. (Hayaki Saito, Magnus Groß, closes #7673, closes #609, closes #5526) 文件: runtime/doc/term.txt, src/optiondefs.h, src/term.c, src/term.h Patch 8.2.2346 问题: Codecov reports every little coverage drop. 解决方案: Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki Kiichi, closes #7678) 文件: .appveyor.yml, appveyor.yml, .codecov.yml Patch 8.2.2347 问题: Build failure without GUI. 解决方案: Add #ifdef. 文件: src/term.c Patch 8.2.2348 (after 8.2.2345) 问题: No check for modified files after focus gained. (Mathias Stearn) 解决方案: Call ui_focus_change(). 文件: src/term.c, src/ui.c Patch 8.2.2349 问题: Vim9: cannot handle line break after parenthesis at line end. 解决方案: Skip over line break. (closes #7677) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2350 问题: Using "void" for no reason. 解决方案: Use "char *". 文件: src/ex_docmd.c Patch 8.2.2351 问题: Vim9: error message for "throw" in function that was called with "silent!". 解决方案: Do not throw the exception when not caught or displayed. (closes #7672) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2352 问题: If the focus lost/gained escape sequence is received twice it is not ignored. (Christ van Willegen) 解决方案: Adjust the logic to ignore the escape code. 文件: src/term.c Patch 8.2.2353 问题: Sparql files are not detected. 解决方案: Add the sparql filetype. (closes #7679) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2354 问题: Crash with a weird combination of autocommands. 解决方案: Increment b_nwindows when needed. (closes #7674) 文件: src/ex_cmds.c, src/buffer.c, src/proto/buffer.pro, src/testdir/test_autocmd.vim Patch 8.2.2355 问题: Stray test failure on Appveyor. 解决方案: Finish insert command. 文件: src/testdir/test_autocmd.vim Patch 8.2.2356 问题: Vim9: ":put =expr" does not handle a list properly. 解决方案: Use the same logic as eval_to_string_eap(). (closes #7684) 文件: src/vim9execute.c, src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2357 问题: Vim9: crash when parsing function return type fails. 解决方案: Bail out and set return type to "unknown". (closes #7685) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2358 问题: Wrong #ifdef for use_xterm_like_mouse(). 解决方案: Use FEAT_MOUSE_XTERM. 文件: src/term.c Patch 8.2.2359 问题: Strange test failure with MS-Windows. 解决方案: Skip the system() call for now. 文件: src/testdir/test_autocmd.vim Patch 8.2.2360 问题: Test leaves file behind. 解决方案: Delete the right file. (Dominique Pellé, closes #7689) 文件: src/testdir/test_filetype.vim Patch 8.2.2361 问题: Vim9: no highlight for "s///gc" when using 'opfunc'. 解决方案: Reset 'lazyredraw' temporarily. (closes #7687) 文件: src/ex_cmds.c Patch 8.2.2362 问题: Vim9: check of builtin function argument type is incomplete. 解决方案: Use need_type() instead of check_arg_type(). 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/evalfunc.c, src/proto/evalfunc.pro, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2363 问题: curpos() does not accept a string argument as before. solution: Make a string argument work again. (Yegappan Lakshmanan, closes #7690) 文件: src/evalfunc.c, src/testdir/test_cursor_func.vim Patch 8.2.2364 问题: Vim9: line break in lambda accesses freed memory. 解决方案: Make a copy of the return type. (closes #7664) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2365 问题: Vim9: no check for map() changing item type at script level. 解决方案: Check the new value type. 文件: src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2366 问题: When using ":sleep" the cursor is always displayed. 解决方案: Do not display the cursor when using ":sleep!". (Jeremy Lerner, closes #7688) 文件: runtime/doc/index.txt, runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c, src/normal.c, src/proto/ex_docmd.pro, src/term.c, src/testdir/Make_all.mak, src/testdir/test_sleep.vim Patch 8.2.2367 问题: Test failures on some less often used systems. 解决方案: Adjust printf formats and types. (James McCoy, closes #7691) 文件: src/errors.h, src/evalfunc.c, src/list.c, src/vim9execute.c Patch 8.2.2368 问题: Insufficient tests for setting options. 解决方案: Add a few tests. (Dominique Pellé, closes #7695) 文件: src/testdir/test_options.vim Patch 8.2.2369 问题: Vim9: functions return true/false but can't be used as bool. 解决方案: Add ret_number_bool(). (closes #7693) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2370 问题: Vim9: command fails in catch block. 解决方案: Reset force_abort and need_rethrow. (closes #7692) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2371 问题: Vim9: crash when using types in :for with unpack. 解决方案: Check for skip_var_list() failing. Pass include_type to skip_var_one(). Skip type when compiling. (closes #7694) 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2372 (after 8.2.2371) 问题: Confusing error message for wrong :let command. 解决方案: Only check for type in Vim9 script. 文件: src/evalvars.c Patch 8.2.2373 问题: Vim9: list assignment only accepts a number index. 解决方案: Accept "any" and do a runtime type check. (closes #7694) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2374 问题: Accessing uninitialized memory in test_undo. 解决方案: Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé, closes #7697) 文件: src/edit.c Patch 8.2.2375 问题: Test for RGB color skipped in the terminal. 解决方案: Run the GUI if possible. 文件: src/testdir/test_highlight.vim Patch 8.2.2376 问题: Vim9: crash when dividing by zero in compiled code using constants. 解决方案: Call num_divide() and num_modulus(). (closes #7704) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2377 问题: Vim9: crash when using a range after another expression. 解决方案: Set the variable type to number. Fix using :put with a range and the "=" register. (closes #7706) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2378 问题: Vim9: no error message for dividing by zero. 解决方案: Give an error message. (issue #7704) 文件: src/errors.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2379 问题: Finding spell suggestions twice if 'spellsuggest' contains number. 解决方案: Only do internal suggestions once. (closes #7713) 文件: src/spellsuggest.c Patch 8.2.2380 问题: Vim9: occasional crash when using try/catch and a timer. 解决方案: Save and restore "need_rethrow" when invoking a timer callback. (closes #7708) 文件: src/time.c Patch 8.2.2381 问题: Vim9: divide by zero does not abort expression execution. 解决方案: Use a "failed" flag. (issue #7704) 文件: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/vim9compile.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2382 (after 8.2.2381) 问题: Build failure. 解决方案: Add missing changes. 文件: src/vim9execute.c Patch 8.2.2383 问题: Focus escape sequences are not named in ":set termcap" output. 解决方案: Add the names to the list. (closes #7718) 文件: src/misc2.c Patch 8.2.2384 问题: Turtle filetype not recognized. 解决方案: Add a rule to detect turtle files. (closes #7722) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2385 问题: "gj" and "gk" do not work correctly when inside a fold. 解决方案: Move check for folding. (closes #7724, closes #4095) 文件: src/normal.c, src/testdir/test_fold.vim Patch 8.2.2386 问题: Vim9: crash when using ":silent! put". 解决方案: When ignoring an error for ":silent!" rewind the stack and skip ahead to restoring the cmdmod. (closes #7717) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2387 问题: Runtime type check does not mention argument index. 解决方案: Add ct_arg_idx. (closes #7720) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2388 问题: No easy way to get the maximum or minimum number value. 解决方案: Add v:numbermax and v:numbermin. 文件: src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim, runtime/doc/eval.txt Patch 8.2.2389 问题: Test failure on a few systems. 解决方案: Avoid that "char" value is negative. 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h Patch 8.2.2390 问题: Vim9: using positive offset is unexpected. 解决方案: Use int8_T instead of char. (James McCoy) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c Patch 8.2.2391 问题: Memory leak when creating a global function with closure. 解决方案: Create a separate partial for every instantiated function. 文件: src/userfunc.c, src/vim9execute.c Patch 8.2.2392 问题: Fennel filetype not recognized. 解决方案: Detect with pattern and hashbang. (Chinmay Dalal, closes #7729) 文件: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.2393 问题: Vim9: error message when script line starts with "[{". 解决方案: Do not give an error for checking for end of list. 文件: src/dict.c, src/testdir/test_vim9_script.vim Patch 8.2.2394 问题: Vim9: min() and max() return type is "any". 解决方案: Use return type "number". (closes #7728) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2395 问题: Vim9: error for wrong type may report wrong line number. 解决方案: Save and restore the line number when evaluating the expression. (closes #7727) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2396 问题: Vim9: no white space allowed before "->". 解决方案: Allow for white space. (closes #7725) 文件: src/ex_docmd.c, src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2397 问题: Vim9: "%%" not seen as alternate file name for commands with a buffer name argument. 解决方案: Recognize "%%" like "#". (closes #7732) 文件: src/buffer.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2398 (after 8.2.2396) 问题: Method test fails. 解决方案: Adjust test for allowed white space. 文件: src/testdir/test_method.vim Patch 8.2.2399 (after 8.2.2385) 问题: Fold test fails in wide terminal. 解决方案: Adjust the test. (Dominique Pelle, closes #7731, closes #7739) 文件: src/testdir/test_fold.vim Patch 8.2.2400 问题: Vim9: compiled functions are not profiled. 解决方案: Add initial changes to profile compiled functions. Fix that a script-local function was hard to debug. 文件: runtime/doc/repeat.txt, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/proto/vim9compile.pro, src/structs.h, src/vim9type.c, src/debugger.c, src/ex_cmds.h, src/ex_docmd.c, src/profiler.c, src/proto/profiler.pro, src/testdir/test_vim9_disassemble.vim, src/testdir/test_profile.vim Patch 8.2.2401 问题: Build fails without +profiling feature. 解决方案: Add #ifdefs. 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/structs.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.2402 问题: Some filetypes not detected. 解决方案: Detect Ruby Signature and Puppet related files. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2403 问题: Vim9: profiling if/elseif/endif not correct. 解决方案: Add profile instructions. Fix that "elseif" was wrong. 文件: src/vim9compile.c, src/testdir/test_profile.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2404 问题: Vim9: profiling try/catch not correct. 解决方案: Add profile instructions. Fix that "entry" did not rethrow an exception. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim Patch 8.2.2405 问题: Vim9: no need to allow white space before "(" for :def. 解决方案: Give an error for stray white space. (issue #7734) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2406 问题: Vim9: profiled :def function leaks memory. 解决方案: Delete the profiled instructions. 文件: src/vim9compile.c Patch 8.2.2407 问题: Old jumplist code is never used. 解决方案: Delete the dead code. (Yegappan Lakshmanan, closes #7740) 文件: src/mark.c Patch 8.2.2408 问题: MinGW: "--preprocessor" flag no longer supported. 解决方案: Remove the flag, use the defaults. (Christopher Wellons, closes #7741) 文件: src/GvimExt/Make_ming.mak, src/Make_cyg_ming.mak Patch 8.2.2409 问题: Vim9: profiling only works for one function. 解决方案: Select the right instructions when calling and returning. (closes #7743) 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_profile.vim Patch 8.2.2410 问题: Build failure without the +profiling feature. 解决方案: Add dummy argument to macro. 文件: src/vim9.h Patch 8.2.2411 问题: Profile test fails on MS-Windows. 解决方案: Do the profiling in a separate Vim command. 文件: src/testdir/test_profile.vim Patch 8.2.2412 问题: Not all fields in "cstack" are initialized which might cause a crash. 解决方案: Use CLEAR_FIELD(). 文件: src/ex_docmd.c Patch 8.2.2413 问题: Crash when using :all while using a cmdline window. (Zdenek Dohnal) 解决方案: Disallow :all from the cmdline window. 文件: src/arglist.c, src/ex_getln.c, src/testdir/test_arglist.vim Patch 8.2.2414 问题: Using freed memory when closing the cmdline window. 解决方案: Check the window is still valid. 文件: src/ex_getln.c Patch 8.2.2415 问题: No way to check for the cmdwin feature, cmdline_hist is now always enabled. 解决方案: Add has('cmdwin') support. Skip arglist test on Windows temporarily. 文件: runtime/doc/cmdline.txt, src/evalfunc.c, src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tabpage.vim, src/testdir/test_termcodes.vim, src/testdir/test_window_cmd.vim Patch 8.2.2416 问题: May get stuck in command line window state. 解决方案: Reset "cmdwin_type" when editing buffer fails. Make arglist test pass on MS-Windows. 文件: src/ex_getln.c, src/testdir/test_arglist.vim Patch 8.2.2417 问题: Condition stack values may be used when not set. 解决方案: Clear cs_script_var_len and cs_block_id just in case they get used later. (issue #7733) 文件: src/ex_eval.c Patch 8.2.2418 问题: Color not changed if ModeMsg highlight is set in InsertEnter autocmd event. (Paul Swanson) 解决方案: Call highlight_changed() after triggering InsertEnter. (closes #7751) 文件: src/edit.c Patch 8.2.2419 问题: Autocmd test was failing on MS-Windows with GUI. 解决方案: Remove stray feedkeys(). 文件: src/testdir/test_autocmd.vim Patch 8.2.2420 问题: Too many problems with using all autocommand events. 解决方案: Disallow defining an autocommand for all events. 文件: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim, src/testdir/test_quickfix.vim, src/testdir/test_window_cmd.vim Patch 8.2.2421 问题: Double free when using autocommand with "argdel". (Houyunsong) 解决方案: Add the arglist_locked flag. 文件: src/arglist.c, src/testdir/test_autocmd.vim Patch 8.2.2422 问题: Crash when deleting with line number out of range. (Houyunsong) 解决方案: Avoid using a negative line number. 文件: src/normal.c, src/testdir/test_ex_mode.vim Patch 8.2.2423 (after 8.2.2422) 问题: Missing error message. 解决方案: Add the error message. 文件: src/errors.h Patch 8.2.2424 问题: Some tests are known to cause an error with ASAN. 解决方案: Add CheckNotAsan. 文件: src/testdir/check.vim, src/testdir/test_ins_complete.vim, src/testdir/test_memory_usage.vim, src/testdir/test_ex_mode.vim Patch 8.2.2425 问题: Cursor on invalid line with range and :substitute. 解决方案: Do not move the cursor when skipping commands. (closes #3434) 文件: src/ex_cmds.c, src/testdir/test_eval_stuff.vim Patch 8.2.2426 问题: Allowing 'completefunc' to switch windows causes trouble. 解决方案: use "textwinlock" instead of "textlock". 文件: src/insexpand.c, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.2427 问题: Can still switch windows for 'completefunc'. 解决方案: Also disallow switching windows for other completions. 文件: src/insexpand.c, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim Patch 8.2.2428 问题: FocusGained does not work when 'ttymouse' is empty. 解决方案: Don't use the short mouse code if there is a longer matching code. (closes #7755) Add a test. 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.2429 问题: :goto does not work correctly with text properties. (Sam McCall) 解决方案: Add a test. (Andrew Radev) Also use the text property size when computing the remaining offset. (closes #5930) 文件: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.2430 问题: :vimgrep expands wildcards twice. 解决方案: Do not expand wildcards a second time. 文件: src/quickfix.c, src/arglist.c, src/testdir/test_quickfix.vim Patch 8.2.2431 问题: Warning for -fno-strength-reduce with Clang 11. 解决方案: Adjust check for clang version number. 文件: src/configure.ac, src/auto/configure Patch 8.2.2432 问题: Libvterm tests are executed even when libtool doesn't work. 解决方案: Only run libvterm tests if /usr/bin/gcc exists. 文件: src/Makefile Patch 8.2.2433 问题: Opening cmdline window gives error in BufLeave autocommand. 解决方案: Reset cmdwin_type when triggering the autocommand. 文件: src/ex_cmds.c, src/testdir/test_cmdline.vim Patch 8.2.2434 问题: Vim9: no error when compiling str2nr() with a number. 解决方案: Add argument type checks. (closes #7759) 文件: src/evalfunc.c, src/typval.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.2435 问题: setline() gives an error for some types. 解决方案: Allow any type, convert each item to a string. 文件: runtime/doc/eval.txt, src/evalbuffer.c, src/typval.c, src/proto/typval.pro, src/debugger.c, src/vim9execute.c, src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2436 问题: Vim9 script test is a bit flaky. 解决方案: Wait longer for exit callback. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2437 问题: Deprecation warnings with default configuration. 解决方案: Add -Wno-deprecated-declarations. 文件: src/configure.ac, src/auto/configure Patch 8.2.2438 问题: Out of bounds compiler warning. 解决方案: Increase the size of uf_name. 文件: src/structs.h Patch 8.2.2439 问题: Not easy to figure out what packages to get when installing Vim on a new Ubuntu system. 解决方案: Mention explicit commands that are easy to follow. 文件: src/INSTALL Patch 8.2.2440 问题: Documentation based on patches is outdated. 解决方案: Add changes to documentation in a patch. 文件: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, runtime/doc/change.txt, runtime/doc/channel.txt, runtime/doc/cmdline.txt, runtime/doc/debugger.txt, runtime/doc/develop.txt, runtime/doc/digraph.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/filetype.txt, runtime/doc/ft_sql.txt, runtime/doc/gui.txt, runtime/doc/gui_w32.txt, runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt, runtime/doc/helphelp.txt, runtime/doc/help.txt, runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, runtime/doc/if_tcl.txt, runtime/doc/indent.txt, runtime/doc/index.txt, runtime/doc/insert.txt, runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt, runtime/doc/message.txt, runtime/doc/mlang.txt, runtime/doc/motion.txt, runtime/doc/netbeans.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_haiku.txt, runtime/doc/os_unix.txt, runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt, runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt, runtime/doc/pi_tar.txt, runtime/doc/pi_vimball.txt, runtime/doc/pi_zip.txt, runtime/doc/popup.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/quickref.txt, runtime/doc/recover.txt, runtime/doc/remote.txt, runtime/doc/repeat.txt, runtime/doc/rileft.txt, runtime/doc/sign.txt, runtime/doc/spell.txt, runtime/doc/starting.txt, runtime/doc/syntax.txt, runtime/doc/tabpage.txt, runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, runtime/doc/term.txt, runtime/doc/testing.txt, runtime/doc/textprop.txt, runtime/doc/tips.txt, runtime/doc/todo.txt, runtime/doc/uganda.txt, runtime/doc/undo.txt, runtime/doc/usr_02.txt, runtime/doc/usr_03.txt, runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, runtime/doc/usr_07.txt, runtime/doc/usr_08.txt, runtime/doc/usr_10.txt, runtime/doc/usr_11.txt, runtime/doc/usr_20.txt, runtime/doc/usr_22.txt, runtime/doc/usr_23.txt, runtime/doc/usr_24.txt, runtime/doc/usr_27.txt, runtime/doc/usr_30.txt, runtime/doc/usr_31.txt, runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, runtime/doc/usr_42.txt, runtime/doc/usr_44.txt, runtime/doc/usr_45.txt, runtime/doc/usr_46.txt, runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt, runtime/doc/various.txt, runtime/doc/version5.txt, runtime/doc/version6.txt, runtime/doc/version7.txt, runtime/doc/version8.txt, runtime/doc/vi_diff.txt, runtime/doc/vim9.txt, runtime/doc/visual.txt, runtime/doc/windows.txt Patch 8.2.2441 问题: Vim9: extend() does not give an error for a type mismatch. 解决方案: Check the type of the second argument. (closes #7760) 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2442 问题: Automatic GUI selection does not check for GTK 3. 解决方案: Make SKIP_GTK3 empty for automatic GUI support. Set SKIP_GTK3 to YES when checking for GTK2. 文件: src/configure.ac, src/auto/configure Patch 8.2.2443 问题: Vim9: no compile time error for wrong str2float argument. 解决方案: Check argument type. (closes #7759) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2444 问题: Vim9: compile error with combination of operator and list. 解决方案: Generate constants before parsing a list or dict. (closes #7757) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2445 问题: Vim9: no proper error for lambda missing return type. 解决方案: Check for this error. (closes #7758) 文件: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2446 问题: Setting 'term' empty has different error if compiled with GUI. 解决方案: Insert "else". (closes #7766) 文件: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.2447 问题: 'foldlevel' not applied to folds restored from session. 解决方案: Set 'foldlevel' after creating the folds. (closes #7767) 文件: src/fold.c, src/testdir/test_mksession.vim Patch 8.2.2448 问题: Compilation error with Ruby 3.0. 解决方案: Adjust #ifdefs and declaration. (Ken Takata, closes #7761) 文件: src/if_ruby.c Patch 8.2.2449 问题: Vim9: flatten() always changes the list type. 解决方案: Disallow using flatten() and add flattennew(). 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/list.c, src/proto/list.pro, src/errors.h, src/vim9compile.c, src/testdir/test_flatten.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2450 问题: MS-Windows: ADS was not preserved if 'backupcopy' is "yes". 解决方案: Copy ADS before truncating the file. (Ken Takata, closes #7762) 文件: src/bufwrite.c Patch 8.2.2451 问题: MS-Windows: Extended Attributes not preserved. 解决方案: Preserve Extended Attributes when writing a file. (Ken Takata, closes #7765) 文件: src/os_win32.c Patch 8.2.2452 问题: No completion for the 'filetype' option. 解决方案: Add filetype completion. (Martin Tournoij, closes #7747) 文件: src/option.c, src/optiondefs.h, src/testdir/test_options.vim Patch 8.2.2453 问题: Vim9: a variable name with "->" in the next line doesn't work. 解决方案: Recognize a variable name by itself. (closes #7770) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2454 问题: Leading space can not be made visible. 解决方案: Add "lead:" to 'listchars'. (closes #7772) 文件: runtime/doc/options.txt, src/drawline.c, src/globals.h, src/message.c, src/screen.c, src/testdir/test_listchars.vim Patch 8.2.2455 问题: Vim9: key type that can be used for literal dict and indexing is inconsistent. 解决方案: Allow using number and bool as key for a literal dict. (#7771) 文件: runtime/doc/vim9.txt, src/dict.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.2456 问题: Coverity warning for strcpy() into fixed size array. 解决方案: Add a type cast to hopefully silence the bogus warning. 文件: src/userfunc.c Patch 8.2.2457 问题: Coverity warns for memory leak. 解决方案: Free memory when out of memory. 文件: src/if_cscope.c Patch 8.2.2458 问题: Coverity warns for :retab using freed memory. 解决方案: Use the updated line pointer when moving text properties. 文件: src/indent.c Patch 8.2.2459 问题: Coverity reports dead code. 解决方案: Remove the dead code. 文件: src/eval.c Patch 8.2.2460 问题: Coverity warns for unused value. 解决方案: Do not reset the return value to OK. 文件: src/vim9compile.c Patch 8.2.2461 问题: Coverity warns for unchecked return value. 解决方案: Add "(void)" to avoid the warning. 文件: src/vim9execute.c Patch 8.2.2462 问题: Coverity warns for not checking for fseek() error. 解决方案: Give an error message if fseek() fails. 文件: src/spellfile.c Patch 8.2.2463 问题: Using :arglocal in an autocommand may use freed memory. (houyunsong) 解决方案: Check if the arglist is locked. 文件: src/arglist.c, src/testdir/test_autocmd.vim Patch 8.2.2464 问题: Using freed memory if window closed in autocommand. (houyunsong) 解决方案: Check the window still exists. 文件: src/ex_cmds.c, src/testdir/test_autocmd.vim Patch 8.2.2465 问题: Using freed memory in :psearch. (houyunsong) 解决方案: Check the current window is still valid. Fix flaky test. 文件: src/search.c, src/testdir/test_autocmd.vim Patch 8.2.2466 问题: Max() and min() can give many error messages. 解决方案: Bail out at the first error. (closes #1039, closes #7778) 文件: src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.2467 问题: Script generated by :mkview changes alternate file. 解决方案: Only write :balt in the session file. (Harish Rajagopal, closes #7779) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2468 问题: Not easy to get the full command name from a shortened one. 解决方案: Add fullcommand(). (Martin Tournoij, closes #7777) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/ex_docmd.c, src/proto/evalfunc.pro, src/testdir/test_cmdline.vim Patch 8.2.2469 问题: Confusing error if :winsize has a wrong argument. 解决方案: Quote the argument in the error. (closes #2523) 文件: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.2470 问题: Popup_getoptions() does not get textprop from other tab. 解决方案: use win_valid_any_tab(). (closes #7786) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2471 问题: Popup_setoptions() does not set textprop in other tab. 解决方案: use win_valid_any_tab(). (closes #7788) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2472 问题: Crash when using command line window in an autocommand. (houyunsong) 解决方案: Save and restore au_new_curbuf. 文件: src/ex_cmds.c, src/testdir/test_autocmd.vim Patch 8.2.2473 问题: Crash when leaving command line window triggers autocommand. (houyunsong) 解决方案: Make sure not to close the current window or buffer. 文件: src/ex_getln.c, src/testdir/test_autocmd.vim Patch 8.2.2474 问题: Using freed memory when window is closed by autocommand. (houyunsong) 解决方案: Check the window pointer is still valid. 文件: src/quickfix.c, src/testdir/test_autocmd.vim Patch 8.2.2475 问题: Autocommand tests hangs on MS-Windows. 解决方案: Skip one test. 文件: src/testdir/test_autocmd.vim Patch 8.2.2476 问题: Using freed memory when using an autocommand to split a window while a buffer is being closed. 解决方案: Disallow splitting when the buffer has b_locked_split set. 文件: src/buffer.c, src/window.c, src/errors.h, src/structs.h, src/popupwin.c, src/testdir/test_autocmd.vim Patch 8.2.2477 问题: Autocommand tests hang on MS-Windows. 解决方案: Skip a couple of tests. Fix file name. 文件: src/testdir/test_autocmd.vim Patch 8.2.2478 问题: MS-Windows: backup files for plugins are loaded. 解决方案: Do not use the alternate file name for files ending in "~". 文件: src/filepath.c Patch 8.2.2479 问题: set/getbufline test fails without the job feature. 解决方案: Check whether the job feature is supported. (Dominique Pellé, closes #7790) 文件: src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2480 问题: Vim9: some errors for white space do not show context. 解决方案: Include the text at the error. 文件: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c Patch 8.2.2481 问题: Vim9: confusing error when variable arguments have a default value. 解决方案: Give a specific error message. (closes #7793) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2482 问题: Build error. 解决方案: Add new error message. 文件: src/errors.h Patch 8.2.2483 问题: Vim9: type error for malformed expression. 解决方案: Check for end of command before checking type. (closes #7795) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2484 问题: Vim9: Cannot use a comment starting with #{ after an expression. 解决方案: Remove the check for "{" since #{ dictionaries are not supported. 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2485 问题: When sourcing a script again the script version isn't reset. 解决方案: Set sn_version to one when sourcing a script again. Clear sn_save_cpo properly. (closes #7608) 文件: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2486 问题: Vim9: some errors for white space do not show context. 解决方案: Include the text at the error. 文件: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, src/vim9compile.c, src/vim9type.c Patch 8.2.2487 问题: Terminal shows garbage after double-wide character with a combining character. (Kyoichiro Yamada) 解决方案: Libvterm: do not add the width of the combining character to the glyph width. (closes #7801) 文件: src/libvterm/src/state.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_combining.dump Patch 8.2.2488 问题: json_encode() gives generic argument error. 解决方案: Mention the type that can't be encoded. (issue #7802) 文件: src/json.c, src/errors.h, src/testdir/test_json.vim Patch 8.2.2489 问题: current buffer is wrong after deletebufline() fails to delete a line in another buffer. 解决方案: Restore the current buffer. 文件: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.2490 问题: 'wrap' option is always reset when starting diff mode. 解决方案: Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797) 文件: runtime/doc/diff.txt, runtime/doc/options.txt, src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.2491 问题: Popup window for text property may show in first screen line. 解决方案: If the text position is invisible do not show the popup window. (closes #7807) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popup_prop_not_visible_01.dump, src/testdir/dumps/Test_popup_prop_not_visible_02.dump, src/testdir/dumps/Test_popup_prop_not_visible_03.dump Patch 8.2.2492 问题: Command line buffer name cannot be translated. 解决方案: Add _(). (Gabriel Dupras, closes #7812) 文件: src/ex_getln.c Patch 8.2.2493 问题: Text property for text left of window shows up. 解决方案: Check if the text property ends before the current column. (closes #7806) 文件: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_textprop_nowrap_01.dump, src/testdir/dumps/Test_textprop_nowrap_02.dump Patch 8.2.2494 问题: ":rviminfo!" clears most of oldfiles. 解决方案: Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781) 文件: src/viminfo.c, src/vim.h Patch 8.2.2495 问题: Text jumps up and down when moving the cursor in a small window with wrapping text and 'scrolloff' set. 解决方案: Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre, closes #7813) 文件: src/move.c, src/testdir/test_breakindent.vim Patch 8.2.2496 (after 8.2.2495) 问题: Insufficient testing for text jumping fix. 解决方案: Add another test case. 文件: src/testdir/test_breakindent.vim Patch 8.2.2497 问题: No error when using more than one character for a register name. 解决方案: In Vim9 script check for a single character string. (closes #7814) Fix that VAR_BOOL and VAR_SPECIAL are not considered equal. 文件: src/errors.h, src/evalfunc.c, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2498 问题: No test for what 8.2.2494 fixes. 解决方案: Add a simple change to test the fix. (closes #7818) 文件: src/testdir/test_viminfo.vim Patch 8.2.2499 问题: "vim -g --version" does not redirect output. 解决方案: Reset gui.starting when showing version info. (closes #7815) 文件: src/main.c, src/testdir/test_version.vim Patch 8.2.2500 (after 8.2.2499) 问题: Build fails without the GUI feature. 解决方案: Add #ifdef. 文件: src/main.c Patch 8.2.2501 问题: Not always clear where an error is reported. 解决方案: Add the where_T structure and pass it around. (closes #7796) 文件: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/vim9script.c, src/proto/vim9script.pro, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2502 问题: A few github actions are failing. 解决方案: Install setuptools-rust. (closes #7823) 文件: .github/workflows/ci.yml Patch 8.2.2503 问题: Vim9: a caught error may leave something on the stack. 解决方案: Drop items from the stack if needed. (closes #7826) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2504 问题: Vim9: crash when using an argument from a closure. 解决方案: Check if gen_load_outer is NULL. (closes #7821) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2505 问题: Vim9: crash after defining function with invalid return type. 解决方案: Clear function growarrays. Fix memory leak. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2506 问题: Vim9: :continue does not work correctly in a :try block 解决方案: Add the TRYCLEANUP instruction. (closes #7827) 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2507 问题: Github build may fail if Ubuntu 20.04 is used. Installing rust is not needed. 解决方案: Specify ubuntu-18.04 instead of latest. Update "pip" instead of installing rust. (Ozaki Kiichi, closes #7820) 文件: .github/workflows/ci.yml Patch 8.2.2508 问题: Cannot change the character displayed in non existing lines. 解决方案: Add the "eob" item to 'fillchars'. (closes #7832, closes #3820) 文件: runtime/doc/options.txt, runtime/doc/todo.txt, runtime/doc/windows.txt, src/drawscreen.c, src/globals.h, src/optiondefs.h, src/screen.c, src/testdir/test_display.vim Patch 8.2.2509 问题: Tests fail on s390 build. 解决方案: Initialize trycmd_T. 文件: src/vim9execute.c Patch 8.2.2510 问题: Internal error when popup with mask is zero height or width. 解决方案: Bail out if width or height is zero. (closes #7831) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2511 问题: Vim9: cannot use Vim9 script syntax in some places. 解决方案: Add the :vim9cmd command modifier. Incompatible: Makes ":vim9" mean ":vim9cmd" instead of ":vim9script". 文件: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/ex_docmd.c, src/ex_cmds.h, src/structs.h, src/ex_cmdidxs.h, src/errors.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_1.dump, src/testdir/dumps/Test_wildmenu_2.dump, src/testdir/dumps/Test_wildmenu_3.dump, src/testdir/dumps/Test_wildmenu_4.dump, src/testdir/test_quickfix.vim Patch 8.2.2512 问题: Vim9: compiling error test sometimes fails. 解决方案: use WaitForAssert() instead of sleeping for a bit. (Dominique Pellé, closes #7837) 文件: src/testdir/term_util.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2513 (after 8.2.2511) 问题: Vim9: missing part of :vim9cmd change. 解决方案: Use command modifier in in_vim9script(). 文件: src/vim9script.c Patch 8.2.2514 (after 8.2.2511) 问题: Vim9: build error in tiny version. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.2515 问题: Memory access error when truncating an empty message. 解决方案: Check for an empty string. (Dominique Pellé, closes #7841) 文件: src/message.c, src/message_test.c Patch 8.2.2516 问题: Test failure on s390. (analyses by James McCoy) 解决方案: Only set the try_finally label when not skipping. 文件: src/vim9compile.c Patch 8.2.2517 问题: Vim9: fix for s390 not tested on other systems. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2518 问题: 'listchars' should be window-local. 解决方案: Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz, closes #5206, closes #7850) 文件: runtime/doc/options.txt, src/buffer.c, src/charset.c, src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/globals.h, src/indent.c, src/message.c, src/misc1.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/proto/screen.pro, src/screen.c, src/structs.h, src/testdir/test_listchars.vim, src/testdir/test_listlbr.vim Patch 8.2.2519 问题: Vim9: no reason to keep strange Vi behavior. 解决方案: ":3" and ":3|" both go to line 3. ":|" does not print the line. (closes #7840) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2520 问题: Missing tests for 'listchars'. 解决方案: Add a few more checks. (Yegappan Lakshmanan, closes #7854) 文件: src/testdir/test_listchars.vim Patch 8.2.2521 问题: Some compilers can't handle pointer initialization. (John Marriott) 解决方案: Use a local struct and assign it afterwards. 文件: src/screen.c Patch 8.2.2522 问题: Beancount filetype not recognized. 解决方案: Add a detection rule. (Brian Ryall, closes #7859) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2523 问题: Svelte filetype not recognized. 解决方案: Add a detection rule. (Brian Ryall, closes #7858) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2524 问题: Cannot change the characters displayed in the foldcolumn. 解决方案: Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron, closes #7860) 文件: runtime/doc/options.txt, src/globals.h, src/mouse.c, src/screen.c, src/testdir/test_display.vim Patch 8.2.2525 问题: Vim9: only local variables checked for a name. 解决方案: Also check arguments and script variables. (closes #7838) 文件: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2526 (after 8.2.2525) 问题: Build failure. 解决方案: Change lookup_scriptvar() arguments. 文件: src/evalvars.c, src/proto/evalvars.pro Patch 8.2.2527 问题: Vim9: lambda return type is not determined at script level. 解决方案: Compile the lambda to get the return type. (closes #7843) 文件: src/eval.c, src/vim.h, src/vim9.h, src/testdir/test_vim9_assign.vim Patch 8.2.2528 问题: Vim9: crash when compiling lambda fails. 解决方案: Bail out after compilation fails. (closes #7862) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2529 问题: Vim9: Not possible to use legacy and Vim9 script in one file. 解决方案: Vim9: allow for "if false" before :vim9script. (closes #7851) 文件: runtime/doc/vim9.txt, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.2530 问题: Vim9: not enough testing for profiling. 解决方案: Add a test with nested functions and a lambda. Fix profiling for calling a compiled function. 文件: src/profiler.c, src/proto/profiler.pro, src/userfunc.c, src/vim9execute.c, src/testdir/test_profile.vim Patch 8.2.2531 问题: Vim9: the :k command is obscure. 解决方案: Disallow using :k, can use :mark instead. (closes #7874) 文件: runtime/doc/vim9.txt, src/ex_docmd.c, src/vim9script.c, src/vim9compile.c, src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.2532 问题: Vim9: confusing error if :k is used with a range. 解决方案: Give an error about the range. (issue #7874) 文件: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2533 问题: Vim9: cannot use a range with :unlet. 解决方案: Implement ISN_UNLETRANGE. 文件: src/errors.h, src/eval.c, src/evalvars.c, src/list.c, src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2534 问题: Missing test coverage. 解决方案: Improve test coverage for completion with different encodings, mapset(), and term function failures. (Dominique Pellé, closes #7877) 文件: src/testdir/test_edit.vim, src/testdir/test_maparg.vim, src/testdir/test_terminal3.vim Patch 8.2.2535 问题: MS-Windows: cannot run all vim9 tests. 解决方案: Make test_vim9 target work. 文件: src/Make_mvc.mak Patch 8.2.2536 问题: Coverity complains about unchecked return value. 解决方案: Add (void). 文件: src/userfunc.c Patch 8.2.2537 问题: Vim9: crash when map() fails. 解决方案: Clear typval before using it. (closes #7884) 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2538 问题: Crash when using Python list iterator. 解决方案: Increment the list reference count. (closes #7886) 文件: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.2539 问题: Vim9: return from finally block causes a hang. 解决方案: Store both the finally and endtry indexes. (closes #7885) 文件: src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/testdir/test_vim9_script.vim, Patch 8.2.2540 问题: Vim9: no error for using script var name for argument. 解决方案: Check for this error. (closes #7868) 文件: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_func.vim Patch 8.2.2541 问题: Popup_create() does not allow boolean for "cursorline". 解决方案: Use dict_get_bool(). (issue #7869) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.2542 问题: Highlight of char beyond line end is not correct. (Chuan Wei Foo) 解决方案: Fix counting NUL as one cell. Draw one more character if the EOL is part of the match. (closes #7883) 文件: src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_1.dump, src/testdir/dumps/Test_hlsearch_2.dump Patch 8.2.2543 问题: Vim9: a return inside try/catch does not restore exception state properly. 解决方案: When there is no ":finally" jump to ":endtry". (closes #7882) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2544 问题: Vim9: error for argument when checking for lambda. 解决方案: Respect the skip flag. (closes #7887) 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2545 问题: Errors and crash when terminal window is zero height. (Leonid V. Fedorenchik) 解决方案: Do not resize when width or height is zero. (closes #7890) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.2546 问题: Typo in mouse key name. 解决方案: Fix the typo. (issue #4725) 文件: src/misc2.c Patch 8.2.2547 问题: "%" command not accurate for big files. 解决方案: Make it more accurate for files up to 21M lines. (Dominique Pellé, closes #7889) 文件: src/normal.c Patch 8.2.2548 问题: May get stuck in the cmdline window using :normal. 解决方案: Have nv_esc() return K_IGNORE. 文件: src/normal.c Patch 8.2.2549 问题: Crash after using "g:" in a for loop. 解决方案: Increment the reference count. (closes #7892) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2550 问题: Signal stack size is wrong with latest glibc 2.34. 解决方案: Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes #7895) 文件: src/config.h.in, src/configure.ac, src/os_unix.c, src/auto/configure Patch 8.2.2551 问题: MS-Windows: colors test file is not installed. 解决方案: Also copy runtime/colors/tools. (Ken Takata, closes #7902) 文件: nsis/gvim.nsi Patch 8.2.2552 问题: Vim9: no reason to consider "{{{{{{{{" a command. 解决方案: Just use "{". (issue #7904) 文件: src/ex_cmds.h Patch 8.2.2553 问题: Vim9: Cannot put "|" after "{". 解决方案: Add the EX_TRLBAR flag. (issue #7904) 文件: src/ex_cmds.h, src/ex_eval.c Patch 8.2.2554 问题: Vim9: exporting a final is not tested. 解决方案: Add a test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2555 问题: Vim9: missing test for 8.2.2553. 解决方案: Add a simple test. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2556 问题: Vim9: :import with "as" not fully supported. 解决方案: Implement "as" for more cases. 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2557 问题: Compiler warning for shadowed variable. 解决方案: Declare "p" only once. 文件: src/vim9script.c Patch 8.2.2558 问题: No error if a lambda argument shadows a variable. 解决方案: Check that the argument name shadows a local, argument or script variable. (closes #7898) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, src/vim9script.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.2559 问题: MS-Windows: guifont test fails on Windows XP. 解决方案: Check windowsversion(). 文件: src/testdir/test_gui.vim Patch 8.2.2560 问题: Setting 'winminheigt' does not take tabline into account. 解决方案: Subtract the tabline from the available height. (closes #7899) 文件: src/window.c, src/testdir/test_options.vim Patch 8.2.2561 问题: Not all textprop code is covered by tests. 解决方案: Add a few more test cases. (Dominique Pellé, closes #7908) 文件: src/testdir/test_textprop.vim Patch 8.2.2562 问题: GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo Karkat) 解决方案: Do not change the star register when 'clipboard' contains "unnamedplus" and not "unnamed". (closes #1516) 文件: src/register.c Patch 8.2.2563 问题: Cannot use multibyte characters for folding in 'fillchars'. 解决方案: Port pull request 11568 to Vim. (Yegappan Lakshmanan, closes #7924) 文件: src/drawline.c, src/drawscreen.c, src/macros.h, src/proto/screen.pro, src/screen.c, src/testdir/test_fold.vim, src/testdir/test_profile.vim Patch 8.2.2564 问题: Focus events end Insert mode if 'esckeys' is not set. 解决方案: Do not enable focus events when 'esckeys' is off. (closes #7926) 文件: src/term.c Patch 8.2.2565 问题: Vim9: "..=" not always recognized. 解决方案: Do not consider "..=" to be string concatenation. (closes #7905) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2566 问题: Vim9: Function name is not recognized. 解决方案: Change lookup_scriptvar() to also find function names. (closes #7770) 文件: src/vim9script.c, src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2567 问题: Vim9: no error if variable is defined for existing function. 解决方案: Check if name isn't already in use. (closes #7897) 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2568 问题: Second time a preview popup is opened highlight is not set. (Gabriel Dupras) 解决方案: Apply 'previewpopup' after getting the file. (closes #7928) 文件: src/tag.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_previewpopup_2.dump, src/testdir/dumps/Test_popupwin_previewpopup_3.dump, src/testdir/dumps/Test_popupwin_previewpopup_4.dump, src/testdir/dumps/Test_popupwin_previewpopup_5.dump Patch 8.2.2569 问题: 'fillchars' "stl" and "stlnc" items must be single byte. 解决方案: Accept multi-byte characters. (Christian Wellenbrock, Yegappan Lakshmanan, closes #7927) 文件: runtime/doc/options.txt, src/buffer.c, src/macros.h, src/screen.c, src/testdir/test_fold.vim, src/testdir/test_statusline.vim Patch 8.2.2570 问题: Tests fail when run as root. 解决方案: Add a comment mentioning the expected failure. (issue #7919) 文件: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_writefile.vim Patch 8.2.2571 问题: Test may leave file behind. 解决方案: Delete the temporary file. Don't profile in the running Vim instance. 文件: src/testdir/test_quickfix.vim, src/testdir/test_profile.vim Patch 8.2.2572 问题: Vim9: crash when getting the types for a legacy function. 解决方案: Initialize the type list growarray. (closes #7929) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2573 问题: Vim9: using invalid pointer for error message. 解决方案: Use the right pointer. (closes #7921) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2574 问题: Vim9: crash when calling partial with wrong function. 解决方案: Check argument types of called function. (closes #7912) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2575 问题: Vim9: a function name with "->" in the next line doesn't work. 解决方案: Recognize a function name by itself. (closes #7770) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2576 问题: Vim9: defining a :func function checks for white space after a comma in the arguments. 解决方案: Only check for white space in a :def function. (closes #7930) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2577 问题: Compiler warning for type conversion. 解决方案: Add a typecast. (Mike Williams) 文件: src/drawline.c Patch 8.2.2578 问题: Lua cannot handle a passed in lambda. 解决方案: Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936) 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.2579 问题: Vim9: crash in garbagecollect after for loop. 解决方案: Do not set a reference in script item when the name was cleared. (closes #7935) 文件: src/evalvars.c Patch 8.2.2580 问题: Vim9: checking vararg type is wrong when function is auto-loaded. 解决方案: Use the member type. (closes #7933) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2581 问题: Vim9: sourcing Vim9 script triggers a redraw. 解决方案: Do not let setting/restoring 'cpoptions' cause a redraw. (closes #7920) 文件: src/vim.h, src/option.c, src/optionstr.c, src/scriptfile.c, src/vim9script.c, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_vim9_no_redraw.dump Patch 8.2.2582 (after 8.2.2581) 问题: Vim9: screendump test fails on MS-Windows. 解决方案: Use :function instead of :def. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2583 问题: Vim9: cannot compare result of getenv() with null. 解决方案: Make the return type of getenv() "any". (closes #7943) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2584 问题: Vim9: type error for assigning the result of list concatenation to a list. 解决方案: Do not consider concatenation result in a constant. (closes #7942) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2585 问题: Vim9: illegal memory access. 解决方案: Check byte right after "null", not one more. 文件: src/vim9compile.c Patch 8.2.2586 问题: Process id may be invalid. 解决方案: Use sysinfo.uptime to check for recent reboot. (suggested by Hugo van der Sanden, closes #7947) 文件: src/configure.ac, src/auto/configure, src/config.h.in, src/memline.c, src/testing.c, src/globals.h, src/testdir/test_recover.vim Patch 8.2.2587 (after 8.2.2586) 问题: Recover test fails on FreeBSD. 解决方案: Check for Linux. 文件: src/testdir/check.vim, src/testdir/test_recover.vim Patch 8.2.2588 (after 8.2.2586) 问题: Build failure with tiny features. 解决方案: Add #ifdef. Run recover test separately. 文件: src/memline.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim Patch 8.2.2589 (after 8.2.2586) 问题: Recover test hangs in the GUI. 解决方案: Add g:skipped_reason to skip a _nocatch_ test. 文件: src/testdir/runtest.vim, src/testdir/test_recover.vim Patch 8.2.2590 问题: Vim9: default argument value may cause internal error. 解决方案: Hide later function arguments when compiling the expression. (closes #7948) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2591 问题: Poke files are not recognized. 解决方案: Add a filetype entry. (Matt Ihlenfield) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2592 问题: Code coverage could be improved. 解决方案: Add a few more tests. (Dominique Pellé, closes #7957) 文件: src/testdir/test_fileformat.vim, src/testdir/test_normal.vim, src/testdir/test_sleep.vim, src/testdir/test_textformat.vim, src/testdir/test_viminfo.vim Patch 8.2.2593 问题: List of distributed files is incomplete. 解决方案: Add a file and rename another. 文件: Filelist Patch 8.2.2594 问题: Alternate buffer added to session file even when it's hidden. 解决方案: Check the 'buflisted' option. (closes #7951) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2595 问题: Setting 'winminheight' may cause 'lines' to change. 解决方案: Also take minimal height of other tabpages into account. (#7899) 文件: src/window.c, src/testdir/test_options.vim Patch 8.2.2596 问题: :doautocmd may confuse scripts listening to WinEnter. 解决方案: Do the current buffer last. (closes #7958) 文件: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.2597 问题: Vim9: "import * as" does not work at script level. 解决方案: Implement using an imported namespace. 文件: src/vim.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c, src/errors.h, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_script.vim Patch 8.2.2598 问题: Vim9: :open does not need to be supported. 解决方案: Do not support :open in Vim9 script. 文件: src/ex_docmd.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2599 (after 8.2.2597) 问题: Build failure. 解决方案: Add missing change. 文件: src/vim9compile.c Patch 8.2.2600 问题: Vim9: crash when putting an unknown type in a dictionary. (Yegappan Lakshmanan) 解决方案: Handle a NULL type pointer. 文件: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2601 问题: Memory usage test often fails on FreeBSD. 解决方案: Increase multiplier for upper limit. 文件: src/testdir/test_memory_usage.vim Patch 8.2.2602 问题: Vim9: continue doesn't work if :while is very first command. (Yegappan Lakshmanan) 解决方案: Add one to the continue instruction index. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.2603 问题: Vim9: no effect if user command is also a function. 解决方案: Check for paren following. (closes #7960) 文件: src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2604 问题: GUI-specific command line arguments not tested. 解决方案: Add tests for several arguments. (Dominique Pellé, closes #7962) 文件: src/testdir/test_startup.vim Patch 8.2.2605 问题: Vim9: string index and slice does not include composing chars. 解决方案: Include composing characters. (issue #6563) 文件: runtime/doc/vim9.txt, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.2606 问题: strchars() defaults to counting composing characters. 解决方案: Add strcharlen() which ignores composing characters. 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testdir/test_utf8.vim Patch 8.2.2607 问题: strcharpart() cannot include composing characters. 解决方案: Add the {skipcc} argument. 文件: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_expr_utf8.vim Patch 8.2.2608 问题: Character input not fully tested. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #7963) 文件: src/testdir/test_functions.vim, src/testdir/test_messages.vim, src/testdir/test_paste.vim, src/testdir/test_registers.vim, src/testdir/test_undo.vim Patch 8.2.2609 问题: Test disabled on MS-Windows even though it should work. 解决方案: Restore the condition for skipping the test. (Ken Takata, closes #7970) 文件: src/testdir/test_startup.vim Patch 8.2.2610 问题: Mouse click test fails when using remote connection. 解决方案: Use a larger 'mousetime'. (Dominique Pellé, closes #7968) 文件: src/testdir/test_selectmode.vim Patch 8.2.2611 问题: Conditions for startup tests are not exactly right. 解决方案: Check for type of GUI instead of MS-Windows. (Ozaki Kiichi, closes #7976) 文件: src/main.c, src/testdir/check.vim, src/testdir/test_startup.vim Patch 8.2.2612 问题: col('.') may get outdated column value. 解决方案: Add a note to the help how to make this work and add a test for it. (closes #7971) 文件: runtime/doc/map.txt, src/testdir/test_mapping.vim Patch 8.2.2613 (after 8.2.2612) 问题: New test throws exception. 解决方案: Adjust the function cleanup. 文件: src/testdir/test_mapping.vim Patch 8.2.2614 问题: Vim9: function is deleted while executing. 解决方案: increment the call count, when more than zero do not delete the function but mark it as dead. (closes #7977) 文件: src/vim9execute.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.2615 (after 8.2.2614) 问题: Test is sourcing the wrong file. 解决方案: Correct the file name. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2616 问题: Vim9: if 'cpo' is changed in Vim9 script it may be restored. 解决方案: Apply the changes to 'cpo' to the restored value. 文件: runtime/doc/vim9.txt, src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2617 问题: Vim9: script variable in a block scope not found by a nested function. 解决方案: Copy the block scope IDs before compiling the function. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2618 问题: Vim9: cannot use a normal list name to store function refs. 解决方案: Allow a lower case name if it is indexed. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2619 问题: Vim9: no test for return type of lambda. 解决方案: Add a test. 文件: src/testdir/test_vim9_func.vim Patch 8.2.2620 问题: Vim9: Using #{ for a dictionary gives strange errors. 解决方案: Give an error when using #{ for a comment after a command. 文件: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.2621 问题: typval2type() cannot handle recursive structures. 解决方案: Use copyID. (closes #7979) 文件: src/list.c, src/vim9script.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vimscript.vim Patch 8.2.2622 问题: GTK: error when starting up and -geometry is given. (Dominique Pellé) 解决方案: Use another function to get the monitor if the window has not been created yet. (closes #7978) 文件: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c, src/gui_xim.c Patch 8.2.2623 问题: Some tests fail when run as root. 解决方案: Use CheckNotRoot. 文件: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_writefile.vim Patch 8.2.2624 问题: Atom files not recognized. 解决方案: Recognize .atom as XML. (Kivin Locke, closes #7986) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2625 问题: Rss files not recognized. 解决方案: Recognize .rss as XML. (Kivin Locke, closes #7987) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2626 问题: GTK3: error when starting up and -geometry is given. (Dominique Pellé) 解决方案: Use another function to get the monitor if the window has not been created yet. (closes #7978) 文件: src/gui_gtk_x11.c Patch 8.2.2627 问题: No need to check for BSD after checking for not root. 解决方案: Remove CheckNotBSD. (Ozaki Kiichi, closes #7989) 文件: src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/check.vim Patch 8.2.2628 问题: Vim9: #{ can still be used at the script level. 解决方案: Give an error for #{ like in a :def function. 文件: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.2629 问题: Vim9: error for #{{ is not desired. 解决方案: Adjust the checks. (closes #7990) 文件: src/errors.h, src/vim9script.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.2630 问题: Hard to see where a test gets stuck. 解决方案: Print the executed test function. (Dominique Pellé, closes #7975) 文件: src/testdir/Makefile Patch 8.2.2631 问题: Commands from winrestcmd() do not always work properly. (Leonid V. Fedorenchik) 解决方案: Repeat the size commands twice. (closes #7988) 文件: src/evalwindow.c, src/testdir/test_window_cmd.vim Patch 8.2.2632 问题: Not all command line arguments are tested. 解决方案: Add tests for -D and -serverlist. (Dominique Pellé, closes #7992) 文件: src/testdir/test_clientserver.vim, src/testdir/test_startup.vim Patch 8.2.2633 问题: Multi-byte 'fillchars' for folding do not show properly. 解决方案: Handle multi-byte characters correctly. (Yegappan Lakshmanan, closes #7983, closes #7955) 文件: src/screen.c, src/testdir/test_fold.vim Patch 8.2.2634 问题: 'tagfunc' does not indicate using a pattern. 解决方案: Add the "r" flag. (Andy Massimino, closes #7982) 文件: runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_tagfunc.vim Patch 8.2.2635 问题: Vim9: cannot define an inline function. 解决方案: Make an inline function mostly work. 文件: src/userfunc.c, src/errors.h, src/vim9compile.c, src/misc2.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2636 (after 8.2.2635) 问题: Memory leak when compiling inline function. 解决方案: Free the prefetched line. 文件: src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h, src/eval.c Patch 8.2.2637 问题: prop_remove() causes a redraw even when nothing changed. 解决方案: Only redraw if a property was removed. (Dominique Pellé) 文件: src/textprop.c Patch 8.2.2638 问题: Cannot write a message to the terminal from the GUI. 解决方案: Add :echoconsole and use it in the test runner. (issue #7975) 文件: runtime/doc/eval.txt, runtime/doc/index.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/eval.c, src/ui.c, src/proto/ui.pro, src/term.c, src/testdir/runtest.vim Patch 8.2.2639 (after 8.2.2638) 问题: Build failure when fsync() is not available. 解决方案: Add #ifdef. 文件: src/ui.c Patch 8.2.2640 问题: screenstring() returns non-existing composing characters. 解决方案: Only use composing characters if there is a base character. 文件: src/evalfunc.c, src/testdir/test_listchars.vim Patch 8.2.2641 问题: Display test fails because of lacking redraw. 解决方案: Add a redraw command. 文件: src/testdir/test_display.vim Patch 8.2.2642 问题: Vim9: no clear error for wrong inline function. 解决方案: Check for something following the "{". 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.2643 问题: Various code not covered by tests. 解决方案: Add a few more test. (Yegappan Lakshmanan, closes #7995) 文件: src/testdir/test_edit.vim, src/testdir/test_functions.vim, src/testdir/test_mapping.vim, src/testdir/test_termcodes.vim, src/testdir/test_undo.vim Patch 8.2.2644 问题: prop_clear() causes a screen update even when nothing changed. 解决方案: Only redraw when a property was cleared. (Dominique Pellé) 文件: src/textprop.c Patch 8.2.2645 问题: Using inline function is not properly tested. 解决方案: Add test cases, esp. for errors. Minor code improvements. 文件: src/userfunc.c, src/errors.h, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2646 问题: Vim9: error for not using string doesn't mention argument. 解决方案: Add argument number. 文件: src/filepath.c, src/typval.c, src/proto/typval.pro, src/errors.h, src/mbyte.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2647 问题: Terminal test sometimes hangs. 解决方案: Wait for the shell to display a prompt. 文件: src/testdir/test_terminal.vim Patch 8.2.2648 问题: Terminal resize test sometimes hangs. 解决方案: Wait for the shell to display a prompt and other output. 文件: src/testdir/test_terminal2.vim Patch 8.2.2649 问题: Vim9: some wincmd arguments cause a white space error. 解决方案: Insert a space before the count. (closes #8001) 文件: src/window.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2650 问题: Vim9: command modifiers not handled in nested function. 解决方案: Keep function-local info in a structure and save it on the stack. 文件: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim Patch 8.2.2651 问题: Vim9: restoring command modifiers happens after jump. 解决方案: Move the restore instruction to before the jump. (closes #8006) Also handle for and while. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2652 问题: Vim9: can use command modifier without an effect. 解决方案: Give an error for a misplaced command modifier. Fix error message number. 文件: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_eval.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2653 问题: Build failure. 解决方案: Add missing changes. 文件: src/errors.h Patch 8.2.2654 问题: Vim9: getting a character from a string can be slow. 解决方案: Avoid a function call to get the character byte size. (#8000) 文件: src/vim9execute.vim Patch 8.2.2655 问题: The -w command line argument doesn't work. 解决方案: Don't set 'window' when set with the -w argument. (closes #8011) 文件: src/term.c, src/testdir/test_startup.vim Patch 8.2.2656 问题: Some command line arguments and regexp errors not tested. 解决方案: Add a few test cases. (Dominique Pellé, closes #8013) 文件: src/testdir/test_regexp_latin.vim, src/testdir/test_startup.vim Patch 8.2.2657 问题: Vim9: error message for declaring variable in for loop. 解决方案: Clear variables when entering block again. (closes #8012) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.2658 问题: :for cannot loop over a string. 解决方案: Accept a string argument and iterate over its characters. 文件: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vimscript.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_script.vim Patch 8.2.2659 (after 8.2.2658) 问题: Eval test fails because for loop on string works. 解决方案: Check looping over function reference fails. 文件: src/testdir/test_eval_stuff.vim Patch 8.2.2660 问题: Vim9: no error for declaration with trailing text. 解决方案: Give an error. (closes #8014) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2661 问题: Leaking memory when looping over a string. 解决方案: Free the memory. 文件: src/eval.c Patch 8.2.2662 问题: There is no way to avoid some escape sequences. 解决方案: Suppress escape sequences when the --not-a-term argument is used. (Gary Johnson) 文件: src/main.c, src/os_unix.c, src/testdir/test_startup.vim Patch 8.2.2663 问题: Vim9: leaking memory when inline function has an error. 解决方案: Free the partially allocated function. 文件: src/userfunc.c Patch 8.2.2664 问题: Vim9: not enough function arguments checked for string. 解决方案: Check in balloon functions. Refactor function arguments. 文件: src/typval.c, src/proto/typval.pro, src/filepath.c, src/evalfunc.c, src/mbyte.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2665 (after 8.2.2664) 问题: Test failures. 解决方案: Check more specific feature. Add missing change. 文件: src/testdir/test_vim9_builtin.vim, src/evalbuffer.c Patch 8.2.2666 问题: Vim9: not enough function arguments checked for string. 解决方案: Check in ch_logfile(), char2nr() and others. 文件: src/channel.c, src/evalfunc.c, src/filepath.c, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2667 问题: prop_find() cannot find item matching both id and type. 解决方案: Add the "both" argument. (Naohiro Ono, closes #8019) 文件: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, src/textprop.c Patch 8.2.2668 问题: Vim9: omitting "call" for "confirm()" does not give an error. 解决方案: Do not recognize a modifier followed by "(". 文件: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2669 问题: Command line completion does not work after "vim9". 解决方案: Include the "9". (Naohiro Ono, closes #8025) 文件: src/cmdexpand.c, src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.2670 问题: Vim9: error for append(0, text). 解决方案: Check for negative number. (closes #8022) 文件: src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2671 (after 8.2.2670) 问题: Error for line number in legacy script. 解决方案: Check for number type. 文件: src/typval.c Patch 8.2.2672 问题: Vim9: cannot use :lockvar and :unlockvar in compiled script. 解决方案: Implement locking support. 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2673 问题: Vim9: script-local funcref can have lower case name. 解决方案: Require an upper case name. 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.2674 问题: Motif: cancelling the font dialog resets the font. 解决方案: When no font is selected to not change the font. (closes #7825, closes #8035) Fix compiler warnings. 文件: src/gui_x11.c, src/gui_motif.c Patch 8.2.2675 问题: Directory change in a terminal window shell is not followed. 解决方案: Add the 'autoshelldir' option. (closes #6290) 文件: runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/charset.c, src/feature.h, src/option.h, src/optiondefs.h, src/terminal.c, src/testdir/check.vim, src/testdir/test_terminal3.vim Patch 8.2.2676 问题: Missing error message. 解决方案: Add new error message. 文件: src/errors.h Patch 8.2.2677 问题: Vim9: cannot use only some of the default arguments. 解决方案: Use v:none to use default argument value. Remove uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504) 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, src/userfunc.c, src/structs.h, src/vim9.h, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim Patch 8.2.2678 问题: Test for 'autoshelldir' does not reset the option. 解决方案: Reset the option after testing. 文件: src/testdir/test_terminal3.vim Patch 8.2.2679 问题: Winbar drawn over status line for non-current window with winbar if frame is zero height. (Leonid V. Fedorenchik) 解决方案: Do not draw the window if the frame height is zero. (closes #8037) 文件: src/drawscreen.c, src/testdir/test_winbar.vim, src/testdir/dumps/Test_winbar_not_visible.dump Patch 8.2.2680 问题: Vim9: problem defining a script variable from legacy function. 解决方案: Check if the script is Vim9, not the current syntax. (closes #8032) 文件: src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2681 问题: Vim9: test fails for redeclaring script variable. 解决方案: It's OK to assign to an existing script variable in legacy. 文件: src/evalvars.c Patch 8.2.2682 问题: Vim9: cannot find Name.Func from "import * as Name". (Alexander Goussas) 解决方案: When no variable found try finding a function. (closes #8045) Check that the function was exported. 文件: src/vim9compile.c, src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2683 问题: Build failure without the +eval feature. 解决方案: Add #ifdef. 文件: src/vim9script.c Patch 8.2.2684 问题: Not enough folding code is tested. 解决方案: Add more test cases. (Yegappan Lakshmanan, closes #8046) 文件: src/testdir/test_fold.vim, src/testdir/test_mksession.vim, src/testdir/test_source.vim Patch 8.2.2685 (after 8.2.2152) 问题: Custom statusline not drawn correctly with WinBar. 解决方案: Also adjust the column for the custom status line. (Yee Cheng Chin, closes #8047) 文件: src/drawscreen.c, src/proto/drawscreen.pro, src/screen.c, src/testdir/dumps/Test_winbar_not_visible_custom_statusline.dump, src/testdir/test_winbar.vim Patch 8.2.2686 问题: Status line is not updated when going to cmdline mode. 解决方案: Redraw status lines if 'statusline' is set and going to status line mode. (based on patch from Justin M. Keyes et al., closes #8044) 文件: src/ex_getln.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_mode_1.dump, src/testdir/dumps/Test_statusline_mode_2.dump Patch 8.2.2687 问题: Vim9: cannot use "const" for global variable in :def function. 解决方案: Do allow using :const for a global variable. (closes #8030) 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2688 问题: Vim9: crash when using s: for script variable. 解决方案: Pass the end pointer. (closes #8045) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2689 问题: Tiny build fails. 解决方案: Add #ifdef around use of p_stl. 文件: src/ex_getln.c Patch 8.2.2690 问题: PowerShell files are not recognized. 解决方案: Recognize several PowerShell extension. (Heath Stewart, closes #8051) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2691 问题: Autoconf may mess up compiler flags. 解决方案: Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov, closes #8049) 文件: src/configure.ac, src/auto/configure Patch 8.2.2692 问题: Vim9: locked script variable can be changed. 解决方案: Check for locked value. (closes #8031) 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2693 问题: Vim9: locked script variable can be changed. 解决方案: Check legacy script variable for being locked. (issue #8031) 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2694 问题: When 'matchpairs' is empty every character beeps. (Marco Hinz) 解决方案: Bail out when no character in 'matchpairs' was found. (closes #8053) Add assert_nobeep(). 文件: runtime/doc/testing.txt, runtime/doc/eval.txt, src/search.c, src/testing.c, src/proto/testing.pro, src/evalfunc.c, src/testdir/test_textformat.vim Patch 8.2.2695 问题: Cursor position reset with nested autocommands. 解决方案: Only check and reset line numbers for not nested autocommands. (closes #5820) 文件: src/autocmd.c, src/testdir/test_terminal.vim Patch 8.2.2696 问题: Lua test fails with Lua 5.4.3 and later. 解决方案: Check for different error messages. (Yegappan Lakshmanan, closes #8050) 文件: src/testdir/test_lua.vim Patch 8.2.2697 问题: Function list test fails. 解决方案: Add missing function. (Yegappan Lakshmanan) 文件: runtime/doc/usr_41.txt Patch 8.2.2698 (after 8.2.2696) 问题: Lua test fails on MS-Windows. 解决方案: Fall back to old method if "lua -v" doesn't work. 文件: src/testdir/test_lua.vim Patch 8.2.2699 问题: Lua test fails. 解决方案: Fix condition. (Yegappan Lakshmanan, closes #8060) 文件: src/testdir/test_lua.vim Patch 8.2.2700 问题: Nested autocmd test fails sometimes. 解决方案: Wait for the job to finish. 文件: src/testdir/test_terminal.vim Patch 8.2.2701 问题: Order of removing FORTIFY_SOURCE is wrong. 解决方案: Use the more specific pattern first. 文件: src/configure.ac, src/auto/configure Patch 8.2.2702 问题: Compiler completion test fails when more scripts are added. 解决方案: Add a more generic pattern. 文件: src/testdir/test_compiler.vim Patch 8.2.2703 问题: Vim9: memory leak when failing on locked variable. 解决方案: Free the memory. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.2704 问题: Adding a lot of completions can be a bit slow. 解决方案: Use fast_breakcheck() instead of ui_breakcheck() when adding a list of completions. (Ben Jackson, closes #8061) 文件: src/insexpand.c Patch 8.2.2705 问题: Vim9: misleading reported line number for wrong type. 解决方案: Remember and use the line number at the start. (closes #8059) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2706 问题: Vim9: wrong line number reported for boolean operator. 解决方案: Use the line number before skipping over line break. (closes #8058) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2707 (after 8.2.2704) 问题: Adding a lot of completions can still be a bit slow. 解决方案: Add the check for CP_FAST. (Ben Jackson) 文件: src/insexpand.c Patch 8.2.2708 问题: Test sometimes fails waiting for shell in terminal. 解决方案: Use WaitForAssert() so we can see the actual job status. Use Run_shell_in_terminal(). 文件: src/testdir/term_util.vim, src/testdir/test_mksession.vim Patch 8.2.2709 问题: The GTK GUI has a gap next to the scrollbar. 解决方案: Calculate the scrollbar padding for GTK. (closes #8027) 文件: src/gui_gtk.c Patch 8.2.2710 问题: Vim9: not all tests cover script and :def function. 解决方案: Run tests in both if possible. Fix differences. 文件: src/eval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2711 问题: "gj" in a closed fold does not move out of the fold. (Marco Hinz) 解决方案: Add a check for being in a closed fold. (closes #8062) 文件: src/normal.c, src/testdir/test_fold.vim Patch 8.2.2712 问题: Memory leak when adding to a blob fails. 解决方案: Clear the second typval before returning. 文件: src/eval.c Patch 8.2.2713 问题: Folding code not sufficiently tested. 解决方案: Add a few more test cases. (Yegappan Lakshmanan, closes #8064) 文件: src/testdir/test_fold.vim Patch 8.2.2714 问题: Filetype pattern ending in star is too far up. 解决方案: Move down to where patterns ending in star belong. (closes #8065) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2715 问题: Vim9: tests fail without the channel feature. (Dominique Pellé) 解决方案: Check for the channel feature. (closes #8063) 文件: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2716 问题: The equivalent class regexp is missing some characters. 解决方案: Update the list of equivalent characters. (Dominique Pellé, closes #8029) 文件: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.2717 问题: GTK menu items don't show a tooltip. 解决方案: Add a callback to show the tooltip. (Leonid V. Fedorenchik, closes #8067, closes #7810) 文件: src/gui_gtk.c Patch 8.2.2718 问题: Vim9: no explicit test for using a global function without the g: prefix. 解决方案: Add a test case. 文件: src/testdir/test_vim9_func.vim Patch 8.2.2719 问题: Vim9: appending to dict item doesn't work in a :def function. 解决方案: Implement assignment with operator on indexed item. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2720 问题: GTK menu tooltip moves the cursor. 解决方案: Position the cursor after displaying the tooltip. Do not show the tooltip when editing the command line. 文件: src/gui_gtk.c Patch 8.2.2721 问题: Vim9: cannot have a linebreak inside a lambda. 解决方案: Compile the expression before the arguments. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2722 问题: Vim9: crash when using LHS with double index. 解决方案: Handle lhs_dest which is "dest_expr". (closes #8068) Fix confusing error message for missing dict item. 文件: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2723 (after 8.2.2722) 问题: Assignment test fails. 解决方案: Adjust error number. 文件: src/testdir/test_let.vim Patch 8.2.2724 (after 8.2.2722) 问题: Vim9: concatenating to list in dict not tested. 解决方案: Add a test. (issue #8068) 文件: src/testdir/test_vim9_assign.vim Patch 8.2.2725 问题: Vim9: message about compiling is wrong when using try/catch. 解决方案: Store the compiling flag with the message. (closes #8071) 文件: src/ex_docmd.c, src/ex_eval.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.2726 问题: Confusing error message with white space before comma in the arguments of a function declaration. 解决方案: Give a specific error message. (closes #2235) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2727 (after 8.2.2726) 问题: Function test fails. 解决方案: Adjust expected error number. 文件: src/testdir/test_user_func.vim Patch 8.2.2728 问题: Special key names don't work if 'isident' is cleared. 解决方案: Add vim_isNormalIDc() and use it for special key names. (closes #2389) 文件: src/charset.c, src/proto/charset.pro, src/misc2.c, src/testdir/test_mapping.vim Patch 8.2.2729 问题: Vim9: wrong error message for referring to legacy script variable. 解决方案: Do allow referring to a variable in legacy script without "s:" if it exists at compile time. (closes #8076) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2730 问题: Coverity complains about not restoring character. 解决方案: Also restore the character in case of an error. 文件: src/vim9compile.c Patch 8.2.2731 问题: Mac: SF symbols are not displayed properly. 解决方案: Add custom range to list of double-width characters. (Yee Cheng Chin, closes #8077) 文件: src/mbyte.c Patch 8.2.2732 问题: Prompt for s///c in Ex mode can be wrong. 解决方案: Position the cursor before showing the prompt. (closes #8073) 文件: src/ex_cmds.c, src/testdir/test_ex_mode.vim Patch 8.2.2733 问题: Detecting Lua version is not reliable. 解决方案: Add "vim.lua_version". (Ozaki Kiichi, closes #8080) 文件: runtime/doc/if_lua.txt, ci/if_ver-1.vim, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.2734 问题: Vim9: cannot use legacy script-local var from :def function. 解决方案: Do not insist on using "s:" prefix. (closes #8076) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2735 问题: Vim9: function reference found with prefix, not without. 解决方案: Also find function reference without prefix. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2736 问题: Vim9: for loop over string is a bit slow. 解决方案: Avoid using strlen(). 文件: src/vim9execute.c Patch 8.2.2737 问题: Status line not updated when local 'statusline' option set. 解决方案: Check the 'statusline' option of each window. 文件: src/ex_getln.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_mode_1.dump, src/testdir/dumps/Test_statusline_mode_2.dump Patch 8.2.2738 问题: Extending a list with itself can give wrong result. 解决方案: Remember the item before where the insertion happens and skip to after the already inserted items. (closes #1112) 文件: src/list.c, src/testdir/test_listdict.vim Patch 8.2.2739 问题: Vim9: a lambda accepts too many arguments at the script level. 解决方案: Do not set uf_varargs in Vim9 script. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2740 问题: Vim9: lambda with varargs doesn't work. 解决方案: Make "...name" work. Require type to be a list. 文件: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/errors.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.2741 问题: Vim9: Partial call does not check right arguments. 解决方案: Adjust the offset for whether the partial is before or after the arguments. (closes #8091) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2742 问题: Vim9: when compiling a function fails it is cleared. 解决方案: Keep the function lines, prevent execution with a different status. (closes #8093) 文件: src/vim9compile.c, src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2743 问题: Vim9: function state stuck when compiling with ":silent!". 解决方案: Check for uf_def_status to be UF_COMPILING. 文件: src/vim9compile.c, src/message.c, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.2744 问题: Vim9: no way to explicitly ignore an argument. 解决方案: Use the underscore as the name for an ignored argument. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/eval.c, src/evalvars.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.2745 (after 8.2.2744) 问题: Vim9: missing part of the argument change. 解决方案: Add missing changes. 文件: src/userfunc.c Patch 8.2.2746 (after 8.2.2745) 问题: Check for duplicate arguments does not work. 解决方案: Correct condition. 文件: src/userfunc.c Patch 8.2.2747 问题: Vim9: not always an error for too many function arguments. 解决方案: Check for getting too many arguments. 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2748 问题: Vim9: memory leak when calling :def function fails. 解决方案: Jump to failed_early instead of returning. 文件: src/vim9execute.c Patch 8.2.2749 问题: Vim9: test for error can be a bit flaky. 解决方案: Increase the wait time a bit. 文件: src/testdir/test_vim9_script.vim Patch 8.2.2750 问题: Vim9: error for using underscore in nested function. 解决方案: Do not consider "_" already defined. (closes #8096) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2751 问题: Coverity warns for using NULL pointer. 解决方案: Check for NULL in calling function. 文件: src/userfunc.c Patch 8.2.2752 problem: coverity reports unreachable code. 解决方案: Remove check for positive index. 文件: src/typval.c Patch 8.2.2753 问题: Vim9: cannot ignore an item in assignment unpack. 解决方案: Allow using an underscore. 文件: runtime/doc/vim9.txt, src/vim.h, src/evalvars.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.2754 问题: :sleep! does not always hide the cursor. 解决方案: Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097, closes #7998) 文件: src/drawscreen.c, src/ex_docmd.c, src/gui.c, src/proto/term.pro, src/term.c Patch 8.2.2755 问题: Vim9: no error for using a number in a condition. 解决方案: Also use ISN_COND2BOOL if the type is t_number_bool. (closes #7644) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2756 问题: Vim9: blob index and slice not implemented yet. 解决方案: Implement blob index and slice. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, src/blob.c, src/proto/blob.pro, src/testdir/test_vim9_expr.vim Patch 8.2.2757 问题: Vim9: blob tests for legacy and Vim9 script are separate. 解决方案: Add CheckLegacyAndVim9Success(). Make blob index assign work. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/blob.c, src/proto/blob.pro, src/eval.c, src/ex_docmd.c, src/testdir/vim9.vim, src/testdir/test_blob.vim Patch 8.2.2758 问题: Vim9: wrong line number for autoload function with wrong name. 解决方案: Set and restore SOURCING_LNUM. (closes #8100) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2759 问题: Vim9: for loop infers type of loop variable. 解决方案: Do not get the member type. (closes #8102) 文件: src/vim9type.c, src/proto/vim9type.pro, src/list.c, src/vim9script.c, src/proto/vim9script.pro, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.2760 问题: Vim9: no error for changing a for loop variable. 解决方案: Make the loop variable read-only. (issue #8102) 文件: src/eval.c, src/evalvars.c, src/vim9compile.c, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.2761 问题: Using "syn include" does not work properly. 解决方案: Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung, closes #8104) 文件: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.2762 问题: Vim9: function line truncated when compiling. 解决方案: Copy the line before processing it. (closes #8101) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2763 问题: Vim9: cannot use type in for loop unpack at script level. 解决方案: Advance over the type name. 文件: src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.2764 问题: Memory leak when default function argument is allocated. 解决方案: Free the expression result. 文件: src/userfunc.c, src/testdir/test_functions.vim Patch 8.2.2765 问题: Vim9: not all blob operations work. 解决方案: Run more tests also with Vim9 script and :def functions. Fix what doesn't work. 文件: src/eval.c, src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/errors.h, src/testdir/vim9.vim, src/testdir/test_blob.vim Patch 8.2.2766 (after 8.2.2765) 问题: Test failure. 解决方案: Add change to Vim9 compilation error message. 文件: src/vim9compile.c Patch 8.2.2767 (after 8.2.2765) 问题: Compiler warning for unused argument. 解决方案: Remove the argument. 文件: src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/eval.c Patch 8.2.2768 问题: Vim9: memory leak with blob range error. 解决方案: Jump to end instead of returning. 文件: src/vim9compile.c Patch 8.2.2769 问题: Modula-3 config files are not recognized. 解决方案: Add filetype patterns. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2770 问题: Vim9: type of loop variable is not used. 解决方案: Parse and check the variable type. (closes #8107) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2771 问题: Vim9: assignment not recognized if declaration was skipped. 解决方案: Also recognized an assignment if the variable does not exist. (closes #8108) 文件: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.2772 问题: Problems when restoring 'runtimepath' from a session file. 解决方案: Add the "skiprtp" item in 'sessionoptions'. 文件: runtime/doc/options.txt, src/session.c, src/optionstr.c, src/option.h, src/vim.h, src/option.c, src/testdir/test_mksession.vim Patch 8.2.2773 问题: PSL filetype not recognized. 解决方案: Add a filetype pattern. (Daniel Kho, closes #8117) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2774 问题: Vim9: cannot import an existing name even when using "as". 解决方案: Do not check for an existing name when using "as". (closes #8113) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.2775 问题: Vim9: wrong line number used for some commands. 解决方案: For :exe, :echo and the like use the line number of the start of the command. When calling a function set the line number in the script context. 文件: src/vim9compile.c, src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.2776 问题: :mksession uses current value of 'splitbelow' and 'splitright' even though "options" is not in 'sessionoptions'. (Maxim Kim) 解决方案: Save and restore the values, instead of setting to the current value. (closes #8119) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2777 问题: Vim9: blob operations not tested in all ways. 解决方案: Run tests with CheckLegacyAndVim9Success(). Make blob assign with index work. 文件: src/vim9compile.c, src/vim9execute.c, src/errors.h, src/blob.c, src/proto/blob.pro, src/testdir/test_blob.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2778 问题: Problem restoring 'packpath' in session. 解决方案: Let "skiprtp" also apply to 'packpath'. 文件: runtime/doc/options.txt, src/option.c, src/testdir/test_mksession.vim Patch 8.2.2779 问题: Memory access error in remove() for blob. 解决方案: Adjust length for memmove(). 文件: src/blob.c Patch 8.2.2780 问题: Vim9: for loop over blob doesn't work. 解决方案: Make it work. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_blob.vim Patch 8.2.2781 问题: Add() silently skips when adding to null list or blob. 解决方案: Give an error in Vim9 script. Allocate blob when it is NULL like with list and dict. 文件: src/list.c, src/evalvars.c, src/vim9execute.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2782 问题: Vim9: blob operations not fully tested. 解决方案: Make more blob tests run in Vim9 script. Fix filter(). Make insert() give an error for a null blob, like add(). 文件: src/list.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2783 问题: Duplicate code for setting byte in blob, blob test may fail. 解决方案: Call blob_set_append(). Test sort failure with "N". 文件: src/eval.c, src/testdir/test_blob.vim Patch 8.2.2784 问题: Vim9: cannot use \=expr in :substitute. 解决方案: Compile the expression into instructions and execute them when invoked. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/regexp.c, src/ex_cmds.c, src/proto/ex_cmds.pro, src/globals.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2785 问题: Vim9: cannot redirect to local variable. 解决方案: Compile :redir when redirecting to a variable. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2786 问题: Vim9: memory leak when using :s with expression. 解决方案: Clean up the instruction list. 文件: src/vim9compile.c Patch 8.2.2787 问题: MS-Windows: crash when using :echoconsole. 解决方案: Do not write a NUL when it's already there. 文件: src/os_win32.c Patch 8.2.2788 问题: Raku is now the only name what once was called perl6. 解决方案: Adjust the filetype detection. (closes #8120) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2789 问题: Vim9: using \=expr in :substitute does not handle jumps. 解决方案: Start with instruction count zero. (closes #8128) 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2790 (after 8.2.2788) 问题: filetype test fails 解决方案: Also update the scripts detection 文件: runtime/scripts.vim Patch 8.2.2791 问题: Vim9: memory leak when using \=expr in :substitute. 解决方案: Do not allocate a new instruction list. 文件: src/vim9compile.c Patch 8.2.2792 问题: Vim9: :disas shows instructions for default args but no text. 解决方案: Show the expression test above the default argument instructions. (closes #8129) 文件: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.2793 问题: MS-Windows: string literals are writable with MSVC. 解决方案: Add the /GF compiler flag. Make mch_write() safer. (Ken Takata, closes #8133) 文件: src/Make_mvc.mak, src/os_win32.c Patch 8.2.2794 问题: Linux users don't know how to get ncurses. 解决方案: Add the name of the package. (closes #8132) 文件: src/configure.ac, src/auto/configure Patch 8.2.2795 问题: Coverity warns for not using return value. 解决方案: Check the return value of compiling the substitute expression. 文件: src/vim9compile.c Patch 8.2.2796 问题: Vim9: redir to variable does not accept an index. 解决方案: Make the index work. 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2797 问题: Search highlight disappears in the Visual area. 解决方案: Combine the search attributes. (closes #8134) 文件: src/drawline.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_visual_1.dump Patch 8.2.2798 问题: Vim9: redir to variable with append does not accept an index. 解决方案: Make the appending work. 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2799 问题: Vim9: type casts don't fully work at the script level. 解决方案: Implement the missing piece. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2800 问题: After a timer displays text a hit-enter prompt is given. 解决方案: Reset msg_didany and need_wait_return. (closes #8136) 文件: src/drawscreen.c, src/testdir/test_timers.vim Patch 8.2.2801 问题: Free Pascal makefile not recognized. 解决方案: Add the fpcmake filetype. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2802 问题: Vim9: illegal memory access. 解决方案: Check for comment before checking for white space. (closes #8142) 文件: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.2803 问题: Flicker when the popup menu has an info popup. 解决方案: Avoid drawing over the popup when it's going to be redrawn in the same position. (closes #8131) Also avoid redrawing the scrollbar. 文件: src/popupmenu.c, src/proto/popupmenu.pro, src/drawscreen.c, src/globals.h Patch 8.2.2804 问题: Setting buffer local mapping with mapset() changes global mapping. 解决方案: Only set the local mapping. (closes #8143) 文件: src/map.c, src/testdir/test_maparg.vim Patch 8.2.2805 问题: Vim9: cannot use legacy syntax in Vim9 script. 解决方案: Add the :legacy command. 文件: src/ex_cmds.h, runtime/doc/vim9.txt, runtime/doc/index.txt src/ex_cmdidxs.h, src/ex_docmd.c, src/structs.h, src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_assign.vim Patch 8.2.2806 问题: Vim9: using "++nr" as a command might not work. 解决方案: Do not recognize "++" and "--" in a following line as addition or subtraction. 文件: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim Patch 8.2.2807 问题: Build fails with tiny features. 解决方案: Use a dummy function for ex_incdec(). 文件: src/ex_docmd.c Patch 8.2.2808 问题: Vim9: increment and decrement not sufficiently tested. 解决方案: Add assertions. 文件: src/testdir/test_vim9_assign.vim Patch 8.2.2809 问题: Vim9: :def function compilation fails when using :legacy. 解决方案: Reset CMOD_LEGACY when compiling a function. (closes #8137) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2810 问题: Vim9: crash when calling a function in a substitute expression. 解决方案: Set the instructions back to the substitute expression instructions. (closes #8148) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2811 问题: Vim9: error for missing white space doesn't say where it is missing 解决方案: Mention the command. (closes #8149) 文件: src/ex_docmd.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2812 问题: Vim9: still crash when using substitute expression. 解决方案: Put the instruction list in the stack frame. (closes #8154) 文件: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_cmd.vim Patch 8.2.2813 问题: Cannot grep using fuzzy matching. 解决方案: Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes #8152) 文件: runtime/doc/quickfix.txt, src/ex_cmds.c, src/proto/search.pro, src/quickfix.c, src/search.c, src/vim.h, src/testdir/test_quickfix.vim Patch 8.2.2814 (after 8.2.2812) 问题: Vim9: unused variable. (John Marriott) 解决方案: Adjust #ifdef. 文件: src/vim9execute.c Patch 8.2.2815 问题: Status line flickers when redrawing popup menu info. 解决方案: Do not redraw the status line when the focus is in the popup window. (issue #8144) 文件: src/popupmenu.c Patch 8.2.2816 问题: Vim9: comment below expression in lambda causes problems. 解决方案: Use a single space for empty and comment lines. (closes #8156) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2817 问题: Vim9: script sourcing continues after an error. 解决方案: Make an error in any command in "vim9script" abort sourcing. 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.2818 问题: No jump added to jumplist when opening terminal in current window. 解决方案: Call setpcmark(). (closes #8158) 文件: src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.2819 问题: Finishing an abbreviation with a multi-byte char may not work. 解决方案: Escape K_SPECIAL in the typed character. (closes #8160) 文件: src/map.c, src/testdir/test_mapping.vim Patch 8.2.2820 问题: Session file may divide by zero. 解决方案: Avoid writing divide by zero. (closes #8162) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.2821 问题: MS-Windows: unnecessarily loading libraries when registering OLE. 解决方案: Skip loading libraries when invoked with "-register". 文件: src/main.c, src/globals.h, src/os_win32.c Patch 8.2.2822 (after 8.2.2821) 问题: MS-Windows: unnecessarily loading libraries when unregistering OLE. 解决方案: Also skip loading libraries when invoked with "-unregister". Run Vim for README.txt with user privileges. 文件: src/main.c, nsis/gvim.nsi, nsis/README.txt Patch 8.2.2823 问题: MS-Windows: launching Vim from installer doesn't open README. 解决方案: Adjust the quotes. 文件: nsis/gvim.nsi Patch 8.2.2824 问题: MS-Windows: build failure with MSVC. 解决方案: Adjust the list of distributed files. Add hint about python. Adjust path for reading runtime files. 文件: Filelist, src/testdir/shared.vim, src/testdir/test_function_lists.vim Patch 8.2.2825 问题: Code in checkreadonly() not fully tested. 解决方案: Add more tests. (Dominique Pellé, closes #8169) 文件: src/testdir/test_excmd.vim Patch 8.2.2826 问题: Compiler warnings for int to size_t conversion. (Randall W. Morris) 解决方案: Add type casts. 文件: src/map.c, src/quickfix.c Patch 8.2.2827 问题: Test file was not deleted. 解决方案: Uncomment the delete() call. (Dominique Pellé, closes #8172) 文件: src/testdir/test_mksession.vim Patch 8.2.2828 问题: Coverity complains about not checking the rename() return value. 解决方案: Add "(void)", can't do anything in case of a failure. 文件: src/fileio.c Patch 8.2.2829 问题: Some comments are not correct or clear. 解决方案: Adjust the comments. Add test for cursor position. 文件: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_exec_while_if.vim, src/testdir/test_substitute.vim Patch 8.2.2830 问题: Terminal colors are not updated when 'background' is set. 解决方案: Call term_update_colors() for all terminals. (Marcin Szamotulski, closes #8171, closes #8150) 文件: src/terminal.c, src/proto/terminal.pro, src/optionstr.c Patch 8.2.2831 问题: Vim9: expandcmd() not tested. 解决方案: Add a test. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.2832 问题: Operator cancelled by moving mouse when using popup. (Sergey Vlasov) 解决方案: Do not trigger an operator for a mouse move events. (closes #8176) 文件: src/normal.c Patch 8.2.2833 问题: Two key command cancelled by moving mouse when using popup. (Sergey Vlasov) 解决方案: Ignore K_MOUSEMOVE in plain_vgetc(). 文件: src/getchar.c Patch 8.2.2834 问题: Vim9: :cexpr does not work with local variables. 解决方案: Compile :cexpr. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/quickfix.c, src/proto/quickfix.pro, src/testdir/test_quickfix.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2835 (after 8.2.2834) 问题: Vim9: leaking memory in :cexpr. 解决方案: Also free the command line copy. 文件: src/vim9compile.c Patch 8.2.2836 (after 8.2.2834) 问题: Build failure without the +quickfix feature. (John Marriott) 解决方案: Add #ifdef. 文件: src/vim9compile.c, src/vim9execute.c, src/tag.c Patch 8.2.2837 问题: Various code lines not covered by tests. 解决方案: Add test cases. (Dominique Pellé, closes #8178) 文件: src/testdir/test_excmd.vim, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_startup.vim, src/testdir/test_syntax.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.2838 问题: File extension .wrap not recognized. 解决方案: Use dosini filetype for .wrap files. (Liam Beguin, closes #8177) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2839 问题: Default redirection missing "ash" and "dash". 解决方案: Recognize "ash" and "dash". (Natanael Copa, closes #8180) 文件: runtime/doc/options.txt, src/option.c Patch 8.2.2840 问题: Vim9: member operation not fully tested. 解决方案: Add a few tests. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2841 问题: MS-Windows: cursor in wrong position when 'lazyredraw' and 'statusline' are set. 解决方案: Call compute_cmdrow(). (closes #8170, closes #8184) 文件: src/os_win32.c Patch 8.2.2842 问题: Vim9: skip argument to searchpair() is not compiled. 解决方案: Add VAR_INSTR. 文件: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/vim.h, src/evalvars.c, src/typval.c, src/vim9type.c, src/testing.c, src/viminfo.c, src/if_py_both.h, src/json.c, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.2843 (after 8.2.2842) 问题: Vim9: skip argument to searchpairpos() is not compiled. 解决方案: Handle like searchpair(). Also for search() and searchpos(). 文件: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2844 问题: Vim9: memory leak when using searchpair(). 解决方案: Free the v_instr field. 文件: src/typval.c Patch 8.2.2845 问题: MS-Windows: warning for signed/unsigned comparison. 解决方案: Add type cast. 文件: src/terminal.c Patch 8.2.2846 问题: Vim9: "echo Func()" does not give an error for a function without a return value. 解决方案: Give an error. Be more specific about why a value is invalid. 文件: src/globals.h, src/errors.h, src/eval.c, src/evalfunc.c, src/typval.c, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2847 问题: Perl not tested sufficiently. 解决方案: Add test. Also test W17. (Dominique Pellé, closes #8193) 文件: src/testdir/test_arabic.vim, src/testdir/test_perl.vim Patch 8.2.2848 问题: Crash when calling partial. 解决方案: Check for NULL pointer. (Dominique Pellé, closes #8202) 文件: src/eval.c, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_listdict.vim Patch 8.2.2849 问题: Bufwrite not sufficiently tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8192) 文件: src/testdir/test_startup.vim, src/testdir/test_writefile.vim Patch 8.2.2850 问题: Recalling commands from history is not tested. 解决方案: Add tests. (closes #8194) 文件: src/testdir/test_cmdline.vim Patch 8.2.2851 问题: Using <Cmd> mapping on the command line triggers CmdlineChanged. (Naohiro Ono) 解决方案: Jump to cmdline_not_changed if the command line didn't change. (closes #8208) 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.2852 问题: Configure can add --as-needed a second time. 解决方案: Only add --as-needed if not already there. (Natanael Copa, closes #8189, closes #8181) 文件: src/configure.ac, src/auto/configure Patch 8.2.2853 (after 8.2.2851) 问题: Window is not updated after using <Cmd> mapping. 解决方案: So jump to cmdline_changed but skip autocommand. 文件: src/ex_getln.c Patch 8.2.2854 问题: Custom statusline cannot contain % items. 解决方案: Add "%{% expr %}". (closes #8190) 文件: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, src/testdir/test_statusline.vim Patch 8.2.2855 问题: White space after "->" does not give E274. 解决方案: Do not skip white space in legacy script. (closes #8212) 文件: src/eval.c, src/testdir/test_method.vim Patch 8.2.2856 问题: Get readonly error for device that can't be written to. 解决方案: Check for being able to write first. (closes #8205) 文件: src/ex_cmds.c, src/testdir/test_writefile.vim Patch 8.2.2857 问题: Vim9: exception in ISN_INSTR caught at wrong level. 解决方案: Set the starting trylevel in exec_instructions(). (closes #8214) 文件: src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_builtin.vim Patch 8.2.2858 (after 8.2.2857) 问题: Test fails because of changed error message. 解决方案: Adjust the expected error message. 文件: src/testdir/test_ex_mode.vim Patch 8.2.2859 (after 8.2.2857) 问题: Tcl test fails because of changed error message. 解决方案: Adjust the expected error message. 文件: src/testdir/test_tcl.vim Patch 8.2.2860 问题: Adding a text property causes the whole window to be redrawn. 解决方案: Use changed_lines_buf() to only redraw the affected lines. 文件: src/change.c, src/proto/change.pro, src/textprop.c Patch 8.2.2861 问题: Vim9: "legacy return" is not recognized as a return statement. 解决方案: Specifically check for a return command. (closes #8213) 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_expr.vim Patch 8.2.2862 问题: Removing a text property causes the whole window to be redrawn. 解决方案: Use changed_lines_buf() to only redraw the affected lines. 文件: src/textprop.c Patch 8.2.2863 (after 8.2.2862) 问题: Removing a text property does not redraw optimally. 解决方案: Only redraw the lines that mithg actually have been changed. 文件: src/textprop.c Patch 8.2.2864 问题: Vim9: crash when using inline function. 解决方案: Check for NULL pointer. Make using inline function work inside lambda. (closes #8217) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2865 (after 8.2.2864) 问题: Skipping over function body fails. 解决方案: Do not define the function when skipping. 文件: src/userfunc.c Patch 8.2.2866 问题: Vim9: memory leak when using inline function. 解决方案: Remember what strings to free. 文件: src/userfunc.c, src/structs.h, src/eval.c Patch 8.2.2867 (after 8.2.2866) 问题: Build failure. 解决方案: Add missing part of the change. 文件: src/globals.h Patch 8.2.2868 问题: Vim9: When executing a compiled expression the trylevel at start is changed but not restored. (closes #8214) 解决方案: Restore the trylevel at start. 文件: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2869 问题: Using unified diff is not tested. 解决方案: Test all cases also with unified diff. (issue #8197) 文件: src/testdir/test_diffmode.vim Patch 8.2.2870 问题: CmdlineChange event triggered twice for CTRL-R. 解决方案: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg(). (closes #8219) 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.2871 问题: Unnecessary VIM_ISDIGIT() calls, badly indented code. 解决方案: Call skipdigits() on the next character. Improve indenting. (Dominique Pellé, closes #8227) 文件: src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c, src/ops.c, src/tag.c, src/vim9compile.c Patch 8.2.2872 问题: Python tests fail without the channel feature. 解决方案: Add a feature check. (Dominique Pellé, closes #8226) 文件: src/testdir/test_python2.vim, src/testdir/test_python3.vim Patch 8.2.2873 问题: Not enough tests for writing buffers. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8229) 文件: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, src/testdir/test_writefile.vim Patch 8.2.2874 问题: MS-Windows: screen redraws too often. 解决方案: Do not redraw when peeking for a character. (closes #8230, closes #8211) 文件: src/os_win32.c Patch 8.2.2875 问题: Cancelling inputlist() after a digit does not return zero. 解决方案: Always return zero when cancelling. (closes #8231) 文件: src/misc1.c, src/testdir/test_functions.vim Patch 8.2.2876 问题: Configure cannot detect Python 3.10. 解决方案: Use sys.version_info. (closes #8233) 文件: src/configure.ac, src/auto/configure Patch 8.2.2877 问题: Insufficient tests for popup menu rightleft. 解决方案: Add tests. (Yegappan Lakshmanan, closes #8235) 文件: src/testdir/test_popup.vim, src/testdir/dumps/Test_pum_rightleft_01.dump, src/testdir/dumps/Test_pum_rightleft_02.dump, src/testdir/dumps/Test_pum_scrollbar_01.dump, src/testdir/dumps/Test_pum_scrollbar_02.dump Patch 8.2.2878 问题: Vim9: for loop list unpack only allows for one "_". 解决方案: Drop the value when the variable is "_". (closes #8232) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.2879 问题: File extension .hsig not recognized. 解决方案: Use Haskell filetype for .hsig files. (Marcin Szamotulski, closes #8236) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2880 问题: Unified diff fails if actually used. 解决方案: Invoke :diffupdate in the test. Fix the check for working external diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197) 文件: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.2881 问题: Various pieces of code not covered by tests. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8245) 文件: src/testdir/test_const.vim, src/testdir/test_functions.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2882 问题: Vim9: memory leak when lambda has an error. 解决方案: Free the list of argument types on failure. 文件: src/userfunc.c Patch 8.2.2883 问题: MS-Windows manifest file name is misleading. 解决方案: Rename the file. (closes #8241) 文件: .gitignore, .hgignore, Filelist, Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/gvim.exe.mnf, src/vim.manifest, src/vim.rc Patch 8.2.2884 问题: Not enough cscope code is covered by tests. 解决方案: Add a few test cases. (Dominique Pellé, closes #8246) 文件: src/testdir/test_cscope.vim Patch 8.2.2885 问题: searching for \%'> does not match linewise end of line. (Tim Chase) 解决方案: Match end of line if column is MAXCOL. (closes #8238) 文件: src/regexp_nfa.c, src/regexp_bt.c, src/testdir/test_search.vim Patch 8.2.2886 问题: Various pieces of code not covered by tests. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8255) 文件: src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_registers.vim, src/testdir/test_user_func.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.2887 问题: Crash when passing null string to fullcommand(). 解决方案: Check for NULL pointer. (closes #8256) 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.2888 问题: Vim9: "k" command recognized in Vim9 script. 解决方案: Do not recognize "k" or "s" and "d" with flags. 文件: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.2889 问题: Typo and verbose comment in Makefiles. 解决方案: Fix typo. Use @#. (Ken Takata, closes #8252) 文件: Makefile, src/testdir/Makefile Patch 8.2.2890 问题: Text property duplicated when data block splits. 解决方案: Do not continue text prop from previous line. (closes #8261) 文件: src/memline.c, src/structs.h, src/testdir/test_textprop.vim Patch 8.2.2891 问题: Cannot build with Perl 5.34. 解决方案: Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266, closes #8250) 文件: src/if_perl.xs Patch 8.2.2892 问题: Error message contains random characters. 解决方案: Pass the right pointer to error_white_both(). (closes #8272, closes #8263) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.2893 问题: Multi-byte text in popup title shows up wrong. 解决方案: Use the character width instead of the byte length. (Ralf Schandl, closes #8267, closes #8264) 文件: src/popupwin.c, src/message_test.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_multibytetitle.dump Patch 8.2.2894 问题: MS-Windows: using enc_locale() for strftime() might not work. 解决方案: Use wcsftime(). (Ken Takata, closes #8271) 文件: src/time.c Patch 8.2.2895 问题: Vim9: random characters appear in some error messages. 解决方案: Pass the correct pointer. (closes #8277) 文件: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2896 问题: Spellfile functionality not fully tested. 解决方案: Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé, closes #8270) 文件: src/testdir/test_spellfile.vim Patch 8.2.2897 问题: Vim9: can use reserved words at the script level. 解决方案: Check variable names for reserved words. (closes #8253) 文件: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.2898 问题: QuitPre and ExitPre not triggered when GUI window is closed. 解决方案: Call before_quit_autocmds(). (closes #8242) 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/gui.c Patch 8.2.2899 问题: Appveyor script does not detect nmake failure. 解决方案: Explicitly check for executable. (Ken Takata, closes #8281) 文件: ci/appveyor.bat Patch 8.2.2900 问题: QuitPre is triggered before :wq writes the file, which is different from other commands. 解决方案: Trigger QuitPre after writing the file. (closes #8279) 文件: src/ex_docmd.c, src/testdir/test_writefile.vim Patch 8.2.2901 问题: Some operators not fully tested. 解决方案: Add a few test cases. (Yegappan Lakshmanan, closes #8282) 文件: src/testdir/test_cpoptions.vim, src/testdir/test_increment.vim, src/testdir/test_normal.vim, src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim Patch 8.2.2902 问题: Spellfile functionality not fully tested. 解决方案: Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé, closes #8283) 文件: src/testdir/test_spellfile.vim Patch 8.2.2903 问题: Cursor position wrong on wrapped line with 'signcolumn'. 解决方案: Don't add space for showbreak twice. (Christian Brabandt, closes #8262) 文件: src/drawline.c, src/testdir/test_display.vim Patch 8.2.2904 问题: "g$" causes scroll if half a double width char is visible. 解决方案: Advance to the last fully visible character. (closes #8254) 文件: src/normal.c, src/testdir/test_normal.vim Patch 8.2.2905 问题: No error when defaults.vim cannot be loaded. 解决方案: Add an error message. (Christian Brabandt, closes #8248) 文件: runtime/doc/starting.txt, src/errors.h, src/main.c, src/testdir/test_startup.vim Patch 8.2.2906 (after 8.2.2905) 问题: ASAN reports errors for test_startup for unknown reasons. 解决方案: Temporarily disable the new test. 文件: src/testdir/test_startup.vim Patch 8.2.2907 问题: Memory leak when running out of memory. 解决方案: Free the allocated memory. (Dominique Pellé, closes #8284) 文件: src/term.c Patch 8.2.2908 问题: Crash when using a terminal popup window from the cmdline window. 解决方案: Instead of checking cmdwin_type call cmdwin_is_active(). (closes #8286) 文件: src/terminal.c, src/errors.h, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_cmdwin_no_terminal.dump Patch 8.2.2909 问题: Build error with non-Unix system. 解决方案: Always include limits.h. 文件: src/vim.h Patch 8.2.2910 问题: Test for cmdline window and terminal fails on MS-Windows. 解决方案: Skip the test on MS-Windows. 文件: src/testdir/test_cmdline.vim Patch 8.2.2911 问题: Pattern "\%V" does not match all of block selection. (Rick Howe) 解决方案: Use the value of vi_curswant. (closes #8285) 文件: src/regexp.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_block_visual_match.dump Patch 8.2.2912 问题: MS-Windows: most users expect using Unicode. 解决方案: Default 'encoding' to utf-8 on MS-Windows. (Ken Takata, closes #3907) 文件: runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h, src/testdir/test_writefile.vim Patch 8.2.2913 问题: MS-Windows conpty supports using mouse events. 解决方案: When enabling the mouse enable mouse input and disable quick edit mode. (Wez Furlong, closes #8280) 文件: src/os_win32.c Patch 8.2.2914 问题: Cannot paste a block without adding padding. 解决方案: Add "zp" and "zP" which paste without adding padding. (Christian Brabandt, closes #8289) 文件: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, src/register.c, src/vim.h, src/testdir/test_normal.vim, src/testdir/test_visual.vim Patch 8.2.2915 问题: MS-Windows: when using "default" for encoding utf-8 is used. 解决方案: Use the system encoding. (Ken Takata, closes #8300) 文件: src/mbyte.c, runtime/doc/options.txt Patch 8.2.2916 问题: Operators are not fully tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8290) 文件: src/ops.c, src/testdir/test_netbeans.vim, src/testdir/test_normal.vim, src/testdir/test_visual.vim Patch 8.2.2917 问题: Spellfile functionality not fully tested. 解决方案: Add tests for SFX with removal of characters, spelling suggestions with NOBREAK and others. (Dominique Pellé, closes #8293) 文件: src/testdir/test_spellfile.vim Patch 8.2.2918 问题: Builtin function can be shadowed by global variable. 解决方案: Check for builtin function before variable. (Yasuhiro Matsumoto, closes #8302) 文件: src/eval.c, src/testdir/test_functions.vim Patch 8.2.2919 问题: Using ":!command" does not work if the command uses posix_spawn(). 解决方案: Do not call ioctl() with TIOCSCTTY. (Felipe Contreras) 文件: src/os_unix.c Patch 8.2.2920 问题: Still a way to shadow a builtin function. (Yasuhiro Matsumoto) 解决方案: Check the key when using extend(). (issue #8302) 文件: src/eval.c, src/dict.c, src/proto/dict.pro, src/testdir/test_functions.vim Patch 8.2.2921 问题: E704 for script local variable is not backwards compatible. (Yasuhiro Matsumoto) 解决方案: Only give the error in Vim9 script. Also check for function-local variable. 文件: src/dict.c, src/testdir/test_functions.vim Patch 8.2.2922 问题: Computing array length is done in various ways. 解决方案: Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305) 文件: src/arabic.c, src/blowfish.c, src/cindent.c, src/cmdexpand.c, src/cmdhist.c, src/dosinst.c, src/eval.c, src/evalfunc.c, src/ex_docmd.c, src/fileio.c, src/gui_athena.c, src/gui_gtk_x11.c, src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_mzsch.c, src/macros.h, src/main.c, src/map.c, src/mbyte.c, src/memline.c, src/menu.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/optiondefs.h, src/os_win32.c, src/popupwin.c, src/quickfix.c, src/regexp.c, src/screen.c, src/search.c, src/syntax.c, src/term.c, src/terminal.c, src/time.c, src/usercmd.c, src/version.c Patch 8.2.2923 问题: EBCDIC build is broken. 解决方案: Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306) 文件: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro Patch 8.2.2924 问题: Superfluous extern declaration. 解决方案: Delete the declaration. (Ken Takata, closes #8307) 文件: src/main.c Patch 8.2.2925 问题: Vim9: line continuation comment uses legacy syntax. 解决方案: Check for #\ instead of "\. (closes #8295) 文件: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2926 问题: Vim9: no good error for using :legacy in a :def function. 解决方案: Give an explicit error where :legacy is not working. (closes #8309) 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.2927 问题: Test commented out because it fails with ASAN. 解决方案: Only skip the test when running with ASAN. 文件: src/testdir/test_startup.vim Patch 8.2.2928 问题: The evalfunc.c file is too big. 解决方案: Move float related functionality to a separate file. (Yegappan Lakshmanan, closes #8287) 文件: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/float.c, src/proto.h, src/proto/eval.pro, src/proto/float.pro Patch 8.2.2929 问题: Accidentally enable tcl by default. 解决方案: Revert change to Makefile 文件: src/Makefile Patch 8.2.2930 问题: When a popup is visible a mouse move my restart Visual mode. 解决方案: Reset held_button when ending Visual mode. (closes #8318) 文件: src/mouse.c, src/proto/mouse.pro, src/normal.c Patch 8.2.2931 问题: Vim9: line continuation comment still uses legacy syntax in one place. 解决方案: Check for #\ instead of "\ earlier. (closes #8316) 文件: src/scriptfile.c, src/testdir/test_vim9_script.vim Patch 8.2.2932 (after 8.2.2930) 问题: Select mode test fails. 解决方案: Do not always reset the held mouse button. 文件: src/mouse.c, src/normal.c, src/proto/normal.pro Patch 8.2.2933 问题: When 'clipboard' is "unnamed" zp and zP do not work correctly. 解决方案: Pass -1 to str_to_reg() and fix computing the character width instead of using the byte length. (Christian Brabandt, closes #8301, closes #8317) 文件: src/clipboard.c, src/mbyte.c, src/register.c Patch 8.2.2934 (after 8.2.2933) 问题: ASAN error when using text from the clipboard. 解决方案: Get width of each character. 文件: src/register.c Patch 8.2.2935 (after 8.2.2934) 问题: Calculating register width is not always needed. (Christian Brabandt) 解决方案: Only calculate the width when the type is MBLOCK. 文件: src/register.c Patch 8.2.2936 问题: Vim9: converting number to bool uses wrong stack offset. (Salman Halim) 解决方案: Include the offset in the 2BOOL command. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2937 问题: Popup test fails if rightleft feature not enabled. 解决方案: Check that the rightleft feature is available. (Dominique Pellé, closes #8321) 文件: src/testdir/test_popup.vim Patch 8.2.2938 问题: After using motion force from feedkeys() it may not be reset. 解决方案: Clear motion_force in clearop(). (closes #8323) 文件: src/normal.c, src/testdir/test_visual.vim Patch 8.2.2939 问题: GTK: righthand scrollbar does not show with split window. 解决方案: Adjust padding when two scrollbars are used. (Matt Wozniski, closes #8324) 文件: src/gui_gtk.c Patch 8.2.2940 问题: MS-Windows: cannot see the size of the text area when resizing the gvim window. 解决方案: Show a tooltip with the text size. (Ken Takata, closes #8326) 文件: src/gui_w32.c Patch 8.2.2941 问题: Vim9: using =expr does not handle a list of strings. 解决方案: Convert a list to a string and escape each item. (closes #8310) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2942 问题: Vim9: internal error when calling function with too few arguments 解决方案: Check for argument count to be too few. (closes #8325) 文件: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2943 问题: Vim9: check for argument count ignores default values. 解决方案: Take default argument values into account. 文件: src/vim9execute.c Patch 8.2.2944 问题: Vim9: no error when using job or channel as a string. 解决方案: Be more strict about conversion to string. (closes #8312) 文件: src/typval.c, src/job.c, src/proto/job.pro, src/channel.c, src/proto/channel.pro, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.2945 问题: Some buffer related code is not tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8320) 文件: src/termlib.c, src/testdir/test_excmd.vim, src/testdir/test_recover.vim, src/testdir/test_swap.vim, src/testdir/test_visual.vim Patch 8.2.2946 问题: Vim9: substitute expression cannot be a List in a :def function. 解决方案: Use typval2string(). (closes #8330) 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.2947 问题: Build failure without the channel feature. 解决方案: Add back #ifdef. (John Marriott) 文件: src/eval.c Patch 8.2.2948 问题: Substitute() accepts a number but not a float expression. 解决方案: Also accept a float. (closes #8331) 文件: src/typval.c, src/testdir/test_substitute.vim Patch 8.2.2949 (after 8.2.2948) 问题: Tests failing because there is no error for float to string conversion. 解决方案: Change the check for failure to check for correct result. Make some conversions strict in Vim9 script. 文件: src/evalfunc.c, src/float.c, src/findfile.c, src/json.c, src/filepath.c, src/testdir/test_eval_stuff.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_listdict.vim, src/testdir/test_glob2regpat.vim Patch 8.2.2950 问题: Sound code not fully tested. 解决方案: Add more sound tests. (Dominique Pellé, closes #8332) 文件: src/testdir/test_sound.vim Patch 8.2.2951 问题: Vim9: cannot use heredoc in :def function for :python, :lua, etc. 解决方案: Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT instruction. 文件: src/userfunc.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2952 问题: Recover test fails on big endian systems. 解决方案: Disable the failing test on big endian systems. (Yegappan Lakshmanan, closes #8335) 文件: src/testdir/test_recover.vim, src/testdir/test_swap.vim Patch 8.2.2953 (after 8.2.2951) 问题: Vim9: leaking memory when using heredoc script. 解决方案: Free the first line. 文件: src/vim9execute.c Patch 8.2.2954 问题: Short file name extension for Scala not recognized. 解决方案: Recognize *.sc. (closes #8337) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2955 问题: Vim9: using filter in compiled command does not work. 解决方案: Generate EXEC including the command modifier. 文件: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.c, src/proto/ex_cmds.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.2956 问题: Vim9: need to plan for future additions. 解决方案: Reserve commands for future use: :type, :class, :enum. 文件: src/ex_cmds.h, src/ex_cmdidxs.h Patch 8.2.2957 问题: Using getchar() in Vim9 script is problematic. 解决方案: Add getcharstr(). (closes #8343) 文件: runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c, src/proto/getchar.pro, src/testdir/test_functions.vim Patch 8.2.2958 (after 8.2.2957) 问题: Function list test fails. 解决方案: Add newly added function to the list. Fix typo. 文件: runtime/doc/usr_41.txt, src/testdir/test_function_lists.vim Patch 8.2.2959 问题: sound_playfile() is not tested on MS-Windows. 解决方案: Make it work and enable the test. (Dominique Pellé, closes #8338) 文件: src/sound.c, src/testdir/test_sound.vim Patch 8.2.2960 问题: Swap file recovery not sufficiently tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8339) 文件: src/testdir/test_recover.vim Patch 8.2.2961 问题: Keys typed during a :normal command are discarded. 解决方案: Concatenate saved typeahead and typed keys. (closes #8340) 文件: src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c, src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro Patch 8.2.2962 问题: MS-Windows command line arguments have wrong encoding. 解决方案: Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347) 文件: src/os_win32.c Patch 8.2.2963 问题: GUI: mouse move may start Visual mode with a popup visible. 解决方案: Add special code for mouse move. (closes #8318) 文件: src/vim.h, src/gui.c, src/keymap.h, src/term.c Patch 8.2.2964 问题: Vim9: hang when using space after ->. (Naohiro Ono) 解决方案: Skip over white space to find the function name. (closes #8341) 文件: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.2965 问题: Vim9: crash when calling function that failed to compile. 解决方案: Fail when trying to call the function. (closes #8344) 文件: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.2966 问题: ml_get errors after recovering a file. (Yegappan Lakshmanan) 解决方案: Fix the cursor position after deleting lines. 文件: src/memline.c Patch 8.2.2967 问题: Vim9: crash when using two levels of partials. 解决方案: Add outer_ref_T and use it in the execution context. 文件: src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.2968 (after 8.2.2967) 问题: Vim9: memory leak 解决方案: Unreference pt_outer of partial. 文件: src/eval.c Patch 8.2.2969 问题: Subtracting from number option fails when result is zero. (Ingo Karkat) 解决方案: Reset the string value when using the numeric value. (closes #8351) 文件: src/evalvars.c, src/testdir/test_vimscript.vim Patch 8.2.2970 问题: Python configure check uses deprecated command. 解决方案: Use sysconfig instead of distutils if possible. (Zdenek Dohnal, closes #8354) 文件: src/configure.ac, src/auto/configure Patch 8.2.2971 问题: Cannot yank a block without trailing spaces. 解决方案: Add the "zy" command. (Christian Brabandt, closes #8292) 文件: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, src/ops.c, src/register.c, src/structs.h, src/testdir/test_visual.vim Patch 8.2.2972 问题: "%bd" tries to delete popup window buffers, which fails. (Ralf Schandl) 解决方案: Do not try to delete a popup window buffer. (closes #8349) 文件: src/buffer.c, src/vim.h, src/testdir/test_popupwin.vim Patch 8.2.2973 问题: Fix for recovery and diff mode not tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8352) 文件: src/testdir/test_diffmode.vim, src/testdir/test_prompt_buffer.vim, src/testdir/test_recover.vim Patch 8.2.2974 问题: Greek spell checking uses wrong case folding. 解决方案: Fold capital sigma depending on whether it is at the end of a word or not. (closes #299) 文件: src/spell.c, src/proto/spell.pro, src/spellfile.c, src/spellsuggest.c Patch 8.2.2975 问题: Vim9: can only use an autoload function name as a string. 解决方案: Load the autoload script when encountered. (closes #8124) 文件: src/vim9compile.c, src/evalvars.c, src/scriptfile.c, src/testdir/test_vim9_func.vim Patch 8.2.2976 (after 8.2.2975) 问题: Build failure without the +eval feature. 解决方案: Add #ifdefs. 文件: src/scriptfile.c Patch 8.2.2977 问题: Crash when using a null function reference. (Naohiro Ono) 解决方案: Check for an invalid function name. (closes #8367) 文件: src/eval.c, src/errors.h, src/testdir/test_functions.vim Patch 8.2.2978 (after 8.2.2977) 问题: Warning for uninitialized variable. 解决方案: Set return value to FAIL. 文件: src/eval.c Patch 8.2.2979 问题: Not all options code is covered by tests. 解决方案: Add more tests for options. (Yegappan Lakshmanan, closes #8369) 文件: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_help.vim, src/testdir/test_mksession.vim, src/testdir/test_options.vim, src/testdir/test_vartabs.vim, src/testdir/test_window_cmd.vim Patch 8.2.2980 问题: Popup window test is a bit flaky. 解决方案: Add a redraw command. 文件: src/testdir/test_popupwin.vim Patch 8.2.2981 问题: Recovery test is not run on big-endian systems. 解决方案: Make it work on big-endian systems. (James McCoy, closes #8368) 文件: src/testdir/test_recover.vim Patch 8.2.2982 问题: Vim9: future commands are not reserved yet. 解决方案: Add commands to be implemented later. Make "this" a reserved name. 文件: runtime/doc/vim9.txt, src/ex_cmds.h, src/ex_cmdidxs.h, src/vim9script.c, src/testdir/test_vim9_assign.vim Patch 8.2.2983 问题: Vim9: an inline function requires specifying the return type. 解决方案: Make the return type optional. 文件: src/eval.c, src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.2984 (after 8.2.2983) 问题: Vim9: Test fails because of missing return statement. 解决方案: When type is unknown set type to void. 文件: src/vim9compile.c Patch 8.2.2985 问题: Vim9: a compiled function cannot be debugged. 解决方案: Add initial debugging support. 文件: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, src/vim.h, src/eval.c, src/vim9execute.c, src/userfunc.c, src/vim9type.c, src/testdir/test_debugger.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.2986 问题: Build failure without the profile feature. 解决方案: Add #ifdef. 文件: src/vim9compile.c Patch 8.2.2987 问题: Build failure with normal features. 解决方案: Remove #define. 文件: src/vim9execute.c Patch 8.2.2988 问题: Vim9: debugger test fails. 解决方案: Get the debugger instructions when needed. 文件: src/vim.h, src/vim9.h Patch 8.2.2989 问题: Vim9: memory leak when debugging a :def function. 解决方案: Free the debug instructions. 文件: src/vim9compile.c Patch 8.2.2990 问题: Jupyter Notebook files are not recognized. 解决方案: Recognize *.ipynb. (closes #8375) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.2991 问题: Vim9: no completion for :vim9 and :legacy. 解决方案: Expand argument as a command. (closes #8377) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.2992 问题: Vim9: completion for :disassemble is incomplete. 解决方案: Recognize the "debug" and "profile" arguments. 文件: src/cmdexpand.c, src/vim9execute.c, src/proto/vim9execute.pro, src/vim.h, src/testdir/test_cmdline.vim Patch 8.2.2993 问题: 'fileencodings' default value should depend on 'encoding'. (Gary Johnson) 解决方案: When 'encoding' is "utf-8" use a different default value for 'fileencodings'. 文件: src/mbyte.c, src/option.c, src/proto/option.pro, src/testdir/test_options.vim Patch 8.2.2994 问题: Various code is not fully tested. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8378) 文件: src/testdir/test_excmd.vim, src/testdir/test_mapping.vim, src/testdir/test_modeline.vim, src/testdir/test_options.vim, src/testdir/test_paste.vim, src/vim9compile.c Patch 8.2.2995 问题: Linker errors with dynamic Python 3.10. 解决方案: Add a couple of library entries. (Zdenek Dohnal, closes #8381, closes #8356) 文件: src/if_python3.c Patch 8.2.2996 问题: Vim9: when debugging cannot inspect local variables. 解决方案: Make local variables available when debugging. 文件: src/vim9execute.c, src/proto/vim9execute.pro, src/vim9compile.c, src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.2997 (after 8.2 2996) 问题: Vim9: disassemble test fails. 解决方案: Adjust expected output. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.2998 (after 8.2 2996) 问题: Vim9: disassemble test fails. 解决方案: Add missing call to lookup_debug_var(). 文件: src/evalvars.c Patch 8.2.2999 问题: Balloon sometimes does not hide with GTK 3. 解决方案: Also listen to GDK_LEAVE_NOTIFY. (Johannes Stezenbach) 文件: src/gui_beval.c Patch 8.2.3000 问题: Vim9: warning for uninitialized variable. 解决方案: Add initialization. (John Marriott) 文件: src/vim9compile.c Patch 8.2.3001 问题: Vim9: memory leak when compilation fails. 解决方案: Free the list of variable names. 文件: src/vim9compile.c Patch 8.2.3002 问题: Vim doesn't abort on a fatal Tcl error. 解决方案: Change emsg() to iemsg(). (Dominique Pellé, closes #8383) 文件: src/if_tcl.c Patch 8.2.3003 问题: Vim9: closure compiled with wrong compile type. 解决方案: Use COMPILE_TYPE() when calling a function. (closes #8384) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3004 问题: Vim9: error for missing colon given while skipping. 解决方案: Do not give the error when skipping. (closes #8385) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.3005 问题: Vim9: using a void value does not give a proper error message. 解决方案: Give a clear error message. (closes #8387) 文件: src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3006 问题: Crash when echoing a value very early. (Naruhiko Nishino) 解决方案: Do not use a NUL to truncate the message, make a copy. (closes #8388) 文件: src/message.c, src/testdir/test_startup.vim Patch 8.2.3007 (after 8.2.3005) 问题: Vim9: test for void value fails. 解决方案: Adjust expected error. Do not make a copy of void. 文件: src/typval.c, src/testdir/test_functions.vim Patch 8.2.3008 (after 8.2.3006) 问题: Startup test may hang. 解决方案: Add quit command in the script. 文件: src/testdir/test_startup.vim Patch 8.2.3009 (after 8.2.3006) 问题: Startup test may hang. 解决方案: Do not run the test in the GUI. 文件: src/testdir/test_startup.vim Patch 8.2.3010 问题: Not enough testing for viminfo code. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #8390) 文件: src/register.c, src/testdir/test_fileformat.vim, src/testdir/test_smartindent.vim, src/testdir/test_viminfo.vim Patch 8.2.3011 问题: Vim9: cannot get argument values during debugging. 解决方案: Lookup names in the list of arguments. Put debug instruction halfway for command. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3012 问题: When 'rightleft' is set the line number is sometimes drawn reversed. 解决方案: Adjust how space is handled. (Christian Brabandt, closes #8389, closes #8391) 文件: src/drawline.c, src/testdir/test_number.vim Patch 8.2.3013 问题: Vim: when debugging only the first line of a command using line continuation is displayed. 解决方案: Find the next command and concatenate lines until that one. (closes #8392) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3014 问题: Coverity warns for freeing static string. 解决方案: Do not assign static string to pointer. (Dominique Pellé, closes #8397) 文件: src/vim9execute.c Patch 8.2.3015 问题: Vim9: Assigning to @# requires a string. (Naohiro Ono) 解决方案: Accent a number or a string. (closes #8396) 文件: src/vim9compile.c, src/vim9execute.c, src/globals.h, src/testdir/test_vim9_assign.vim Patch 8.2.3016 问题: Confusing error when expression is followed by comma. 解决方案: Give a different error for trailing text. (closes #8395) 文件: src/eval.c, src/testdir/test_let.vim, src/testdir/test_eval_stuff.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, src/testdir/test_vimscript.vim Patch 8.2.3017 问题: Vim9: debugger shows too many lines. 解决方案: Truncate at a comment, "enddef", etc. (closes #8392) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3018 问题: Formatting using quickfixtextfunc is lost when updating location lists for different buffers. (Yorick Peterse) 解决方案: Use the right window for the location list. (Yegappan Lakshmanan, closes #8400, closes #8403) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3019 问题: Location list only has the start position. 解决方案: Make it possible to add an end position. (thinca, closes #8393) 文件: runtime/doc/eval.txt, src/quickfix.c, src/testdir/dumps/Test_quickfix_cwindow_1.dump, src/testdir/dumps/Test_quickfix_cwindow_2.dump, src/testdir/test_quickfix.vim, src/testdir/test_tagjump.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3020 问题: Unreachable code. 解决方案: Remove the code. (closes #8406) 文件: src/ex_docmd.c Patch 8.2.3021 问题: Spaces allowed between option name and "!", "?", etc. 解决方案: Disallow spaces in Vim9 script, it was not documented. (closes #8408) 文件: src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3022 问题: Available encryption methods are not strong enough. 解决方案: Add initial support for xchacha20. (Christian Brabandt, closes #8394) 文件: .github/workflows/ci.yml, runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/various.txt, src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, src/blowfish.c, src/bufwrite.c, src/config.h.in, src/configure.ac, src/crypt.c, src/crypt_zip.c, src/errors.h, src/evalfunc.c, src/feature.h, src/fileio.c, src/memline.c, src/option.c, src/optionstr.c, src/proto/blowfish.pro, src/proto/crypt.pro, src/proto/crypt_zip.pro, src/structs.h, src/testdir/samples/crypt_sodium_invalid.txt, src/testdir/test_crypt.vim, src/undo.c, src/version.c Patch 8.2.3023 问题: Vim9: arguments for execute() not checked at compile time. 解决方案: Add a function to check the argument types. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3024 (after 8.2.3023) 问题: execute() function test fails. 解决方案: Adjust test for different error. 文件: src/testdir/test_execute_func.vim Patch 8.2.3025 问题: Not enough tests for quickfix end_col and end_lnum. 解决方案: Add a few more test cases. (Shane-XB-Qian, closes #8409) 文件: src/testdir/test_quickfix.vim Patch 8.2.3026 问题: Vim9: cannot set breakpoint in compiled function. 解决方案: Check for breakpoint when calling a function. 文件: src/vim9execute.c, src/structs.h, src/vim.h, src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3027 问题: Vim9: breakpoint in compiled function not always checked. 解决方案: Check for breakpoint when calling compiled function from compiled function. 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3028 问题: GUI mouse events not tested. 解决方案: Add test_gui_mouse_event(). Add mouse tests. Also add a few viminfo tests. (Yegappan Lakshmanan, closes #8407) 文件: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_viminfo.vim, src/testing.c Patch 8.2.3029 问题: Vim9: crash when using operator and list unpack assignment. (Naohiro Ono) 解决方案: Get variable value before operation. (closes #8416) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3030 问题: Coverity reports a memory leak. 解决方案: Fix the leak and a few typos. (Dominique Pellé, closes #8418) 文件: src/crypt.c, src/errors.h Patch 8.2.3031 问题: No error if a function name starts with an underscore. (Naohiro Ono) 解决方案: In Vim9 script disallow a function name starting with an underscore, as is mentioned in the help. (closes #8414) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3032 问题: Build problems with MSVC, other crypt issues with libsodium. 解决方案: Adjust MSVC makefile. Disable swap file only when 'key' is set. Adjust error message used when key is wrong. Fix Coverity issues. (Christian Brabandt, closes #8420, closes #8411) 文件: src/Make_mvc.mak, src/crypt.c, src/errors.h, src/fileio.c, src/memline.c, src/proto/crypt.pro Patch 8.2.3033 问题: No error when using alpha delimiter with :global. 解决方案: Check the delimiter like with :substitute. (closes #8415) 文件: src/ex_cmds.c, src/testdir/test_global.vim Patch 8.2.3034 问题: Installing packages on github CI sometimes fails. 解决方案: Update package information first. (Christian Brabandt, closes #8432) 文件: .github/workflows/ci.yml Patch 8.2.3035 问题: Vim9: crash when calling :def function with partial and return type is not set. 解决方案: When the return type is not set handle like the return type is unknown. (closes #8422) 文件: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.3036 问题: Vim9: builtin function arguments not checked at compile time. 解决方案: Add more argument type specs. Check arguments to test_setmouse() and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425) 文件: src/evalfunc.c, src/testdir/test_assert.vim, src/testdir/test_gui.vim, src/testdir/test_popupwin.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.3037 问题: Configure reports libcanberra when checking for libsodium. 解决方案: Adjust the message. (Ozaki Kiichi, closes #8435) 文件: src/configure.ac, src/auto/configure Patch 8.2.3038 问题: Amiga built-in version string doesn't include build date. 解决方案: Add the build date if available. (Ola Söder, closes #8437) 文件: src/os_amiga.c Patch 8.2.3039 问题: Vim9: breakpoint at a comment line does not work. 解决方案: Add the comment line number to the debug instruction. (closes #8429) 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_debugger.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3040 问题: GUI: dropping files not tested. 解决方案: Add test_gui_drop_files() and tests. (Yegappan Lakshmanan, closes #8434) 文件: runtime/doc/eval.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/gui.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testing.c Patch 8.2.3041 问题: Detecting if the process of a swap file is running fails if the process is owned by another user. 解决方案: Check for the ESRCH error. (closes #8436) 文件: src/os_unix.c Patch 8.2.3042 (after 8.2.3041) 问题: Swap file test fails. 解决方案: Check for a very high process ID instead of one, which should be running. 文件: src/testdir/test_swap.vim Patch 8.2.3043 问题: Amiga: cannot get the shell size on MorphOS and AROS. 解决方案: Use control sequences. (Ola Söder, closes #8438) 文件: src/os_amiga.c Patch 8.2.3044 问题: Amiga MorphOS and AROS: process ID is not valid. 解决方案: Use FindTask to return something which is unique to all processes. (Ola Söder, closes #8444) 文件: src/os_amiga.c Patch 8.2.3045 问题: Minor typos. 解决方案: Fix the typos. (Christian Brabandt, closes #8441) 文件: src/VisVim/README_VisVim.txt, src/evalfunc.c, src/testdir/vim9.vim Patch 8.2.3046 问题: Amiga MorphOS: Term mode is set using DOS packets. 解决方案: Use the same way of setting term mode on all next gen Amiga-like systems. (Ola Söder, closes #8445) 文件: src/os_amiga.c Patch 8.2.3047 问题: Increment and decrement don't allow for next command. 解决方案: Allow for comment and next command. (closes #8442) 文件: src/ex_cmds.h, src/vim9script.c, src/testdir/test_vim9_assign.vim Patch 8.2.3048 问题: Strange error for white space after ++ command. 解决方案: Check for white space explicitly. (closes #8440) 文件: src/vim9script.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3049 问题: JSON patch file not recognized. 解决方案: Recognize json-patch as json. (Kevin Locke, closes #8450) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3050 问题: Cannot recognize elixir files. 解决方案: Recognize Elixir-specific files. Check if an .ex file is Euphoria or Elixir. (Austin Gatlin, closes #8401, closes #8446) 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3051 问题: Vim9: for loop with one list variable does not work. 解决方案: Use a separate flag for unpacking a list. (closes #8452) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3052 问题: Vim9: "legacy call" does not work. 解决方案: Do not skip "call" after "legacy". (closes #8454) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3053 问题: Vim9: cannot assign to @@ in :def function 解决方案: Handle '@' like '"'. (closes #8456) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3054 问题: Vim9: unpack assignment using "_" after semicolon fails. 解决方案: Drop the expression result. (closes #8453) 文件: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.3055 问题: Strange error for assigning to "x.key" on non-dictionary. 解决方案: Add a specific error message. (closes #8451) 文件: src/eval.c, src/errors.h, src/testdir/test_vim9_assign.vim, src/testdir/test_listdict.vim, src/testdir/test_let.vim Patch 8.2.3056 问题: Vim9: using default value in lambda gives confusing error. 解决方案: Pass "default_args" on the first pass to get the arguments. (closes #8455) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3057 问题: Vim9: debugger test fails with normal features and +terminal. (Dominique Pellé) 解决方案: Adjust the INSTRUCTIONS macro. (closes #8460) 文件: src/vim9.h Patch 8.2.3058 (after 8.2.3056) 问题: Vim9: cannot use ternary operator in parentheses. 解决方案: Do not use "==" for a default argument value. (closes #8462) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3059 (after 8.2.3056) 问题: Vim9: memory leak when using lambda. 解决方案: Do not store the default value strings when skipping. 文件: src/userfunc.c Patch 8.2.3060 (after 8.2.3056) 问题: Vim9: cannot use ternary operator in parentheses. 解决方案: Do not use "=~" for a default argument value. (closes #8462) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3061 问题: Testing the shell option is incomplete and spread out. 解决方案: Move shell tests to one file and increase coverage. (Yegappan Lakshmanan, closes #8464) 文件: src/testdir/Make_all.mak, src/testdir/test_functions.vim, src/testdir/test_options.vim, src/testdir/test_shell.vim, src/testdir/test_system.vim Patch 8.2.3062 问题: Internal error when adding several text properties. 解决方案: Do not handle text properties when deleting a line for splitting a data block. (closes #8466) 文件: src/structs.h, src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3063 问题: Crash when switching 'cryptmethod' to xchaha20 with an existing undo file. (Martin Tournoij) 解决方案: Disable reading undo file when decoding can't be done inplace. (issue #8467) 文件: src/fileio.c, src/bufwrite.c Patch 8.2.3064 问题: Vim9: in script cannot set item in uninitialized list. 解决方案: When a list is NULL allocate an empty one. (closes #8461) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.3065 问题: Vim9: error when sourcing script twice and reusing a function name. 解决方案: Check if the function is dead. (closes #8463) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3066 问题: Vim9: debugging lambda does not work. 解决方案: Use the compile type of the function when compiling a lambda. (closes #8412) 文件: src/vim9compile.c, src/testdir/test_debugger.vim Patch 8.2.3067 问题: Building fails with Athena. (Elimar Riesebieter) 解决方案: Adjust #ifdefs and add the 'drop_file' feature. 文件: src/evalfunc.c, src/testing.c, src/testdir/test_gui.vim Patch 8.2.3068 问题: Unicode tables are slightly outdated. 解决方案: Update the tables for Unicode release 13. (Christian Brabandt closes #8430) 文件: runtime/tools/unicode.vim, src/mbyte.c Patch 8.2.3069 问题: Error messages are spread out. 解决方案: Move some error messages to errors.h. Use clearer names. 文件: src/errors.h, src/globals.h, src/arglist.c, src/buffer.c, src/channel.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/filepath.c, src/fold.c, src/getchar.c, src/indent.c, src/list.c, src/map.c, src/mark.c, src/normal.c, src/ops.c, src/optionstr.c, src/popupwin.c, src/quickfix.c, src/spellfile.c, src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/window.c Patch 8.2.3070 问题: Not enough testing for shell use. 解决方案: Add a bit more testing. (Yegappan Lakshmanan, closes #8469) 文件: src/testdir/test_shell.vim, src/testdir/test_startup.vim Patch 8.2.3071 问题: Shell options are not set properly for PowerShell. 解决方案: Use better option defaults. (Mike Williams, closes #8459) 文件: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, src/fileio.c, src/misc2.c, src/option.c, src/os_win32.c, src/testdir/test_shell.vim Patch 8.2.3072 问题: The "zy" command does not work well when 'virtualedit' is set to "block". (Johann Höchtl) 解决方案: Make endspaces zero. (Christian Brabandt, closes #8468, closes #8448) 文件: src/register.c, src/testdir/test_visual.vim Patch 8.2.3073 问题: When cursor is moved for block append wrong text is inserted. 解决方案: Calculate an offset. (Christian Brabandt, closes #8433, closes #8288) 文件: src/ops.c, src/testdir/test_blockedit.vim, src/testdir/test_visual.vim Patch 8.2.3074 问题: popup_atcursor() uses wrong position with concealing. 解决方案: Keep w_wcol in conceal_check_cursor_line(). (closes #8476) 文件: src/screen.c, src/proto/screen.pro, src/normal.c, src/edit.c, src/ui.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_atcursor_pos.dump Patch 8.2.3075 问题: Xxd always reports an old version string. (Åsmund Ervik) 解决方案: Update the version string with the last known change date. (Jürgen Weigert, closes #8475) 文件: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3076 问题: Vim9: using try in catch block causes a hang. 解决方案: Save and restore the ec_in_catch flag. (closes #8478) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3077 问题: Vim9: an error in a catch block is not reported. 解决方案: Put the "in catch" flag in the try stack. (closes #8478) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3078 问题: Vim9: profile test fails. 解决方案: Make throw in :catch jump to :finally. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3079 问题: Powershell core not supported by default. 解决方案: Set option defaults for "pwsh". (Mike Williams, closes #8481) 文件: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_win32.txt, src/fileio.c, src/misc2.c, src/option.c, src/os_win32.c, src/testdir/test_shell.vim Patch 8.2.3080 问题: Recover test fails on 32bit systems. (Ondřej Súkup) 解决方案: Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485, closes #8479) 文件: src/testdir/test_recover.vim Patch 8.2.3081 问题: Cannot catch errors in a channel command. 解决方案: Instead of skipping the error make it silent. (closes #8477) 文件: src/channel.c Patch 8.2.3082 问题: A channel command "echoerr" does not show anything. 解决方案: Do not use silent errors when using an "echoerr" command. (closes #8494) 文件: src/channel.c, src/testdir/test_channel.py, src/testdir/test_channel.vim Patch 8.2.3083 问题: Crash when passing null string to charclass(). 解决方案: Bail out when string pointer is NULL. (Christian Brabandt, closes #8498, closes #8260) 文件: src/mbyte.c, src/testdir/test_functions.vim Patch 8.2.3084 问题: Vim9: builtin function argument types are not checked at compile time. 解决方案: Add argument types. (Yegappan Lakshmanan, closes #8503) 文件: src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3085 问题: JSONC files are not recognized. 解决方案: Recognize .jsonc files. (Izhak Jakov, closes #8500) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3086 问题: Vim9: breakpoint on "for" does not work. 解决方案: Use the right line number in ISN_DEBUG. (closes #8486) 文件: src/vim9compile.c, src/testdir/test_debugger.vim Patch 8.2.3087 问题: Gemtext files are not recognized. 解决方案: Recognize .gmi and .gemini files. (closes #8427) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3088 问题: With 'virtualedit' set to "block" Visual highlight is wrong after using "$". (Marco Trosi) 解决方案: Do not set w_old_cursor_lcol to MAXCOL. (closes #8495) 文件: src/drawscreen.c, src/testdir/test_visual.vim, src/testdir/dumps/Test_visual_block_with_virtualedit.dump Patch 8.2.3089 问题: Garbage collection has useless code. 解决方案: Bail out when aborting. (closes #8504) 文件: src/userfunc.c Patch 8.2.3090 问题: With concealing enabled and indirectly closing a fold the cursor may be somewhere in a folded line. 解决方案: Recompute the cursor position when the cursor line can be concealed. (closes #8480) 文件: src/drawscreen.c Patch 8.2.3091 问题: Vim9: default argument expression cannot use previous argument 解决方案: Correct argument index. (closes #8496) 文件: src/vim9compile.c, src/structs.h, src/testdir/test_vim9_func.vim Patch 8.2.3092 问题: Vim9: builtin function test fails without the +channel feature. 解决方案: Check the +channel feature is supported. (Dominique Pellé, closes #8507) 文件: runtime/doc/eval.txt, src/testdir/test_vim9_builtin.vim Patch 8.2.3093 问题: tablabel_tooltip test fails with Athena. (Dominique Pellé) 解决方案: Skip the test when using Athena. (closes #8508) 文件: src/testdir/test_gui.vim, src/testdir/check.vim Patch 8.2.3094 问题: Test_popup_atcursor_pos() fails without the conceal feature. 解决方案: Add a check for the conceal feature. (Dominique Pellé, closes #8505) 文件: src/testdir/test_popupwin.vim Patch 8.2.3095 (after 8.2.3088) 问题: With 'virtualedit' set to "block" block selection is wrong after using "$". (Marco Trosi) 解决方案: Compute the longest selected line. (closes #8495) 文件: src/drawscreen.c, src/testdir/test_visual.vim, src/testdir/dumps/Test_visual_block_with_virtualedit2.dump Patch 8.2.3096 问题: Temp files remain after running tests. 解决方案: Delete the right files. (Dominique Pellé, closes #8509) 文件: src/testdir/test_debugger.vim, src/testdir/test_lambda.vim, src/testdir/test_visual.vim Patch 8.2.3097 问题: Crash when using "quit" at recovery prompt and autocommands are triggered. 解决方案: Block autocommands when creating an empty buffer to use as the current buffer. (closes #8506) 文件: src/buffer.c, src/testdir/test_swap.vim Patch 8.2.3098 问题: Popup window test is flaky on MS-Windows with GUI. 解决方案: Skip the check in this situation. 文件: src/testdir/test_popupwin.vim Patch 8.2.3099 问题: Vim9: missing catch/finally not reported at script level. 解决方案: Give an error. (closes #8487) 文件: src/structs.h, src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3100 问题: Vim9: no error when using type with unknown number of arguments. 解决方案: Do not ignore argument count of -1. (closes #8492) 文件: src/vim9type.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.3101 问题: Missing function prototype for vim_round(). 解决方案: Add the prototype. 文件: src/proto/float.pro Patch 8.2.3102 (after 8.2.3097) 问题: Test for crash fix does not fail without the fix. 解决方案: Adjust the test sequence. (closes #8506) 文件: src/testdir/test_swap.vim Patch 8.2.3103 (after 8.2.3102) 问题: Swap test may fail on some systems when jobs take longer to exit. 解决方案: Use different file names. 文件: src/testdir/test_swap.vim Patch 8.2.3104 问题: Vim9: unspecified function type causes type error. 解决方案: Don't check type when min_argcount is negative. (issue #8492) 文件: src/globals.h, src/vim9type.c, src/testdir/test_vim9_assign.vim Patch 8.2.3105 问题: Vim9: type of partial is wrong when it has arguments. 解决方案: Subtract arguments from the count. (issue #8492) 文件: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3106 问题: Vim9: confusing line number reported for error. 解决方案: Use the start line number for the store instruction. (closes #8488) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3107 问题: Vim9: error for arguments while type didn't specify arguments. 解决方案: Do not update that type to check when no argument count is specified. (closes #8492) 文件: src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3108 问题: Test for remote_foreground() fails. (Elimar Riesebieter) 解决方案: Check that $DISPLAY is set. (Christian Brabandt) 文件: src/testdir/check.vim, src/testdir/test_clientserver.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3109 问题: Check for $DISPLAY never fails. 解决方案: Use eval(). 文件: src/testdir/check.vim Patch 8.2.3110 问题: A pattern that matches the cursor position is a bit complicated. 解决方案: Use a dot to indicate the cursor line and column. (Christian Brabandt, closes #8497, closes #8179) 文件: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.3111 问题: Vim9: confusing error with extra whitespace before colon. 解决方案: Check for colon after white space. (closes #8513) 文件: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3112 (after 8.2.3090) 问题: With concealing enabled and indirectly closing a fold the cursor may be somewhere in a folded line when it is not on the first line of the fold. 解决方案: Check if the cursor is somewhere in the folded text. 文件: src/drawscreen.c Patch 8.2.3113 问题: No error when for loop variable shadows script variable. 解决方案: Check for the error. (closes #8512) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3114 问题: Amiga-like systems: build error checking for running process 解决方案: Only build swapfile_process_running() on systems where it is actually used. (Ola Söder, closes #8519) 文件: src/memline.c Patch 8.2.3115 问题: Coverity complains about free_wininfo() use. 解决方案: Add a condition that "wip2" is not equal to "wip". (Neovim #14996) 文件: src/window.c Patch 8.2.3116 问题: Vim9: crash when debugging a function with line continuation. 解决方案: Check for a NULL pointer. (closes #8521) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3117 问题: Vim9: type not properly checked in for loop. 解决方案: Have items() return a list of lists. Add runtime type checks. (closes #8515) 文件: src/evalfunc.c, src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3118 问题: Vim9: "any" type not handled correctly in for loop. 解决方案: Change compile time check into runtime check. (closes #8516) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3119 问题: Compiler warning for unused argument. 解决方案: Add UNUSED. 文件: src/evalfunc.c Patch 8.2.3120 问题: Crypt with sodium test fails on MS-Windows. 解决方案: Make the tests pass. (closes #8428) 文件: src/testdir/test_crypt.vim Patch 8.2.3121 问题: 'listchars' "exceeds" character appears in foldcolumn. Window separator is missing. (Leonid V. Fedorenchik) 解决方案: Only draw the "exceeds" character in the text area. Break the loop when not drawing the text. (closes #8524) 文件: src/drawline.c, src/testdir/test_listchars.vim, src/testdir/dumps/Test_listchars_01.dump, src/testdir/dumps/Test_listchars_02.dump, src/testdir/dumps/Test_listchars_03.dump, src/testdir/dumps/Test_listchars_04.dump, src/testdir/dumps/Test_listchars_05.dump Patch 8.2.3122 问题: With 'nowrap' cursor position is unexpected in narrow window. (Leonid V. Fedorenchik) 解决方案: Put cursor on the last non-empty line. (closes #8525) 文件: src/move.c, src/testdir/test_listchars.vim, src/testdir/dumps/Test_listchars_06.dump, src/testdir/dumps/Test_listchars_07.dump Patch 8.2.3123 问题: Vim9: confusing error when using white space after option, before one of "!&<". 解决方案: Give a specific error. (issue #8408) 文件: src/errors.h, src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3124 问题: Vim9: no error for white space between option and "=9". 解决方案: Check for extraneous white space. (issue #8408) 文件: src/option.c, src/testdir/test_vim9_script.vim Patch 8.2.3125 问题: Variables are set but not used. 解决方案: Move the declarations to the block where they are used. (closes #8527) 文件: src/regexp_nfa.c Patch 8.2.3126 问题: Vim9: for loop error reports wrong line number. 解决方案: Save and restore the line number when evaluating the expression. (closes #8514) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3127 问题: Vim9: no error when adding number to list of string. 解决方案: Check the value type. (closes #8529) 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3128 问题: Vim9: uninitialized list does not get type checked. 解决方案: Set the type when initializing the variable. (closes #8529) 文件: src/eval.c, src/evalvars.c, src/vim9script.c, src/userfunc.c, src/proto/vim9script.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.3129 问题: Vim9: imported uninitialized list does not get type checked. 解决方案: Get type from imported variable. 文件: src/eval.c, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3130 问题: Vim9: import test fails. 解决方案: Rename directory back to "import", use "p" to avoid an error when the directory already exists. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3131 问题: MS-Windows: ipv6 channel test is very flaky in the GUI. 解决方案: Skip the test. 文件: src/testdir/test_channel.vim Patch 8.2.3132 问题: Compiler warns for size_t to colnr_T conversion. (Randall W. Morris) 解决方案: Add a type cast. 文件: src/drawscreen.c Patch 8.2.3133 问题: Vim9: memory leak when add() fails. 解决方案: Allocate listitem_T after type check. 文件: src/list.c Patch 8.2.3134 问题: Crash when using typename() on a function reference. (Naohiro Ono) 解决方案: Initialize pointer to NULL. (closes #8531) 文件: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3135 问题: Vim9: builtin function arguments not checked at compile time. 解决方案: Add more type checks. (Yegappan Lakshmanan, closes #8539) 文件: src/channel.c, src/errors.h, src/evalfunc.c, src/proto/typval.pro, src/terminal.c, src/testdir/test_search.vim, src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, src/testing.c, src/textprop.c, src/typval.c Patch 8.2.3136 问题: No test for E187 and "No swap file". 解决方案: Add a test. (Dominique Pellé, closes #8540) 文件: src/testdir/test_cd.vim, src/testdir/test_swap.vim Patch 8.2.3137 问题: Vim9: no error when a line only has a variable name. 解决方案: Give an error when an expression is evaluated without an effect. (closes #8538) 文件: src/ex_eval.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.3138 (after 8.2.3137) 问题: Debugger test fails. 解决方案: Adjust eval command. 文件: src/testdir/test_debugger.vim Patch 8.2.3139 问题: Functions for string manipulation are spread out. 解决方案: Move string related functions to a new source file. (Yegappan Lakshmanan, closes #8470) 文件: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/eval.c, src/evalfunc.c, src/mbyte.c, src/misc1.c, src/misc2.c, src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/mbyte.pro, src/proto/misc1.pro, src/proto/misc2.pro, src/proto/strings.pro, src/strings.c Patch 8.2.3140 (after 8.2.3131) 问题: MS-Windows: ipv6 channel test is very flaky also without the GUI. 解决方案: Skip the test also without the GUI. 文件: src/testdir/test_channel.vim Patch 8.2.3141 问题: No error when using :complete for :command without -nargs. 解决方案: Give an error. (Martin Tournoij, closes #8544, closes #8541) 文件: src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim Patch 8.2.3142 问题: Vim9: type check for has_key() argument is too strict. 解决方案: Also allow for a number key argument. (closes #8542) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3143 问题: Vim9: A lambda may be compiled with the wrong context if it is called from a profiled function. 解决方案: Compile the lambda with and without profiling. (closes #8543) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3144 问题: Vim9: no error when using an invalid value for a line number. 解决方案: Give an error if the string value is not recognized. (closes #8536) 文件: src/errors.h, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3145 问题: Vim9: profile test fails without profile feature. 解决方案: Check the profile feature is present. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3146 问题: Vim9: line number wrong for :execute argument. 解决方案: Use the line number of the :execute command itself. (closes #8537) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3147 问题: Vim9: profiling does not work with a nested function. 解决方案: Also compile a nested function without profiling. (closes #8543) Handle that compiling may cause the table of compiled functions to change. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3148 问题: Vim9: function arg type check does not handle base offset. 解决方案: Take the base offset into account when checking builtin function argument types. 文件: src/evalfunc.c, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3149 (after 8.2.3141) 问题: Some plugins have a problem with the error check for using :command with -complete but without -nargs. 解决方案: In legacy script only give a warning message. 文件: src/usercmd.c, src/message.c, src/proto/message.pro, src/testdir/test_usercommands.vim Patch 8.2.3150 问题: Vim9: argument types are not checked at compile time. 解决方案: Add more type checks. (Yegappan Lakshmanan, closes #8545) 文件: src/evalfunc.c, src/testing.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3151 问题: Vim9: profiling fails if nested function is also profiled. 解决方案: Use the compile type from the outer function. (closes #8543) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3152 问题: Vim9: accessing "s:" results in an error. 解决方案: Do not try to lookup a script variable for "s:". (closes #8549) 文件: src/evalvars.c, src/testdir/test_vim9_expr.vim Patch 8.2.3153 问题: URLs with a dash in the scheme are not recognized. 解决方案: Allow for a scheme with a dash, but not at the start or end. (Tsuyoshi CHO, closes #8299) 文件: src/misc1.c, src/testdir/test_buffer.vim Patch 8.2.3154 问题: Vim9: some type checks for builtin functions fail. 解决方案: Correct the type checks. (Yegappan Lakshmanan, closes #8551, closes #8550) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3155 问题: Some option related code not covered by tests. 解决方案: Add a few test cases. (Dominique Pellé, closes #8552) 文件: src/testdir/test_options.vim, src/testdir/test_set.vim Patch 8.2.3156 问题: Vim9: term_getansicolors() test fails without +termguicolors. 解决方案: Add a check for the feature. (Dominique Pellé, closes #8555) 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3157 问题: Crypt test may fail on MS-Windows. 解决方案: Ignore "[unix]" in the file message. (Christian Brabandt, closes #8561) 文件: src/testdir/test_crypt.vim Patch 8.2.3158 问题: Strange error message when using islocked() with a number. (Yegappan Lakshmanan) 解决方案: Check that the name is empty. 文件: src/evalfunc.c, src/testdir/test_functions.vim Patch 8.2.3159 问题: Cursor displayed in wrong position after deleting line. 解决方案: When deleting lines do not approximate botline. (fixes #8559) 文件: src/change.c Patch 8.2.3160 问题: 'breakindent' does not work well for bulleted and numbered lists. 解决方案: Add the "list" entry to 'breakindentopt'. (Christian Brabandt, closes #8564, closes #1661) 文件: runtime/doc/options.txt, src/indent.c, src/structs.h, src/testdir/test_breakindent.vim Patch 8.2.3161 问题: Vim9: no error when reltime() has invalid arguments. 解决方案: Add an error. (closes #8562) 文件: src/time.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3162 问题: Vim9: argument types are not checked at compile time. 解决方案: Add more type checks. (Yegappan Lakshmanan, closes #8560) 文件: runtime/doc/channel.txt, src/clientserver.c, src/cmdhist.c, src/errors.h, src/evalfunc.c, src/evalwindow.c, src/filepath.c, src/globals.h, src/popupwin.c, src/proto/typval.pro, src/sign.c, src/strings.c, src/terminal.c, src/testdir/test_normal.vim, src/testdir/test_reltime.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c Patch 8.2.3163 问题: Location list window may open a wrong file. 解决方案: Also update the qf_ptr field. (Wei-Chung Wen, closes #8565, closes #8566) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3164 问题: MS-Windows: reported version lacks patchlevel, causing some update tools to update too often. (Klaus Frank) 解决方案: Add the patchlevel to the version. (Christian Brabandt) 文件: src/dosinst.c Patch 8.2.3165 问题: Vim9: in a || expression the error line number may be wrong. 解决方案: Save and restore the line number when checking the type. (closes #8569) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3166 问题: Vim9: nested autoload call error overruled by "Unknown error". 解决方案: Check need_rethrow before giving an "Unknown error". (closes #8568) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3167 问题: Get E12 in a job callback when searching for tags. (Andy Stewart) 解决方案: Use the sandbox only for executing a command, not for searching. (closes #8511) 文件: src/tag.c Patch 8.2.3168 问题: Vim9: type error for constant of type any. 解决方案: Do add a runtime type check if a constant has type any. (closes #8570) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3169 问题: Vim9: cannot handle nested inline function. 解决方案: Check for nested inline function. (closes #8575) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim Patch 8.2.3170 问题: Illegal memory access in test. 解决方案: Check pointer is not before the start of the line. 文件: src/userfunc.c Patch 8.2.3171 问题: Another illegal memory access in test. 解决方案: Check pointer is after the start of the line. 文件: src/userfunc.c Patch 8.2.3172 问题: MzScheme test fails. (Christian Brabandt) 解决方案: Correct function name. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3173 问题: Vim9: argument types are not checked at compile time. 解决方案: Add more type checks. (Yegappan Lakshmanan, closes #8581) 文件: src/diff.c, src/errors.h, src/evalfunc.c, src/globals.h, src/job.c, src/proto/typval.pro, src/strings.c, src/terminal.c, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3174 问题: Vim9: "legacy undo" finds "undo" variable. 解决方案: Do not pass lookup function to find_ex_command(). (closes #8563) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3175 问题: Vim9: using illegal pointer with inline function inside a lambda. 解决方案: Clear eval_tofree_cmdline when advancing to the next line. (closes #8578) 文件: src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.3176 问题: Vim9: no type error for comparing number with string. 解决方案: Add a runtime type check. (closes #8571) 文件: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.3177 问题: Vim9: can not use "for _ in expr" at script level. 解决方案: Skip assignment if the loop variable is "_". 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3178 问题: Vim9: the file name of an :import cannot be an expression. 解决方案: Accept an expression that results in a string. Do not support :import in a function. 文件: runtime/doc/vim9.txt, src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3179 问题: Vim9: cannot assign to an imported variable at script level. 解决方案: Lookup imported items when assigning. 文件: src/evalvars.c, src/errors.h, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3180 问题: Vim9: memory leak when concatenating to an imported string. 解决方案: Clear the destination. 文件: src/evalvars.c Patch 8.2.3181 问题: Vim9: builtin function test fails without channel feature. 解决方案: Add feature checks. (Dominique Pellé, closes #8586) Make feature checks more consistent. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3182 问题: Vim9: crash when using removing items from a constant list. (Yegappan Lakshmanan) 解决方案: When a list was allocated with items copy them. 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3183 问题: Duplicate error numbers. 解决方案: Adjust the error numbers. 文件: src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3184 问题: Cannot add a digraph with a leading space. It is not easy to list existing digraphs. 解决方案: Add setdigraph(), setdigraphlist(), getdigraph() and getdigraphlist(). (closes #8580) 文件: runtime/doc/digraph.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/digraph.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h, src/errors.h, src/proto/digraph.pro, src/testdir/test_digraph.vim Patch 8.2.3185 问题: Vim9: start of inline function found in comment line. 解决方案: Do not check for inline function in comment line. (closes #8589) 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.3186 问题: Vim9: not all failures for import tested 解决方案: Test more import failures 文件: src/errors.h, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.3187 问题: Vim9: popup timer callback is not compiled. 解决方案: Compile the callback when creating the timer. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/popupwin.c Patch 8.2.3188 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks, also at runtime. (Yegappan Lakshmanan, closes #8587) 文件: src/blob.c, src/channel.c, src/clientserver.c, src/cmdexpand.c, src/cmdhist.c, src/dict.c, src/diff.c, src/errors.h, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/filepath.c, src/globals.h, src/insexpand.c, src/job.c, src/list.c, src/map.c, src/match.c, src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, src/strings.c, src/terminal.c, src/testdir/test_blob.vim, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c Patch 8.2.3189 问题: Vim9: error when using "try|". 解决方案: Allow for "|" right after a command. 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.3190 问题: Error messages are spread out. 解决方案: Move error messages to errors.h and give them a clear name. 文件: src/globals.h, src/errors.h, src/buffer.c, src/debugger.c, src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/gui.c, src/list.c, src/main.c, src/map.c, src/match.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, src/session.c, src/spell.c, src/syntax.c, src/time.c, src/userfunc.c, src/vim9execute.c, src/window.c Patch 8.2.3191 问题: Vim9: not enough code is tested. 解决方案: Use CheckLegacyAndVim9Success() in more places. Fix uncovered problems. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_listdict.vim Patch 8.2.3192 (after 8.2.3190) 问题: Build failure with small version (Tony Mechelynck). 解决方案: Remove stray #ifdef. 文件: src/errors.h Patch 8.2.3193 问题: screenpos() is wrong when the last line is partially visible and 'display' is "lastline". 解决方案: Also compute the position for a partially visible line. (closes #8599) 文件: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.3194 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks, simplify some. (Yegappan Lakshmanan, closes #8598) 文件: src/diff.c, src/evalbuffer.c, src/evalfunc.c, src/job.c, src/proto/typval.pro, src/sign.c, src/terminal.c, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3195 问题: Vim9: unclear error when passing too many arguments to lambda. 解决方案: Pass the expression itself instead of "[expression]". (closes #8604) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3196 问题: Vim9: bool expression with numbers only fails at runtime. 解决方案: Check constant to be bool at compile time. (closes #8603) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3197 问题: Error messages are spread out. 解决方案: Move a few more error messages to errors.h. 文件: src/globals.h, src/errors.h, src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/evalvars.c, src/option.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c, src/regexp.c, src/undo.c, src/vim9compile.c, src/vim9script.c Patch 8.2.3198 问题: Cannot use 'formatlistpat' for breakindent. 解决方案: Use a negative list indent. (Maxim Kim, closes #8594) 文件: runtime/doc/options.txt, src/indent.c, src/testdir/test_breakindent.vim Patch 8.2.3199 问题: Vim9: execution speed can be improved. 解决方案: Make the break counter static. 文件: src/vim9execute.c Patch 8.2.3200 问题: Vim9: hard to guess where a type error is given. 解决方案: Add the function name where possible. (closes #8608) 文件: src/dict.c, src/proto/dict.pro, src/eval.c, src/list.c, src/vim9compile.c, src/vim9execute.c, src/structs.h, src/vim9type.c, src/proto/vim9type.pro, src/if_py_both.h, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3201 (after 8.2.3200) 问题: Crash in test. 解决方案: Initialize "where". 文件: src/eval.c, src/evalvars.c Patch 8.2.3202 问题: Vim9: tests are only executed for legacy script. 解决方案: Run more tests also for Vim9 script. Fix uncovered problems. 文件: src/vim9execute.c, src/ex_docmd.c, src/testdir/test_listdict.vim Patch 8.2.3203 问题: Vim9: compiled string expression causes type error. (Yegappan Lakshmanan) 解决方案: Remove the string type from the stack. 文件: src/vim9compile.c, src/evalfunc.c Patch 8.2.3204 问题: Display garbled when 'cursorline' is set and lines wrap. (Gabriel Dupras) 解决方案: Avoid inserting lines twice. (closes #7255) 文件: src/drawscreen.c, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_redraw_1.dump, src/testdir/dumps/Test_cursorline_redraw_2.dump Patch 8.2.3205 问题: Coverity reports a null pointer dereference. 解决方案: Change the logic to avoid Coverity gets confused. 文件: src/vim9compile.c Patch 8.2.3206 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks. (Yegappan Lakshmanan, closes #8611) 文件: runtime/doc/eval.txt, src/blob.c, src/cmdhist.c, src/dict.c, src/errors.h, src/evalfunc.c, src/filepath.c, src/globals.h, src/job.c, src/list.c, src/match.c, src/misc1.c, src/popupwin.c, src/proto/typval.pro, src/sign.c, src/terminal.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3207 问题: Vim9: crash when compiling string fails. (Yegappan Lakshmanan) 解决方案: Adjust the type stack length. 文件: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3208 问题: Dynamic library load error does not mention why it failed. 解决方案: Add the error message. (Martin Tournoij, closes #8621) 文件: src/globals.h, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/os_win32.pro, src/terminal.c Patch 8.2.3209 问题: Vim9: lambda doesn't find block-local variable. 解决方案: Adjust how a script-local variable is found. (closes #8614) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3210 问题: Vim9: searchpair() sixth argument is compiled. (Yegappan Lakshmanan) 解决方案: Only compile the fifth argument. 文件: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3211 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks. Fix type check for matchaddpos(). (Yegappan Lakshmanan, closes #8619) 文件: src/channel.c, src/evalfunc.c, src/evalvars.c, src/if_cscope.c, src/job.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim, src/time.c, src/typval.c Patch 8.2.3212 问题: Vim9: execution speed can be improved. 解决方案: Use __builtin_expect() to have the compiler produce better code. (Dominique Pellé, closes #8613) 文件: src/vim9execute.c Patch 8.2.3213 问题: NOCOMPOUNDSUGS entry in spell file not tested. 解决方案: Add a test. (Dominique Pellé, closes #8624) 文件: src/testdir/test_spellfile.vim Patch 8.2.3214 问题: MS-Windows: passing /D does not set the install location. 解决方案: Adjust how the installer uses $VIM. Update the documentation. (Christian Brabandt, Ken Takata, closes #8605) 文件: nsis/gvim.nsi, runtime/doc/os_win32.txt Patch 8.2.3215 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks. Sort the argument lists. (Yegappan Lakshmanan, closes #8626) 文件: src/change.c, src/evalfunc.c, src/filepath.c, src/sound.c, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.3216 问题: Vim9: crash when using variable in a loop at script level. 解决方案: Do not clear the variable if a function was defined. Do not create a new entry in sn_var_vals every time. (closes #8628) 文件: src/eval.c, src/ex_eval.c, src/vim9script.c, src/userfunc.c, src/evalvars.c, src/structs.h Patch 8.2.3217 (after 8.2.3216) 问题: Build failure. 解决方案: Add missing changes. 文件: src/globals.h Patch 8.2.3218 问题: When using xchaha20 crypt undo file is not removed. 解决方案: Reset 'undofile' and delete the file. (Christian Brabandt, closes #8630, closes #8467) 文件: src/bufwrite.c, src/crypt.c, src/proto/undo.pro, src/testdir/test_crypt.vim, src/undo.c Patch 8.2.3219 问题: :find searches non-existing directories. 解决方案: Check the path is not "..". Update help. (Christian Brabandt, closes #8612, closes #8533) 文件: runtime/doc/editing.txt, src/findfile.c, src/testdir/test_findfile.vim Patch 8.2.3220 问题: Test_term_setansicolors() fails in some configurations. 解决方案: Check available features. (Dominique Pellé, closes #8636) 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3221 问题: Vim9: argument types are not checked at compile time. 解决方案: Add several more type checks. (Yegappan Lakshmanan, closes #8632) 文件: src/evalfunc.c, src/popupwin.c, src/proto/typval.pro, src/testdir/test_assert.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c Patch 8.2.3222 问题: Vim9: cannot use loop variable later as lambda argument. 解决方案: When not in function context check the current block ID. (closes #8637) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3223 问题: Vim: using {} block in autoloaded omnifunc fails. 解决方案: Allow using {} block when text is locked. (closes #8631) 文件: src/ex_cmds.h, src/testdir/test_ins_complete.vim Patch 8.2.3224 问题: Cannot call script-local function after :vim9cmd. (Christian J. Robinson) 解决方案: Skip over "<SNR>123". 文件: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3225 问题: Incsearch highlighting is attempted halfway a mapping. 解决方案: Only do incsearch highlighting if keys were typed or there is no more typeahead. 文件: src/ex_getln.c Patch 8.2.3226 问题: New digraph functions use old naming scheme. 解决方案: Use the digraph_ prefix. (Hirohito Higashi, closes #8642) 文件: runtime/doc/digraph.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h, src/evalfunc.c, src/proto/digraph.pro, src/testdir/test_digraph.vim Patch 8.2.3227 问题: 'virtualedit' can only be set globally. 解决方案: Make 'virtualedit' global-local. (Gary Johnson, closes #8638) 文件: runtime/doc/options.txt, src/buffer.c, src/change.c, src/drawscreen.c, src/edit.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/proto/option.pro, src/register.c, src/structs.h, src/testdir/test_virtualedit.vim Patch 8.2.3228 问题: Cannot use a simple block for the :command argument. (Maarten Tournoij) 解决方案: Recognize a simple {} block. (issue #8623) 文件: runtime/doc/map.txt, src/misc2.c, src/proto/misc2.pro, src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.3229 问题: Vim9: runtime and compile time type checks are not the same. 解决方案: Add more runtime type checks for builtin functions. (Yegappan Lakshmanan, closes #8646) 文件: src/arglist.c, src/change.c, src/channel.c, src/cindent.c, src/clientserver.c, src/cmdhist.c, src/dict.c, src/diff.c, src/digraph.c, src/errors.h, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/evalwindow.c, src/ex_docmd.c, src/ex_getln.c, src/filepath.c, src/findfile.c, src/float.c, src/fold.c, src/getchar.c, src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c, src/misc1.c, src/move.c, src/popupwin.c, src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, src/sound.c, src/strings.c, src/terminal.c, src/testdir/test_assert.vim, src/testdir/test_blob.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim, src/testing.c, src/textprop.c, src/time.c, src/typval.c, src/undo.c Patch 8.2.3230 问题: Vim9: type error when function return type is not known yet. 解决方案: When return type is unknown, use "any". (closes #8644) 文件: src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3231 问题: Build failure with small features. 解决方案: Adjust #ifdef. 文件: src/errors.h Patch 8.2.3232 (after 8.2.3229) 问题: system() does not work without a second argument. 解决方案: Do not require a second argument. (Yegappan Lakshmanan, closes #8651, closes #8650) 文件: src/misc1.c, src/proto/typval.pro, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3233 问题: prop_list() and prop_find() do not indicate the buffer for the used type. 解决方案: Add "type_bufnr" to the results. (closes #8647) 文件: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, src/textprop.c Patch 8.2.3234 问题: Crash when printing long string with Lua. 解决方案: Remove lua_pop(). (Martin Tournoij, closes #8648) 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3235 问题: Cannot use lambda in {} block in user command. (Martin Tournoij) 解决方案: Do not go over the end of the lambda. 文件: src/userfunc.c, src/testdir/test_usercommands.vim Patch 8.2.3236 问题: mode() does not indicate using CTRL-O in Select mode. 解决方案: Use "vs" and similar. (closes #8640) 文件: runtime/doc/eval.txt, src/globals.h, src/misc1.c, src/normal.c, src/testdir/test_functions.vim Patch 8.2.3237 问题: When a builtin function gives an error processing continues. 解决方案: In Vim9 script return FAIL in get_func_tv(). 文件: src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3238 问题: Vim9: error message does not indicate the location. 解决方案: Add the relevant text. (issue #8634) 文件: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.3239 问题: Vim9: no error using heredoc for a number variable. 解决方案: Add a type check. (closes #8627) 文件: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.3240 问题: Lua print() does not work properly. 解决方案: Put back lua_pop(). 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3241 问题: Vim9: memory leak when function reports an error. 解决方案: Clear the return value. 文件: src/userfunc.c Patch 8.2.3242 问题: Vim9: valgrind reports leaks in builtin function test. 解决方案: Do not start a job. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3243 问题: MS-Windows: the "edit with multiple Vim" choice is not that useful. 解决方案: Change it to "Edit with multiple tabs". (Michael Soyka, closes #8645) 文件: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h Patch 8.2.3244 问题: Lua 5.3 print() with a long string crashes. 解决方案: Use a growarray instead of a Lua buffer. (Yegappan Lakshmanan, closes #8655) 文件: src/if_lua.c, src/misc2.c, src/proto/misc2.pro Patch 8.2.3245 问题: The crypt key may appear in a swap partition. 解决方案: When using xchacha20 use sodium_mlock(). (Christian Brabandt, closes #8657) 文件: src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c, src/memline.c, src/vim.h Patch 8.2.3246 问题: Memory use after free. 解决方案: When clearing a string option set the pointer to "empty_option". 文件: src/option.c Patch 8.2.3247 问题: Using uninitialized memory when checking for crypt method. 解决方案: Check the header length before using the salt and seed. 文件: src/fileio.c Patch 8.2.3248 问题: Vim9: error message for wrong input uses wrong line number. 解决方案: Use the line number of the start of the command. (issue #8653) 文件: src/vim9script.c, src/testdir/test_vim9_script.vim Patch 8.2.3249 问题: Vim9: error for re-imported function with default argument. 解决方案: Do not check argument type if it is still unknown. (closes #8653) 文件: src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, src/vim.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3250 问题: MS-Windows: cannot build with libsodium. 解决方案: Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt, closes #8668, closes #8663) 文件: src/Make_mvc.mak Patch 8.2.3251 问题: Listing builtin_gui as an available terminal is confusing. 解决方案: Do not list builtin_gui. (Christian Brabandt, closes #8669, closes #8661) 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.3252 问题: Duplicated code for adding buffer lines. 解决方案: Move code to a common function. Also move map functions to map.c. (Yegappan Lakshmanan, closes #8665) 文件: src/evalbuffer.c, src/evalfunc.c, src/map.c, src/proto/map.pro Patch 8.2.3253 问题: Channel test fails randomly. 解决方案: Add a sleep after sending the "echoerr" command. (Michael Soyka) 文件: src/testdir/test_channel.vim, src/testdir/test_channel.py Patch 8.2.3254 问题: win_gettype() does not recognize a quickfix window. 解决方案: Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676) 文件: runtime/doc/eval.txt, src/evalwindow.c, src/misc2.c, src/testdir/test_quickfix.vim Patch 8.2.3255 问题: ci" finds following string but ci< and others don't. 解决方案: When not inside an object find the start. (Connor Lane Smit, closes #8670) 文件: src/search.c, src/testdir/test_textobjects.vim, src/textobject.c Patch 8.2.3256 问题: Executable test may fail on new Ubuntu system. 解决方案: Consider /usr/bin/cat and /bin/cat the same. 文件: src/testdir/test_functions.vim Patch 8.2.3257 问题: Calling prop_find() with -1 for ID gives erroneous error. (Naohiro Ono) 解决方案: When passing -1 use -2. (closes #8674) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3258 问题: Error messages have the wrong text. 解决方案: Adjust the error message. 文件: src/errors.h, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3259 问题: When 'indentexpr' causes an error the did_throw flag may remain set. 解决方案: Reset did_throw and show the error. (closes #8677) 文件: src/indent.c, src/ex_docmd.c, src/proto/ex_docmd.pro Patch 8.2.3260 问题: Build failure with small features. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.3261 问题: Vim9: when compiling repeat(123, N) return type is number. 解决方案: Make return type a string. (closes #8664) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3262 问题: Build failure when ABORT_ON_INTERNAL_ERROR is defined. 解决方案: Adjust how estack_len_before is used. 文件: src/ex_docmd.c Patch 8.2.3263 问题: Vim9: "..=" does not accept same types as the ".." operator. 解决方案: Convert value to string like ".." does. (issue #8664) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3264 (after 8.2.3263) 问题: Vim9: assign test fails. 解决方案: Add missing change. 文件: src/eval.c Patch 8.2.3265 问题: Smartcase does not work correctly in very magic pattern. 解决方案: Take the magicness into account when skipping over regexp items. (Christian Brabandt, closes #8682, closes #7845) 文件: src/search.c, src/testdir/test_search.vim Patch 8.2.3266 问题: Vim9: assignment with two indexes may check next line. 解决方案: Limit the number of lines to avoid checking the next line when assigning to a LHS subscript. (closes #8660) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3267 问题: Vim9: crash when disassembling a function that uses a deleted script variable. 解决方案: Check the variable still exists. (closes #8683) 文件: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3268 问题: Cannot use a block with :autocmd like with :command. 解决方案: Add support for a {} block after :autocmd. (closes #8620) 文件: runtime/doc/autocmd.txt, runtime/doc/map.txt, src/autocmd.c, src/proto/autocmd.pro, src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c, src/vim.h, src/testdir/test_autocmd.vim Patch 8.2.3269 问题: Vim9: wrong argument check for partial. (Naohiro Ono) 解决方案: Handle getting return type without arguments. Correct the minimal number of arguments for what is included in the partial. (closes #8667) 文件: src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.3270 问题: prop_find() finds property with ID -2. 解决方案: Use a separate flag to indicate an ID was specified. (issue #8674) 文件: src/textprop.c Patch 8.2.3271 问题: Vim9: cannot use :command or :au with a block in a :def function. 解决方案: Recognize the start of the block. 文件: src/userfunc.c, src/usercmd.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3272 问题: Cannot use id zero with prop_find(). (Naohiro Ono) 解决方案: Also accept id zero. 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3273 问题: Autocmd test fails. 解决方案: Require white space before the "{" that starts a block. 文件: src/userfunc.c Patch 8.2.3274 问题: Macro for printf format check can be simplified. 解决方案: Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique Pellé, issue #8635) 文件: src/channel.c, src/gui_xim.c, src/if_mzsch.c, src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/proto.h, src/term.c, src/vim.h, src/vim9execute.c Patch 8.2.3275 问题: Optimizer can use hints about ga_grow() normally succeeding. 解决方案: Use GA_GROW_FAILS() and GA_GROW_OK() in several places. (Dominique Pellé, issue #8635) 文件: src/arglist.c, src/macros.h, src/vim9execute.c, src/vim9compile.c Patch 8.2.3276 问题: Vim9: exists() can only be evaluated at runtime. 解决方案: Evaluate at compile time for option name literals. (closes #8437) 文件: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.3277 (after 8.2.3276) 问题: Vim9: compiled has() does not work properly. 解决方案: Fix check for has() vs exists(). 文件: src/vim9compile.c Patch 8.2.3278 问题: Vim9: error when adding 1 to float. 解决方案: Accept t_number_bool. (closes #8687) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3279 问题: Vim9: cannot use block in cmdline window. 解决方案: Add EX_CMDWIN to the CMD_block flags. (closes #8689) 文件: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3280 问题: 'virtualedit' local to buffer is not the best solution. 解决方案: Make it window-local. (Gary Johnson, closes #8685) 文件: runtime/doc/options.txt, src/buffer.c, src/drawscreen.c, src/ops.c, src/option.c, src/option.h, src/optionstr.c, src/structs.h, src/testdir/test_virtualedit.vim Patch 8.2.3281 问题: Vim9: TODO items in tests can be taken care of. 解决方案: Update test for now working functionality. (closes #8694) 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.3282 问题: Vim9: error about using -complete without -nargs is confusing. 解决方案: Change the wording. 文件: src/usercmd.c, src/errors.h Patch 8.2.3283 问题: Julia filetype is not recognized 解决方案: Add filetype detection. (Christian Clason, closes #8700) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3284 问题: No error for insert() or remove() changing a locked blob. 解决方案: Check a blob is not locked before changing it. (Sean Dewar, closes #8696) 文件: src/blob.c, src/errors.h, src/eval.c, src/list.c, src/proto/blob.pro, src/testdir/test_blob.vim, src/testdir/test_eval_stuff.vim Patch 8.2.3285 问题: Scdoc filetype is not recognized. 解决方案: Add filetype detection. (Gregory Anders, closes #8701) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3286 问题: win_enter_ext() has too many boolean arguments. 解决方案: use one flags argument with defined values. 文件: src/window.c Patch 8.2.3287 问题: Channel events not handled in BufEnter autocommand. 解决方案: Decrement dont_parse_messages earlier. (Tim Pope, closes #8697) 文件: src/window.c, src/testdir/test_channel.vim Patch 8.2.3288 问题: Cannot easily access namespace dictionaries from Lua. 解决方案: Add vim.g, vim.b, etc. (Yegappan Lakshmanan, closes #8693, from NeoVim) 文件: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3289 (after 8.2.3287) 问题: Compiler warning for unused variable with small features. 解决方案: Rearrange #ifdefs. 文件: src/window.c Patch 8.2.3290 问题: Vim9: compiling dict may use pointer after free and leak memory on failure. 解决方案: Pass a pointer to generate_PUSHS(). (Zdenek Dohnal, closes #8699) 文件: src/vim9compile.c Patch 8.2.3291 问题: Coverity warns for not checking return value. 解决方案: If dict_add() fails give an error message. 文件: src/if_lua.c, src/testdir/test_lua.vim Patch 8.2.3292 问题: Underscore in very magic pattern causes a hang. Pattern with \V are case sensitive. (Yutao Yuan) 解决方案: Adjust condition for magicness and advance pointer. (Christian Brabandt, closes #8707, closes #8704, closes #8705) 文件: src/search.c, src/testdir/test_search.vim Patch 8.2.3293 问题: Finding completions may cause an endless loop. 解决方案: Use a better way to check coming back where the search started. (Andy Gozas, closes #8672, closes #8671) 文件: src/insexpand.c, src/testdir/Make_all.mak, src/testdir/test_ins_complete_no_halt.vim Patch 8.2.3294 问题: Lua: memory leak when adding dict item fails. 解决方案: Free the typval and the dict item. 文件: src/if_lua.c Patch 8.2.3295 问题: 'cursorline' should not apply to 'breakindent'. 解决方案: Make 'cursorline' apply to 'breakindent' and 'showbreak' consistently. (closes #8684) 文件: src/drawline.c, src/testdir/dumps/Test_Xcursorline_19.dump, src/testdir/dumps/Test_Xcursorline_20.dump, src/testdir/dumps/Test_Xcursorline_21.dump, src/testdir/dumps/Test_Xcursorline_22.dump, src/testdir/dumps/Test_Xcursorline_23.dump, src/testdir/dumps/Test_Xcursorline_24.dump, src/testdir/dumps/Test_diff_with_cul_bri_01.dump, src/testdir/dumps/Test_diff_with_cul_bri_02.dump, src/testdir/dumps/Test_diff_with_cul_bri_03.dump, src/testdir/dumps/Test_diff_with_cul_bri_04.dump, src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim Patch 8.2.3296 问题: Vim9: cannot add a number to a float. 解决方案: Accept a number if the destination is a float. (closes #8703) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3297 问题: Cannot use all commands inside a {} block after :command and :autocmd. 解决方案: Do consider \n to separate commands. (closes #8620) 文件: runtime/doc/map.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/ex_eval.c, src/proto/ex_eval.pro, src/eval.c, src/evalvars.c, src/ex_cmds.c, src/syntax.c, src/userfunc.c, src/vim9compile.c, src/vim9script.c, src/errors.h, src/testdir/test_autocmd.vim, src/testdir/test_usercommands.vim Patch 8.2.3298 问题: Build failure with small features. 解决方案: Add #ifdef. 文件: src/ex_docmd.c Patch 8.2.3299 问题: Vim9: exists() does not handle much at compile time. 解决方案: Handle variable names. (closes #8688) 文件: src/vim9compile.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3300 问题: Lua: can only execute one Vim command at a time. Not easy to get the Vim version. 解决方案: Make vim.command() accept multiple lines. Add vim.version(). (Yegappan Lakshmanan, closes #8716) 文件: runtime/doc/if_lua.txt, src/evalfunc.c, src/if_lua.c, src/proto/evalfunc.pro, src/testdir/test_lua.vim, src/testdir/test_shell.vim Patch 8.2.3301 问题: Memory allocation functions don't have their own place. 解决方案: Move memory allocation functions to alloc.c. (Yegappan Lakshmanan, closes #8717) 文件: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, src/alloc.c, src/misc2.c, src/proto.h, src/proto/alloc.pro, src/proto/misc2.pro Patch 8.2.3302 问题: Coverity is not run from github. 解决方案: Add a coverity script. (James McCoy, closes #8714) 文件: .github/workflows/coverity.yml, Filelist Patch 8.2.3303 问题: Some structures could be smaller. 解决方案: Rearrange members to reduce size. (Dominique Pellé, closes #8725) 文件: src/structs.h, src/vim9.h, src/vim9execute.c Patch 8.2.3304 问题: Popup window title with wide characters is truncated. 解决方案: Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino, closes #8721) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_multibytetitle.dump Patch 8.2.3305 问题: Vim9: :finally in skipped block not handled correctly. 解决方案: Check whether :finally is in a skipped block. (Naruhiko Nishino, closes #8724) 文件: src/ex_eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3306 问题: Unexpected "No matching autocommands". 解决方案: Do not give the message when aborting. Mention the arguments in the message. (closes #8690) 文件: src/autocmd.c, Patch 8.2.3307 问题: Vim9: :echoconsole cannot access local variables. 解决方案: Handle like other :echo commands. (closes #8708) 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3308 问题: Vim9: no runtime check for argument type if a function only has varargs. 解决方案: Also check argument types if uf_va_type is set. (closes #8715) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3309 问题: Vim9: divide by zero causes a crash. 解决方案: Give an error message. (closes #8727) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.3310 问题: Vim9: unpack assignment does not mention source of type error. 解决方案: Mention the argument number. (closes #8719) 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3311 问题: Vim9: check for DO_NOT_FREE_CNT is very slow. 解决方案: Move to a separate function so it can be skipped by setting $TEST_SKIP_PAT. 文件: src/testdir/test_vim9_expr.vim, src/testdir/runtest.vim Patch 8.2.3312 问题: Vim9: after "if false" line breaks in expression not skipped. 解决方案: Do parse the expression. (closes #8723) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3313 问题: Unused code in win_exchange() and frame_remove(). 解决方案: Remove the code. (closes #8728) 文件: src/window.c Patch 8.2.3314 问题: Behavior of exists() in a :def function is unpredictable. 解决方案: Add exists_compiled(). 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3315 问题: Cannot use single quote in a float number for readability. 解决方案: Support single quotes like in numbers. (closes #8713) 文件: src/typval.c, src/float.c, src/proto/float.pro, src/json.c, src/viminfo.c, src/testdir/test_float_func.vim Patch 8.2.3316 (after 8.2.3315) 问题: Float test fails. 解决方案: Add missing change. 文件: src/evalfunc.c Patch 8.2.3317 问题: Vim9: No error for missing white space before return type. 解决方案: Check for white space. (closes #8733) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3318 问题: Vim9: cannot ignore quotes in number at the command line. 解决方案: Use in_vim9script() so that after ":vim9" quotes are ignored. 文件: src/typval.c, src/testdir/test_float_func.vim Patch 8.2.3319 问题: Coverity action on github does not work. 解决方案: Remove undefined $SRCDIR. (James McCoy, closes #8739) 文件: .github/workflows/coverity.yml Patch 8.2.3320 问题: Some local functions are not static. 解决方案: Add "static". Move snprintf() related code to strings.c. (Yegappan Lakshmanan, closes #8734) 文件: src/alloc.c, src/channel.c, src/dict.c, src/digraph.c, src/edit.c, src/ex_docmd.c, src/getchar.c, src/job.c, src/list.c, src/message.c, src/profiler.c, src/proto/channel.pro, src/proto/dict.pro, src/proto/digraph.pro, src/proto/edit.pro, src/proto/ex_docmd.pro, src/proto/getchar.pro, src/proto/job.pro, src/proto/list.pro, src/proto/profiler.pro, src/proto/spell.pro, src/proto/vim9compile.pro, src/proto/vim9script.pro, src/proto/vim9type.pro, src/spell.c, src/strings.c, src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/window.c Patch 8.2.3321 问题: Some code is not tested. 解决方案: Add some more tests. (Dominique Pellé, closes #8735) 文件: src/testdir/test_excmd.vim, src/testdir/test_writefile.vim Patch 8.2.3322 问题: Vim9: checking type of dict does not check member type. 解决方案: When getting the type of a typval use dv_type and lv_type. (closes #8732) 文件: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3323 问题: Help tag for exists_compiled() is wrong. (Maxim Kim) 解决方案: Adjust the help tag. 文件: runtime/doc/eval.txt Patch 8.2.3324 问题: Vim9: Cannot use :silent with :endwhile. 解决方案: Allow for using the :silent modifier. (closes #8737) 文件: src/ex_eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3325 问题: Digraph test fails when LC_ALL is set to "C". 解决方案: When restoring 'encoding' set it to "utf-8". (closes #8742) 文件: src/testdir/test_digraph.vim Patch 8.2.3326 问题: Vim9: no error passing an empty list of the wrong type. 解决方案: Use ISN_SETTYPE also for "list<any>". (closes #8732) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3327 问题: No check for sysconf() failing. 解决方案: If sysconf() fails use SIGSTKSZ for the signal stack size. (Zdenek Dohnal, closes #8743) 文件: src/os_unix.c Patch 8.2.3328 问题: Coverity error for not checking return value. 解决方案: Check value is not negative. 文件: src/spellfile.c Patch 8.2.3329 问题: v_lock not set when getting value of environment variable. 解决方案: Set v_lock to zero. 文件: src/typval.c Patch 8.2.3330 问题: Coverity reports using uninitialized field. 解决方案: Initialize the field early. 文件: src/tag.c Patch 8.2.3331 问题: Coverity warns for using value without boundary check. 解决方案: Add a boundary check. 文件: src/viminfo.c Patch 8.2.3332 问题: Vim9: cannot assign to range in list. 解决方案: Implement overwriting a list range. 文件: src/vim9compile.c, src/vim9execute.c, src/list.c, src/proto/list.pro, src/eval.c, src/proto/eval.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3333 问题: Vim9: not enough tests run with Vim9. 解决方案: Run a few more tests in Vim9 script and :def function. 文件: src/testdir/test_listdict.vim, src/testdir/vim9.vim Patch 8.2.3334 问题: Vim9: not enough tests run with Vim9. 解决方案: Run a few more tests in Vim9 script and :def function. Fix islocked(). Fix error for locking local variable. 文件: src/evalfunc.c, src/vim9compile.c, src/testdir/test_listdict.vim Patch 8.2.3335 问题: Vim9: not enough tests run with Vim9. 解决方案: Run a few more tests in Vim9 script and :def function. Fix that items(), keys() and values() return zero for a NULL dict. Make join() return an empty string for a NULL list. Make sort() return an empty list for a NULL list. 文件: src/dict.c, src/list.c, src/testdir/test_listdict.vim, src/testdir/vim9.vim Patch 8.2.3336 问题: Behavior of negative index in list change changed. (Naruhiko Nishino) 解决方案: Only change it for Vim9 script. (closes #8749) 文件: src/list.c, src/testdir/test_listdict.vim Patch 8.2.3337 问题: Completing "call g:" returns entries with just "g:". (Naohiro Ono) 解决方案: Skip empty strings returned by get_user_func_name(). (closes #8753) 文件: src/evalfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3338 问题: Vim9: no type check when assigning a list range. (Naohiro Ono) 解决方案: Check the member type. (closes #8750) 文件: src/list.c, src/testdir/test_listdict.vim Patch 8.2.3339 问题: Vim9: cannot lock a member in a local dict. 解决方案: Get the local dict from the stack and pass it to get_lval(). 文件: src/eval.c, src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/globals.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3340 (after 8.2.3339) 问题: Accessing uninitialized pointer. 解决方案: Set pointer to NULL. 文件: src/eval.c Patch 8.2.3341 问题: Vim9: function call aborted despite try/catch. (Naohiro Ono) 解决方案: Ignore error caught by try/catch. (closes #8755) 文件: src/evalvars.c, src/vim9execute.c, src/message.c, src/time.c, src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_func.vim Patch 8.2.3342 (after 8.2.3341) 问题: Test for :let errors fails. 解决方案: Adjust the test and how to avoid a second error message. 文件: src/evalvars.c, src/testdir/test_let.vim Patch 8.2.3343 (after 8.2.3342) 问题: Vim9: autoload test fails. 解决方案: Adjust the way the second message is avoided 文件: src/evalvars.c Patch 8.2.3344 (after 8.2.3343) 问题: Vimscript test fails. 解决方案: Have test verify first error instead of second 文件: src/testdir/test_vimscript.vim Patch 8.2.3345 问题: Some code not covered by tests. 解决方案: Add a few more tests. (Dominique Pellé, closes #8757) 文件: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, src/testdir/test_spellfile.vim, src/testdir/test_substitute.vim Patch 8.2.3346 问题: Vim9: no error for using "." for concatenation after ":vim9cmd". (Naohiro Ono) 解决方案: Check for Vim9 script syntax. (closes #8756) 文件: src/eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3347 问题: Check for legacy script is incomplete. (Naohiro Ono) 解决方案: Also check the :legacy modifier. Use for string concatenation with "." and others (issue #8756) 文件: src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/typval.c, src/evalvars.c, src/errors.h, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3348 问题: line2byte() returns wrong value after adding textprop. (Yuto Kimura) 解决方案: Reduce the length by the size of the text property. (closes #8759) 文件: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3349 (after 8.2.3347) 问题: Eval test for scriptversion fails. 解决方案: Fix off-by-one error. 文件: src/vim9script.c Patch 8.2.3350 (after 8.2.3348) 问题: Text properties test fails on MS-Windows. 解决方案: Set fileformat to unix. 文件: src/testdir/test_textprop.vim Patch 8.2.3351 问题: Vim9: using a function by name may delete it. (Naohiro Ono) 解决方案: Increment the reference count when using a function by name. (closes #8760) 文件: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.3352 问题: Vim9: error for nested :enddef has wrong line number. 解决方案: Compute the line number. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3353 问题: Vim9: type of argument for negate not checked at compile time. 解决方案: Add a compile time check. 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3354 问题: Build failure with +byte_offset but without +textprop. (John Marriott) 解决方案: Adjust the #ifdef. 文件: src/memline.c Patch 8.2.3355 问题: MS-Windows: compiler warning for 64-32 bit conversion. 解决方案: Add type casts. 文件: src/memline.c Patch 8.2.3356 问题: Adding many text properties requires a lot of function calls. 解决方案: Add the prop_add_list() function. (Yegappan Lakshmanan, closes #8751) 文件: runtime/doc/eval.txt, runtime/doc/textprop.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/textprop.pro, src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, src/textprop.c Patch 8.2.3357 问题: Crash when 'virtualedit' is set and window is narrow. 解决方案: Check that width is not zero. (closes #8767) 文件: src/misc2.c, src/testdir/test_number.vim Patch 8.2.3358 问题: Structurizr files are not recognized. 解决方案: Recognize the file by contents. (Bastian Venthur, closes #8764) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3359 问题: Vim9: error for type when variable is not set. 解决方案: Give a specific error for a NULL function. (closes #8773) 文件: src/vim9type.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.3360 问题: User function completion fails with dict function. 解决方案: Do not stop sequencing through the list if user functions when encountering an empty name. (Naohiro Ono, closes #8765, closes #8774) 文件: src/evalfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3361 问题: Vim9: crash with nested :while. 解决方案: Handle skipping better. (Naruhiko Nishino, closes #8778) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3362 问题: Buffer overflow when completing long tag name. 解决方案: Allocate the buffer dynamically. (Gregory Anders, closes #8769) 文件: src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.3363 问题: When :edit reuses the current buffer the alternate file is set to the same buffer. 解决方案: Only set the alternate file when not reusing the buffer. (closes #8783) 文件: src/ex_cmds.c, src/testdir/test_undo.vim, src/testdir/test_cmdline.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_script.vim Patch 8.2.3364 问题: Vim9: crash when :for is skipped. 解决方案: Skip more code generation. (Naruhiko Nishino, closes #8777) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3365 问题: Vim9: cannot use option for all operations. 解决方案: Recognize more operations. (closes #8779) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3366 问题: Vim9: debugging elseif does not stop before condition. 解决方案: Move debug statement to after the jump. (closes #8781) 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3367 问题: Vim9: :@r executing a register is inconsistent. 解决方案: Use "@r" as the start of an expression. (issue #8779) 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3368 问题: Not all Racket files are recognized. 解决方案: Also recognize .rktl and .rktd files. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3369 问题: Auto formatting after "cw" leaves cursor in wrong spot. 解决方案: Do not auto-format after the delete. (closes #8789) 文件: src/ops.c, src/testdir/test_textformat.vim Patch 8.2.3370 问题: Vim9: no check for white space before type in declaration. (Naohiro Ono) 解决方案: Check for white space like in a compiled function. (closes #8785) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.3371 问题: Vim9: :$ENV cannot be followed by ->func() in next line. 解决方案: Use "$ENV" as the start of an expression. (closes #8790) 文件: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3372 问题: line2byte() value wrong when adding a text property. (Yuto Kimura) 解决方案: Adjust length for text property. (closes #8772) Also fix it for deleting a line. 文件: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3373 (after 8.2.3372) 问题: text property test fails on MS-Windows. 解决方案: Set fileformat to "unix" 文件: src/testdir/test_textprop.vim Patch 8.2.3374 问题: Pyret files are not recognized. 解决方案: Recognize .arr files as Pyret. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3375 问题: Using uninitialized memory. 解决方案: Initialize textprop_save_len. 文件: src/memline.c Patch 8.2.3376 问题: Vim9: no warning that "@r" does not do anything. 解决方案: Give a "no effect" error. (closes #8779) 文件: src/ex_eval.c, src/proto/ex_eval.pro, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3377 问题: Vim9: :disass completion does not understand "s:". 解决方案: Expand "s:" to a pattern. (closes #8780) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3378 问题: MS-Windows: completing environment variables with % is wrong. 解决方案: Only complete environment variables with $. (Albert Liu, closes #8791) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3379 问题: Crash when using NULL job. 解决方案: Copy static string into buffer. (issue #8260) 文件: src/job.c, src/testdir/test_channel.vim Patch 8.2.3380 问题: Crash when using NULL string for funcref(). 解决方案: Check for NULL argument. (issue #8260) 文件: src/evalfunc.c, src/testdir/test_expr.vim Patch 8.2.3381 问题: Crash when using NULL list with sign functions. 解决方案: Handle a NULL list like an empty list. (issue #8260) 文件: src/globals.h, src/testdir/test_signs.vim Patch 8.2.3382 问题: Crash when getting the type of a NULL partial. 解决方案: Check for NULL. (closes #8260) 文件: src/vim9type.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3383 问题: Vim9: completion for :disassemble adds parenthesis. 解决方案: Don't add parenthesis. (Naohiro Ono, closes #8802) 文件: src/userfunc.c, src/testdir/test_cmdline.vim Patch 8.2.3384 问题: Cannot disable modeline for an individual file. 解决方案: Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798) 文件: runtime/doc/options.txt, src/buffer.c, src/testdir/test_modeline.vim Patch 8.2.3385 问题: Escaping for fish shell does not work properly. 解决方案: Insert a backslash before a backslash. (Jason Cox, closes #8810) 文件: runtime/doc/eval.txt, src/strings.c, src/testdir/test_shell.vim Patch 8.2.3386 问题: Using uninitialized memory. 解决方案: Initialize the rm_ic field. (Dominique Pellé, closes #8800) 文件: src/indent.c Patch 8.2.3387 问题: Compiler warning for non-static function. 解决方案: Make the function static. (Dominique Pellé, closes #8816) 文件: src/strings.c Patch 8.2.3388 问题: fnamemodify('path/..', ':p') differs from using 'path/../'. (David Briscoe) 解决方案: Include the "/.." in the directory name. (closes #8808) 文件: src/os_unix.c, src/testdir/test_fnamemodify.vim Patch 8.2.3389 问题: Cannot stop insert mode completion without side effects. 解决方案: Add CTRL-X CTRL-Z. (closes #8821) 文件: runtime/doc/index.txt, runtime/doc/insert.txt, src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3390 问题: Included xdiff code is outdated. 解决方案: Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431) 文件: src/diff.c, src/xdiff/README.txt, src/xdiff/xdiff.h, src/xdiff/xdiffi.c, src/xdiff/xdiffi.h, src/xdiff/xemit.c, src/xdiff/xemit.h, src/xdiff/xhistogram.c, src/xdiff/xinclude.h, src/xdiff/xmacros.h, src/xdiff/xpatience.c, src/xdiff/xprepare.h, src/xdiff/xtypes.h, src/xdiff/xutils.c, src/xdiff/xutils.h Patch 8.2.3391 问题: Crash with combination of 'linebreak' and other options. 解决方案: Avoid n_extra to become negative. (Christian Brabandt, closes #8817) 文件: src/drawline.c Patch 8.2.3392 问题: augroup completion escapes regexp pattern characters. 解决方案: Do not escape the augroup name. (closes #8826) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3393 问题: Escaping for fish shell is skipping some characters. 解决方案: Escape character after backslash if needed. (Jason Cox, closes #8827) 文件: src/strings.c, src/testdir/test_shell.vim Patch 8.2.3394 问题: Filler lines are wrong when changing text in diff mode. 解决方案: Don't change the filler lines on every change. Check scrollbinding when updating the filler lines. (closes #8809) 文件: src/move.c, src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_change_01.dump, src/testdir/dumps/Test_diff_scroll_change_02.dump Patch 8.2.3395 问题: Vim9: expression breakpoint not checked in :def function. 解决方案: Always compile a function for debugging if there is an expression breakpoint. (closes #8803) 文件: src/vim9execute.c, src/proto/vim9execute.pro, src/debugger.c, src/proto/debugger.pro, src/vim.h, src/vim9.h, src/testdir/test_debugger.vim Patch 8.2.3396 问题: When libcall() fails invalid pointer may be used. 解决方案: Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829) 文件: src/evalfunc.c Patch 8.2.3397 问题: No test for what 8.2.3391 fixes. 解决方案: Add a test. (Yegappan Lakshmanan, closes #8828) 文件: src/testdir/test_breakindent.vim Patch 8.2.3398 问题: Html text objects are not fully tested. 解决方案: Add tests for dbcs encoding and different number of backslashes. (Dominique Pellé, closes #8831) 文件: src/testdir/test_textobjects.vim Patch 8.2.3399 问题: Octave files are not recognized. 解决方案: Detect Octave files. (Doug Kearns) 文件: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3400 问题: ":z!" is not supported. 解决方案: Make ":z!" work and add tests. (Dominique Pellé, closes #8836) Use display height instead of current window height. 文件: runtime/doc/various.txt, src/ex_cmds.h, src/ex_cmds.c, src/testdir/test_ex_z.vim Patch 8.2.3401 问题: Vim9: cannot use a negative count with finddir() and findfile(). 解决方案: Adjust the return type. (closes #8776) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3402 问题: Invalid memory access when using :retab with large value. 解决方案: Check the number is positive. 文件: src/indent.c, src/option.c, src/optionstr.c, src/testdir/test_retab.vim Patch 8.2.3403 (after 8.2.3402) 问题: Memory leak for :retab with invalid argument. 解决方案: Free the memory. Make error messages consistent. 文件: src/indent.c Patch 8.2.3404 问题: Vim9: no error for white space before "(". 解决方案: Give an error, like in a compiled function. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3405 问题: Cannot have a comment line in a {} block of a user command. 解决方案: Continue after the line break. (closes #8837) 文件: src/ex_docmd.c, src/testdir/test_usercommands.vim Patch 8.2.3406 问题: On some systems tests fail without _REENTRANT. (Elimar Riesebieter) 解决方案: Add -D_REENTRANT in configure. (closes #7402) 文件: src/configure.ac, src/auto/configure Patch 8.2.3407 问题: Using uninitialized memory with "let g:['bar'] = 2". 解决方案: Initialize v_type of a new dict item. 文件: src/dict.c Patch 8.2.3408 问题: Can delete a numbered function. (Naohiro Ono) 解决方案: Disallow deleting a numbered function. (closes #8760) 文件: src/userfunc.c, src/testdir/test_user_func.vim Patch 8.2.3409 问题: Reading beyond end of line with invalid utf-8 character. 解决方案: Check for NUL when advancing. 文件: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim Patch 8.2.3410 问题: Crash with linebreak, listchars and large tabstop. 解决方案: Account for different size listchars for a tab. (closes #8841) 文件: src/drawline.c, src/testdir/test_listlbr_utf8.vim Patch 8.2.3411 问题: Vim9: crash when using base name of import. (Naohiro Ono) 解决方案: Check the import flags. (closes #8843) 文件: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3412 (after 8.2.3411) 问题: Vim9: importing the wrong file. 解决方案: Correct the file name. Delete the file afterwards. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3413 问题: Vim9: too many characters are allowed in import name. 解决方案: Disallow ':' and '#', check for white space. (closes #8845) 文件: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3414 问题: fullcommand() gives the wrong name if there is a buffer-local user command. (Naohiro Ono) 解决方案: Use a separate function to get the user command name. (closes #8840) 文件: src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.3415 问题: Vim9: Not all function argument types are properly checked. 解决方案: Add and improve argument type checks. (Yegappan Lakshmanan, closes #8839) 文件: src/channel.c, src/digraph.c, src/evalfunc.c, src/terminal.c, src/testdir/test_digraph.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3416 问题: Second error is reported while exception is being thrown. 解决方案: Do not check for trailing characters when already aborting. (closes #8842) 文件: src/userfunc.c, src/testdir/test_trycatch.vim Patch 8.2.3417 问题: Vim9: a failing debug expression aborts script sourcing. 解决方案: Do not let expression failure abort script sourcing. (closes #8848) 文件: src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3418 问题: Garbage collection while evaluating may cause trouble. 解决方案: Disable garbage collection while evaluating an expression. (Christian Brabandt, issue #8848) 文件: src/eval.c Patch 8.2.3419 问题: A failing debug expression may make Vim unusable. 解决方案: Suppress error messages. (closes #8848) 文件: src/debugger.c, src/testdir/test_debugger.vim Patch 8.2.3420 问题: _REENTRANT defined more than once. 解决方案: Fix configure script. (Christian Brabandt, closes #8852) 文件: src/configure.ac, src/auto/configure Patch 8.2.3421 问题: A bit of code is not covered by tests. 解决方案: Add a few more test cases. (Dominique Pellé, closes #8857) 文件: src/testdir/test_functions.vim, src/testdir/test_history.vim, src/testdir/test_startup.vim Patch 8.2.3422 问题: Vim9: no failure if return type differs from returned variable. 解决方案: Copy type when copying a list. (closes #8847) 文件: src/list.c, src/testdir/test_vim9_func.vim Patch 8.2.3423 问题: Vim9: list += list creates a new list in :def function. 解决方案: Append to the existing list. 文件: src/structs.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.3424 问题: A sequence of spaces is hard to see in list mode. 解决方案: Add the "multispace" option to 'listchars'. (closes #8834) 文件: runtime/doc/options.txt, src/drawline.c, src/message.c, src/screen.c, src/structs.h, src/testdir/test_listchars.vim Patch 8.2.3425 问题: Warning for using uninitialized variable. 解决方案: Initialize it. (John Marriott) 文件: src/screen.c Patch 8.2.3426 问题: Crash when deleting a listener in a listener callback. (Naohiro Ono) 解决方案: Mark the listener and delete it later. (closes #8863) 文件: src/change.c, src/testdir/test_listener.vim Patch 8.2.3427 问题: Double free when list is copied. 解决方案: Allocate the type when making a copy. (closes #8862) Clear the type for flattennew(). Avoid a memory leak when flattennew() fails. 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3428 问题: Using freed memory when replacing. (Dhiraj Mishra) 解决方案: Get the line pointer after calling ins_copychar(). 文件: src/normal.c, src/testdir/test_edit.vim Patch 8.2.3429 问题: Leaking memory when assigning to list or dict. 解决方案: Free the list or dict type before overwriting it. 文件: src/vim9type.c, src/evalvars.c Patch 8.2.3430 问题: No generic way to trigger an autocommand on mode change. 解决方案: Add the ModeChanged autocommand event. (Magnus Gross, closes #8856) 文件: runtime/doc/autocmd.txt, src/autocmd.c, src/edit.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/misc1.c, src/normal.c, src/proto/autocmd.pro, src/proto/misc1.pro, src/testdir/test_edit.vim, src/vim.h Patch 8.2.3431 问题: Completion for :disas sorts local functions first. 解决方案: Sort local functions last, like with :delfunc. (Naohiro Ono, closes #8860) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3432 问题: Octave/Matlab filetype detection does not work properly. 解决方案: Update the patterns used for matching. (Doug Kearns) 文件: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.3433 问题: :delcommand does not take a -buffer option. 解决方案: Add the -buffer option. 文件: runtime/doc/map.txt, src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim Patch 8.2.3434 (after 8.2.3430) 问题: Function prototype for trigger_modechanged() is incomplete. 解决方案: Add "void". 文件: src/proto/misc1.pro Patch 8.2.3435 问题: Vim9: dict is not passed to dict function. 解决方案: Keep the dict used until a function call. 文件: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3436 问题: Check for optional bool type has confusing return type. 解决方案: Explicitly return OK. 文件: src/typval.c Patch 8.2.3437 问题: Compiler warnings for 32/64 bit usage. 解决方案: Add type casts. (Mike Williams, closes #8870) 文件: src/screen.c, src/xdiff/xemit.c, src/xdiff/xutils.c Patch 8.2.3438 问题: Cannot manipulate blobs. 解决方案: Add blob2list() and list2blob(). (Yegappan Lakshmanan, closes #8868) 文件: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/blob.c, src/errors.h, src/evalfunc.c, src/proto/blob.pro, src/proto/typval.pro, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3439 问题: Deleted lines go to wrong yank register. 解决方案: Reset y_append when not calling get_yank_register(). (Christian Brabandt, closes #8872) 文件: src/ops.c, src/proto/register.pro, src/register.c, src/testdir/test_registers.vim Patch 8.2.3440 问题: Recover test fails if there is an old swap file. 解决方案: Delete old swap files. 文件: src/testdir/test_recover.vim Patch 8.2.3441 问题: MS-Windows: vimtutor can't handle path with spaces. 解决方案: Add double quotes. (Christian Brabandt, closes #8871) 文件: vimtutor.bat Patch 8.2.3442 问题: Vim9: || and && are not handled at compile time when possible. 解决方案: When using constants generate fewer instructions. 文件: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3443 问题: Vim9: memory leak when and/or fails. 解决方案: Also clear the growarray when the length is zero. 文件: src/vim9compile.c Patch 8.2.3444 问题: concealed text not revealed when leaving insert mode. (Michael Soyka) 解决方案: Check if concealing changed when leaving insert mode. (closes #8880) 文件: src/edit.c, src/testdir/test_conceal.vim, src/testdir/dumps/Test_conceal_two_windows_07in.dump Patch 8.2.3445 问题: On Solaris longVersion may be declared twice. (Vladimir Marek) 解决方案: Always declare longVersion in version.c 文件: src/globals.h, src/version.c Patch 8.2.3446 问题: Not enough tests for empty string arguments. 解决方案: Add tests, fix type check. (Yegappan Lakshmanan, closes #8881) 文件: runtime/doc/sign.txt, runtime/doc/textprop.txt, src/sign.c, src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3447 问题: A couple of declarations are not ANSI C. 解决方案: Put argument type inside (). (Yegappan Lakshmanan, closes #8890) 文件: src/os_unix.h Patch 8.2.3448 问题: :endtry after function call that throws not found. 解决方案: Do check for following :endtry if an exception is being thrown. (closes #8889) 文件: src/userfunc.c, src/testdir/test_trycatch.vim Patch 8.2.3449 问题: Sort fails if the sort compare function returns 999. 解决方案: Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884) 文件: src/list.c, src/testdir/test_sort.vim Patch 8.2.3450 问题: Coveralls action fails. 解决方案: Disable it for now. 文件: .github/workflows/ci.yml Patch 8.2.3451 问题: Not all apache files are recognized. 解决方案: Adjust the filetype pattern. (Zdenek Dohnal, closes #8882) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3452 问题: MPD files are not recognized. 解决方案: Recognize MPD files as XML. (Steven Penny, closes #8893) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3453 问题: Autocmd not executed when editing a directory ending in a path separator inside try block. 解决方案: Return NOTDONE instead of FAIL. (closes #8885) 文件: src/fileio.c, src/testdir/test_autocmd.vim Patch 8.2.3454 问题: Using a count with "gp" leaves cursor in wrong position. (Naohiro Ono) 解决方案: Count the inserted lines. (closes #8899) 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.3455 (after 8.2.3454) 问题: Using a count with "gp" leaves '] in wrong position. (Naohiro Ono) 解决方案: Correct the mark position. (closes #8899) 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.3456 问题: Vim9: Not all functions are tested with an empty string argument. 解决方案: Add tests with empty strings. (Yegappan Lakshmanan, closes #8915) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3457 问题: MS-Windows Vim9: test executed and fails. 解决方案: Add extra check for not being on MS-Windows. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3458 问题: Not all dictdconf files are recognized. 解决方案: Adjust the pattern. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3459 问题: Vim9: need more tests for empty string arguments. 解决方案: Add more tests. Also use empty argument with menu_info() to get the top-level menu names. (Yegappan Lakshmanan, closes #8925) 文件: runtime/doc/eval.txt, src/menu.c, src/testdir/test_menu.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3460 问题: Some type casts are not needed. 解决方案: Remove unnecessary type casts. (closes #8934) 文件: src/autocmd.c, src/buffer.c, src/debugger.c, src/getchar.c, src/hardcopy.c, src/if_cscope.c, src/move.c, src/tag.c, src/version.c Patch 8.2.3461 问题: Cannot distinguish Normal and Terminal-Normal mode. 解决方案: Make mode() return "nt" for Terminal-Normal mode. (issue #8856) 文件: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim Patch 8.2.3462 问题: The ModeChanged event only uses one character for the new_mode and old_mode values. 解决方案: Pass one as first argument to mode(). (issue #8856) 文件: src/misc1.c, src/testdir/test_edit.vim Patch 8.2.3463 问题: Pattern matching with ModeChanged not tested. 解决方案: Add a few more test lines. (issue #8856) 文件: src/testdir/test_edit.vim Patch 8.2.3464 问题: nginx files are not recognized. 解决方案: Add several file patterns. (Chris Aumann, closes #8922) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3465 问题: Cannot detect insert scroll mode. 解决方案: Add "scroll" to complete_info(). (closes #8943) 文件: runtime/doc/eval.txt, src/insexpand.c, src/testdir/test_popup.vim Patch 8.2.3466 问题: Completion submode not indicated for virtual replace. 解决方案: Add submode to "Rv". (closes #8945) 文件: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim Patch 8.2.3467 问题: CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono) 解决方案: Restore the flag for "CTRL-G U" after triggering CursorHoldI. (closes #8937) 文件: src/edit.c, src/testdir/test_autocmd.vim Patch 8.2.3468 问题: Problem with :cd when editing file in non-existent directory. (Yee Cheng Chin) 解决方案: Prepend the current directory to get the full path. (closes #8903) 文件: src/os_unix.c, src/testdir/test_cd.vim Patch 8.2.3469 问题: Some files with json syntax are not recognized. 解决方案: Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3470 问题: Crash with error in :catch and also in :finally. 解决方案: Only discard an exception if there is one. (closes #8954) 文件: src/ex_eval.c, src/testdir/test_trycatch.vim Patch 8.2.3471 问题: Crash when using CTRL-T after an empty search pattern. 解决方案: Bail out when there is no previous search pattern. (closes #8953) 文件: src/ex_getln.c, src/testdir/test_search.vim Patch 8.2.3472 问题: Other crashes with empty search pattern not tested. 解决方案: Add a few more test lines. (Dominique Pellé) 文件: src/testdir/test_search.vim Patch 8.2.3473 问题: Some files with tcl syntax are not recognized. 解决方案: Add a few file patterns. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3474 问题: Some places use "Vimscript" instead of "Vim script". 解决方案: Consistently use "Vim script". (Hirohito Higashi, closes #8910) 文件: runtime/doc/if_lua.txt, src/getchar.c, src/if_lua.c Patch 8.2.3475 问题: Expression register set by not executed put command. 解决方案: Do not set the register if the command is skipped. (closes #8909) 文件: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.3476 问题: Renaming a buffer on startup may cause using freed memory. 解决方案: Check if the buffer is used in a window. (closes #8955) 文件: src/buffer.c, src/testdir/test_startup.vim Patch 8.2.3477 (after 8.2.3476) 问题: Startup test fails on MS-Windows. 解决方案: Skip the test if not on Unix. 文件: src/testdir/test_startup.vim Patch 8.2.3478 (after 8.2.3470) 问题: Still crash with error in :catch and also in :finally. 解决方案: Only call finish_exception() once. (closes #8954) 文件: src/ex_eval.c, src/structs.h Patch 8.2.3479 问题: Crash when calling job_start with an invalid argument. (Virginia Senioria) 解决方案: Clear the first item in argv. (closes #8957) 文件: src/misc2.c, src/testdir/test_channel.vim Patch 8.2.3480 (after 8.2.3478) 问题: Test does not fail without the fix for a crash. 解决方案: Write the bad code in a file and source it. (Dominique Pellé, closes #8961) 文件: src/testdir/test_trycatch.vim Patch 8.2.3481 问题: Failures when char is unsigned. 解决方案: Use int8_T. Make a CI run with unsigned char. (James McCoy, closes #8936) 文件: src/structs.h, .github/workflows/ci.yml Patch 8.2.3482 问题: Reading beyond end of line ending in quote and backslash. 解决方案: Check for non-NUL after backslash. (closes #8964) 文件: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3483 问题: #ifdef for using sysinfo() is incomplete. 解决方案: Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK. (closes #8952) 文件: src/memline.c, src/configure.ac, src/auto/configure Patch 8.2.3484 问题: Crash when going through spell suggestions. 解决方案: Limit the text length for finding suggestions to the original length. Do not update buffers when exiting. (closes #8965) 文件: src/spellsuggest.c, src/clipboard.c, src/testdir/test_spell_utf8.vim Patch 8.2.3485 问题: Python 3 test fails with Python 3.10. 解决方案: Adjust expected error message. (zdohnal Dohnal, closes #8969) 文件: src/testdir/test_python3.vim Patch 8.2.3486 问题: Illegal memory access with invalid sequence of commands. 解决方案: Do not call leave_block() when not in a try block. (closes #8966) Reset did_emsg so that exception is shown as an error. 文件: src/ex_eval.c, src/testdir/test_trycatch.vim Patch 8.2.3487 问题: Illegal memory access if buffer name is very long. 解决方案: Make sure not to go over the end of the buffer. 文件: src/drawscreen.c, src/testdir/test_statusline.vim Patch 8.2.3488 问题: Issue template is not easy to use. 解决方案: Use a yaml template. (closes #8928) 文件: .github/ISSUE_TEMPLATE/bug_report.md, .github/ISSUE_TEMPLATE/bug_report.yml Patch 8.2.3489 问题: ml_get error after search with range. 解决方案: Limit the line number to the buffer line count. 文件: src/ex_docmd.c, src/testdir/test_search.vim Patch 8.2.3490 问题: Superfluous return statements. 解决方案: Remove superfluous return statements from void functions. (closes #8977) 文件: src/buffer.c, src/getchar.c, src/memline.c, src/move.c, src/option.c Patch 8.2.3491 问题: xpm2 filetype detection is not so good. 解决方案: Adjust the check for xpm2. (closes #8914) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3492 问题: Crash when pasting too many times. 解决方案: Limit the size to what fits in an int. (closes #8962) 文件: src/register.c, src/errors.h, src/testdir/test_put.vim Patch 8.2.3493 (after 8.2.3492) 问题: Large count test fails on MS-Windows. 解决方案: Skip the test on MS-Windows. 文件: src/testdir/test_put.vim Patch 8.2.3494 问题: Illegal memory access in utf_head_off. 解决方案: Check cursor position when reselecting the Visual area. (closes #8963) 文件: src/normal.c, src/testdir/test_visual.vim Patch 8.2.3495 问题: GUI geometry startup test fails on some systems. (Drew Vogel) 解决方案: Add tolerance to the size check. (closes #8815) 文件: src/testdir/test_startup.vim Patch 8.2.3496 问题: Crypt test fails on MS-Windows if xxd was not installed yet. 解决方案: Use the just built xxd executable if it exists. (James McCoy, closes #8929) 文件: src/testdir/test_crypt.vim Patch 8.2.3497 问题: Put test fails when run by itself. 解决方案: Source check.vim. (Dominique Pellé, closes #8990) 文件: src/testdir/test_put.vim Patch 8.2.3498 问题: Recover test may fail on some systems. 解决方案: Adjust the little endian and 64 bit detection. (James McCoy, closes #8941) 文件: src/testdir/test_recover.vim Patch 8.2.3499 问题: GUI geometry startup test fails. 解决方案: Check string values instead of numbers 文件: src/testdir/test_startup.vim Patch 8.2.3500 问题: Github CI fails to install clang. 解决方案: Install llvm-11 explicitly. (Christian Brabandt, closes #8993) 文件: .github/workflows/ci.yml Patch 8.2.3501 问题: tmux filetype detection is incomplete 解决方案: Also use tmux for files having text after .conf. (Eric Pruitt, closes #8971) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3502 (after 8.2.2919) 问题: Cannot enter password in shell command. 解决方案: Revert patch 8.2.2919. 文件: src/os_unix.c Patch 8.2.3503 问题: Vim9: using g:pat:cmd is confusing. 解决方案: Do not recognize g: as the :global command. Also for s:pat:repl. (closes #8982) 文件: runtime/doc/vim9.txt, src/ex_docmd.c, src/ex_cmds.c, src/errors.h, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_cmd.vim Patch 8.2.3504 (after 8.2.3503) 问题: Vim9: warning for signed vs unsigned. 解决方案: Add type cast. 文件: src/vim9compile.c Patch 8.2.3505 (after 8.2.3503) 问题: Vim9: build failure without the +eval feature. 解决方案: Add #ifdef. 文件: src/ex_cmds.c Patch 8.2.3506 (after 8.2.3503) 问题: Vim9: special cases for "g" and "s" insufficiently tested. 解决方案: Add a few more test cases. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.3507 问题: Generating proto files may fail. 解决方案: Define __attribute(). 文件: src/Makefile Patch 8.2.3508 (after 8.2.3503) 问题: Vim9: bad separators for "g" and "s" insufficiently tested. 解决方案: Add a few more test cases. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.3509 问题: Undo file is not synced. (Sami Farin) 解决方案: Sync the undo file if 'fsync' is set. (Christian Brabandt, closes #8879, closes #8920) 文件: runtime/doc/options.txt, src/undo.c Patch 8.2.3510 问题: Changes are only detected with one second accuracy. 解决方案: Use the nanosecond time if possible. (Leah Neukirchen, closes #8873, closes #8875) 文件: runtime/doc/eval.txt, src/auto/configure, src/bufwrite.c, src/config.h.in, src/configure.ac, src/fileio.c, src/proto/fileio.pro, src/memline.c, src/netbeans.c, src/structs.h, src/evalfunc.c, src/testdir/test_stat.vim Patch 8.2.3511 问题: Vim9: entry for loop variable is created every round. 解决方案: Only create the entry once. (closes #8996) 文件: src/evalvars.c, src/vim9script.c Patch 8.2.3512 问题: Timestamp test fails on some systems. 解决方案: Sleep for a short while. 文件: src/testdir/test_stat.vim Patch 8.2.3513 问题: Using freed memory when using a timer and searching. (Dominique Pellé) 解决方案: Allocated mr_pattern. 文件: src/search.c Patch 8.2.3514 问题: Autoread test with nanosecond time sometimes fails. 解决方案: Mark the test as being flaky. 文件: src/testdir/test_stat.vim Patch 8.2.3515 问题: Nano time test fails on Mac and FreeBSD. 解决方案: Also check nano time when not on Linux. (Ozaki Kiichi, closes #9000) 文件: src/fileio.c Patch 8.2.3516 问题: Terminal window does not have transparent background when 'termguicolors' is used. 解决方案: Fix the background color. (closes #2361, closes #9002) 文件: runtime/doc/terminal.txt, src/highlight.c, src/proto/terminal.pro, src/terminal.c Patch 8.2.3517 问题: TextChanged does not trigger after TextChangedI. 解决方案: Store the tick separately for TextChangedI. (Christian Brabandt, closes #8968, closes #8932) 文件: src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h, src/testdir/test_autocmd.vim Patch 8.2.3518 问题: Test_xrestore sometimes fails. 解决方案: Mark the test as flaky. Move marking test as flaky to the test instead of listing them in runtest. 文件: src/testdir/test_paste.vim, src/testdir/runtest.vim, src/testdir/test_autocmd.vim, src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, src/testdir/test_diffmode.vim, src/testdir/test_functions.vim, src/testdir/test_gui.vim, src/testdir/test_mapping.vim, src/testdir/test_popup.vim, src/testdir/test_quotestar.vim, src/testdir/test_reltime.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_timers.vim Patch 8.2.3519 问题: TOML files are not recognized. 解决方案: Add filetype patterns for TOML. (Aman Verma, closes #8984) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3520 问题: Cannot define a function for thesaurus completion. 解决方案: Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987, closes 8950) 文件: runtime/doc/insert.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, src/buffer.c, src/insexpand.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/structs.h, src/testdir/test_edit.vim Patch 8.2.3521 (after 8.2.3520) 问题: Options completion test fails. 解决方案: Add 'thesaurusfunc' to the results. 文件: src/testdir/test_options.vim Patch 8.2.3522 问题: Cannot use \x and \u when setting 'listchars'. 解决方案: Support hex and unicode in hex form. (closes #9006) 文件: runtime/doc/options.txt, src/screen.c, src/charset.c, src/testdir/test_listchars.vim Patch 8.2.3523 问题: Duplicated code in xxd. 解决方案: Remove duplicated lines. (closes #8972) 文件: src/xxd/xxd.c Patch 8.2.3524 问题: GUI: ligatures are not used. 解决方案: Add the 'guiligatures' option. (Dusan Popovic, closes #8933) 文件: runtime/doc/options.txt, src/gui.c, src/gui.h, src/gui_gtk_x11.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/errors.h, src/proto/gui.pro, src/proto/gui_gtk_x11.pro, src/testdir/test_gui.vim Patch 8.2.3525 问题: Option variable name does not match option name. (Christ van Willegen) 解决方案: Rename the variable. 文件: src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c, src/structs.h Patch 8.2.3526 问题: Tests have clumsy check for X11 based GUI. 解决方案: Add CheckX11BasedGui. 文件: src/testdir/check.vim, src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, src/testdir/setup_gui.vim Patch 8.2.3527 问题: Gcc complains about uninitialized variable. (Tony Mechelynck) 解决方案: Initialize it. 文件: src/gui_gtk_x11.c Patch 8.2.3528 问题: 'thesaurus' and 'thesaurusfunc' do not have the same scope. 解决方案: Make 'thesaurusfunc' global-local. 文件: runtime/doc/options.txt, runtime/doc/insert.txt, src/optiondefs.h, src/option.h, src/option.c, src/structs.h, src/insexpand.c, src/testdir/test_edit.vim Patch 8.2.3529 问题: Xxd usage output is incomplete. 解决方案: Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944) 文件: src/xxd/xxd.c Patch 8.2.3530 问题: ":buf \{a}" fails while ":edit \{a}" works. 解决方案: Unescape "\{". (closes #8917) 文件: src/vim.h, src/cmdexpand.c, src/evalfunc.c, src/ex_getln.c, src/proto/ex_getln.pro, src/normal.c, src/session.c, src/terminal.c, src/vim9execute.c, src/testdir/test_cmdline.vim Patch 8.2.3531 (after 8.2.3530) 问题: Command line completion test fails on MS-Windows. 解决方案: Do not test with "\{" on MS-Windows. 文件: src/testdir/test_cmdline.vim Patch 8.2.3532 问题: The previous '' mark is restored after moving the cursor to the original jump position. (Tony Chen) 解决方案: Forget the previous position after checking. (closes #8985) 文件: src/mark.c, src/testdir/test_marks.vim Patch 8.2.3533 问题: Inefficient code in xxd. 解决方案: Don't use "p" when "hextype" is non-zero. (closes #9013) 文件: src/xxd/xxd.c Patch 8.2.3534 问题: Autoread test is a bit flaky. 解决方案: Wait a brief moment before overwriting the file. 文件: src/testdir/test_stat.vim Patch 8.2.3535 问题: If-else indenting is confusing. 解决方案: Add curly brackets and indent. (Dominique Pellé, closes #9010) 文件: src/drawscreen.c Patch 8.2.3536 问题: The do_highlight() function is way too long. 解决方案: Split it into several functions. (Yegappan Lakshmanan, closes #9011) 文件: src/highlight.c Patch 8.2.3537 问题: mode() does not return the right value in 'operatorfunc'. 解决方案: Reset finish_op while calling 'operatorfunc'. 文件: src/ops.c, src/testdir/test_functions.vim Patch 8.2.3538 问题: Else-if indenting is confusing. 解决方案: Add curly brackets. (Yegappan Lakshmanan, closes #9017) 文件: src/highlight.c Patch 8.2.3539 问题: GTK3: with 'rightleft' set scrollbar may move unintentionally. 解决方案: Ignore events while moving the scrollbar thumb. (closes #8958) 文件: src/gui_gtk.c Patch 8.2.3540 问题: The mark '] is wrong after put with a count. (Naohiro Ono) 解决方案: Use the right line number. (closes #8956) 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.3541 问题: Compiler warning for unused variable in tiny version. 解决方案: Add #ifdef. (John Marriott) 文件: src/highlight.c Patch 8.2.3542 问题: Too many comments are old style. 解决方案: Change comments to // style. (closes #9021) 文件: src/buffer.c Patch 8.2.3543 问题: Swapname has double slash when 'directory' ends in double slash. (Shane Smith) 解决方案: Remove the superfluous slash. (closes #8876) 文件: src/memline.c, src/testdir/test_swap.vim Patch 8.2.3544 问题: Unix: may leak file descriptor when using a non-existing directory. 解决方案: Always close the file. (closes #9023) 文件: src/os_unix.c Patch 8.2.3545 问题: setcellwidths() may make 'listchars' or 'fillchars' invalid. 解决方案: Check the value and give an error. (closes #9024) 文件: runtime/doc/eval.txt, src/optionstr.c, src/errors.h, src/mbyte.c, src/testdir/test_utf8.vim Patch 8.2.3546 (after 8.2.3545) 问题: Build failure without the +eval feature. 解决方案: Add #ifdef. (closes #9025) 文件: src/errors.h Patch 8.2.3547 问题: Opening the quickfix window triggers BufWinEnter twice. (Yorick Peterse) 解决方案: Only trigger BufWinEnter with "quickfix". (closes #9022) 文件: src/ex_cmds.c, src/vim.h, src/quickfix.c, src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.3548 问题: GTK GUI crashes when reading from stdin. 解决方案: Do not overwrite the NUL after the string. (closes #9028) 文件: src/gui_gtk_x11.c, src/testdir/test_gui.vim Patch 8.2.3549 问题: Mistakes in test comments. 解决方案: Fix the comments. (closes #9029) 文件: src/testdir/test_autocmd.vim Patch 8.2.3550 问题: completion() does not work properly. 解决方案: Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita, closes #9016) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3551 问题: Checking first character of url twice. 解决方案: Only check once. (closes #9026) 文件: src/misc1.c Patch 8.2.3552 问题: Xxd revert does not handle end of line correctly. 解决方案: Check for newline first. (closes #9034) 文件: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3553 (after 8.2.3552) 问题: Xxd test fails on MS-Windows. 解决方案: Split shell command in two. 文件: src/testdir/test_xxd.vim Patch 8.2.3554 问题: Xxd has various way to exit. 解决方案: Add function to print error and exit. (closes #9035) 文件: src/xxd/xxd.c Patch 8.2.3555 问题: ModeChanged is not triggered on every mode change. 解决方案: Also trigger on minor mode changes. (Maguns Gross, closes #8999) 文件: runtime/doc/autocmd.txt, src/autocmd.c, src/insexpand.c, src/misc1.c, src/normal.c, src/terminal.c, src/testdir/test_edit.vim Patch 8.2.3556 问题: Filler lines are incorrect for other window in diff mode after making a change. 解决方案: Copy filler lines from the current window. (closes #8809) 文件: src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_change_03.dump Patch 8.2.3557 问题: Vim9: cannot call imported funcref at script level. 解决方案: Check for an imported function. (closes #9007) 文件: src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3558 (after 8.2.3557) 问题: Vim9: asserting the wrong variable. 解决方案: Don't use Foo, use Goo. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3559 问题: Loop variable recreated every time. 解决方案: Keep the loop variable when looping. 文件: src/ex_eval.c Patch 8.2.3560 问题: Using freed memory with lambda. 解决方案: Do not free lines early, keep them until the expression is finished. (closes #9020) 文件: src/eval.c, src/proto/eval.pro, src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h, src/testdir/test_vim9_func.vim Patch 8.2.3561 问题: Cscope has a complicated way of giving an error message. 解决方案: Use semsg(). (James McCoy, closes #9038) 文件: src/if_cscope.c Patch 8.2.3562 问题: Cannot add color names. 解决方案: Add the v:colornames dictionary. (Drew Vogel, closes #8761) 文件: Filelist, READMEdir/README_extra.txt, nsis/gvim.nsi, runtime/colors/README.txt, runtime/colors/lists/csscolors.vim, runtime/colors/lists/default.vim, runtime/doc/eval.txt, runtime/doc/gui_w32.txt, runtime/doc/message.txt, runtime/doc/os_haiku.txt, runtime/doc/syntax.txt, runtime/doc/usr_06.txt, src/Makefile, src/evalvars.c, src/gui_haiku.cc, src/highlight.c, src/gui.c, src/job.c, src/proto/highlight.pro, src/proto/term.pro, src/term.c, src/vim.h, src/globals.h, src/errors.h, src/testdir/test_highlight.vim Patch 8.2.3563 (after 8.2.3562) 问题: Build failure with +eval but without GUI or +termguicolors 解决方案: Adjust #ifdef. (John Marriott) 文件: src/highlight.c Patch 8.2.3564 问题: Invalid memory access when scrolling without a valid screen. 解决方案: Do not set VALID_BOTLINE in w_valid. 文件: src/move.c, src/testdir/test_normal.vim Patch 8.2.3565 问题: Makefile dependencies are outdated. (Gary Johnson) 解决方案: Run "make depend" and add missing dependencies. 文件: src/Makefile Patch 8.2.3566 问题: Build failure on old systems when using nano timestamp. 解决方案: Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary Johnson, closes #9054) 文件: src/vim.h Patch 8.2.3567 问题: CTRL-I in Insert mode is not tested 解决方案: Add a test case. (Dominique Pellé, closes #8866) 文件: src/testdir/test_edit.vim Patch 8.2.3568 问题: Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter) 解决方案: Run the test only with GTK. (Dominique Pellé, closes #9069) 文件: src/testdir/test_edit.vim Patch 8.2.3569 问题: Error for :let when vimrc is Vim 9 script. 解决方案: Prepend :legacy in the code for converting arguments. (Christian Brabandt, closes #9068, closes #9077) 文件: src/os_win32.c Patch 8.2.3570 问题: Test_very_large_count fails on 32bit systems. 解决方案: Bail out when using 32 bit numbers. (closes #9072) 文件: src/testdir/test_put.vim Patch 8.2.3571 问题: Some unicode control characters are considered printable. 解决方案: Make 0x2060 - 0x2069 not printable. 文件: src/mbyte.c Patch 8.2.3572 问题: Memory leak when closing window and using "multispace" in 'listchars'. 解决方案: Free the memory. (closes #9071) 文件: src/window.c, src/testdir/test_listchars.vim Patch 8.2.3573 问题: Cannot decide whether to skip test that fails with 64 bit ints. (closes #9072) 解决方案: Add v:sizeofint, v:sizeoflong and v:sizeofpointer. Improve the check for multiply overflow. 文件: runtime/doc/eval.txt, src/vim.h, src/evalvars.c, src/register.c, src/testdir/test_put.vim Patch 8.2.3574 (after 8.2.3573) 问题: Divide by zero. 解决方案: Don't check for overflow if multiplicand is zero. 文件: src/register.c Patch 8.2.3575 (after 8.2.3574) 问题: Overflow check still fails when sizeof(int) == sizeof(long). 解决方案: Use a float to check the result. 文件: src/register.c Patch 8.2.3576 问题: Some functions are not documented for use with a method. 解决方案: Add examples. Fix that sign_unplacelist() only takes one argument. (Sean Dewar, closes #9081) 文件: src/evalfunc.c, runtime/doc/eval.txt Patch 8.2.3577 (after 8.2.3574) 问题: Overflow check fails with 32 bit ints. 解决方案: Only test with 64 bit ints. 文件: src/testdir/test_put.vim Patch 8.2.3578 问题: Manipulating highlighting is complicated. 解决方案: Add the hlget() and hlset() functions. (Yegappan Lakshmanan, closes #9039) 文件: runtime/doc/eval.txt, runtime/doc/syntax.txt, runtime/doc/usr_41.txt, runtime/doc/windows.txt, src/evalfunc.c, src/highlight.c, src/proto/highlight.pro, src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3579 问题: CI sometimes fails for MinGW. 解决方案: Use backslashes in HandleSwapExists(). (Christian Brabandt, closes #9078) 文件: src/testdir/runtest.vim Patch 8.2.3580 问题: gj does not move properly with a wide character. 解决方案: Move one to the right. (Christian Brabandt, closes #8702) 文件: src/normal.c, src/testdir/test_normal.vim Patch 8.2.3581 问题: Reading character past end of line. 解决方案: Correct the cursor column. 文件: src/ex_docmd.c, src/testdir/test_put.vim Patch 8.2.3582 问题: Reading uninitialized memory when giving spell suggestions. 解决方案: Check that preword is not empty. 文件: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.3583 问题: The "gd" and "gD" commands do not update search stats. (Gary Johnson) 解决方案: Clear search stats. 文件: src/normal.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstatgd_1.dump, src/testdir/dumps/Test_searchstatgd_2.dump Patch 8.2.3584 问题: "verbose set efm" reports the location of the :compiler command. (Gary Johnson) 解决方案: Add the "-keepscript" argument to :command and use it when defining CompilerSet. 文件: runtime/doc/map.txt, src/ex_cmds2.c, src/usercmd.c, src/ex_cmds.h, src/testdir/test_compiler.vim Patch 8.2.3585 问题: Crash when passing float to "term_rows" in the options argument of term_start(). (Virginia Senioria) 解决方案: Bail out if the argument is not a number. (closes #9116) 文件: src/job.c, src/terminal.c, src/testdir/test_terminal.vim Patch 8.2.3586 (after 8.2.3584) 问题: Command completion test fails. 解决方案: Add new argument to expected output 文件: src/testdir/test_usercommands.vim Patch 8.2.3587 (after 8.2.3584) 问题: Compiler test fails with backslash file separator. 解决方案: Accept slash and backslash. 文件: src/testdir/test_compiler.vim Patch 8.2.3588 问题: Break statement is never reached. 解决方案: Rely on return value of set_chars_option() not changing. (closes #9103) 文件: src/optionstr.c Patch 8.2.3589 问题: Failure when the "term_rows" argument of term_start() is an unusual value. 解决方案: Limit to range of zero to 1000. (closes #9116) 文件: runtime/doc/terminal.txt, src/job.c, src/testdir/test_terminal.vim Patch 8.2.3590 问题: Test for v:colornames sometimes fails. (Dominique Pellé) 解决方案: Check features. Clear v:colornames between tests. (Drew Vogel, closes #9105, closes #9073) 文件: runtime/doc/eval.txt, src/highlight.c, src/proto/highlight.pro, src/testdir/test_highlight.vim Patch 8.2.3591 问题: No event is triggered when closing a window. 解决方案: Add the WinClosed event. (Naohiro Ono, closes #9110) 文件: runtime/doc/autocmd.txt, src/autocmd.c, src/testdir/test_autocmd.vim, src/vim.h, src/window.c Patch 8.2.3592 问题: Test_hlset fails when terminal has many columns. 解决方案: Set the number of columns to 80. (Dominique Pellé, closes #9101, closes #9100) 文件: src/testdir/test_highlight.vim Patch 8.2.3593 问题: Directory is wrong after executing "lcd" with win_execute(). 解决方案: Correct the directory when going back to the original window. (closes #9132) 文件: src/evalwindow.c, src/window.c, src/proto/window.pro, src/testdir/test_execute_func.vim Patch 8.2.3594 问题: Xxd code is a bit difficult to understand. 解决方案: Move some lines to a separate function. (closes #9037) 文件: src/xxd/xxd.c Patch 8.2.3595 问题: Check for signed overflow might not work everywhere. 解决方案: Limit to 32 bit int. (closes #9043, closes #9067) 文件: src/getchar.c Patch 8.2.3596 问题: Crash when using :pedit in Vim9 script. 解决方案: Move check for arguments to after checking there are arguments. (Yegappan Lakshmanan, closes #9134, closes #9135) 文件: src/popupwin.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3597 问题: Vim seems to hang when writing a very long text to a terminal window. 解决方案: Limit the amount of text based on 'termwinscroll'. (issue #9080) 文件: runtime/doc/options.txt, src/terminal.c Patch 8.2.3598 问题: RouterOS filetype is not recognized. 解决方案: Add file and script patterns. (closes #9097) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3599 问题: Not all gdbinit files are recognized. 解决方案: Add "gdbinit". (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3600 (after 8.2.3598) 问题: Filetype test fails. 解决方案: Add missing change. 文件: runtime/scripts.vim Patch 8.2.3601 问题: Check for overflow in put count does not work well. 解决方案: Improve the overflow check. (Ozaki Kiichi, closes #9102) 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.3602 问题: Python3 test fails with Python 3.10 on MS-Windows. 解决方案: Adjust the expected error. (Ken Takata, closes #9118) 文件: src/testdir/test_python3.vim Patch 8.2.3603 问题: Fish filetype not recognized. 解决方案: Add a file pattern and match script line. (Doug Kearns) 文件: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.3604 问题: Not all sudoers files are recognized. 解决方案: Add a file pattern. (Doug Kearns, closes #1192) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3605 问题: Cannot clear and unlink a highlight group with hlset() in a single call. 解决方案: Add the "force" option. (Yegappan Lakshmanan, closes #9117) 文件: runtime/doc/eval.txt, src/highlight.c, src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.3606 问题: File missing from list of distributed files. 解决方案: Add the file. 文件: Filelist Patch 8.2.3607 问题: GTK3 screen updating is slow. 解决方案: Remove some of the GTK3-specific code. (closes #9052) 文件: src/gui.h, src/gui_gtk_x11.c Patch 8.2.3608 问题: Users who type "q:" instead of ":q" are confused. 解决方案: Add an autocmd to give a message that explains this is the command-line window. (Egor Zvorykin, closes #9146) 文件: runtime/defaults.vim, src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim Patch 8.2.3609 问题: Internal error when ModeChanged is triggered when v:event is already in use. 解决方案: Save and restore v:event if needed. 文件: src/misc1.c, src/proto/misc1.pro, src/testdir/test_edit.vim, src/insexpand.c, src/structs.h, src/register.c Patch 8.2.3610 问题: Crash when ModeChanged triggered too early. 解决方案: Trigger ModeChanged after setting VIsual. 文件: src/normal.c, src/testdir/test_edit.vim Patch 8.2.3611 问题: Crash when using CTRL-W f without finding a file name. 解决方案: Bail out when the file name length is zero. 文件: src/findfile.c, src/normal.c, src/testdir/test_visual.vim Patch 8.2.3612 问题: Using freed memory with regexp using a mark. 解决方案: Get the line again after getting the mark position. 文件: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.3613 问题: :find test fails. 解决方案: Put length check inside if block. 文件: src/findfile.c Patch 8.2.3614 问题: zindex of popup windows not used when redrawing popup menu. 解决方案: Check the zindex when redrawing the popup menu. (closes #9129, closes #9089) 文件: src/popupmenu.c, src/popupwin.c, src/proto/popupmenu.pro, src/screen.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump, src/testdir/dumps/Test_popupwin_popupmenu_masking_2.dump Patch 8.2.3615 问题: When re-formatting with an indent expression the first line of a paragraph may get the wrong indent. (Martin F. Krafft) 解决方案: Apply the correct indenting function for the first line. (Christian Brabandt, closes #9150, closes #9056) 文件: src/textformat.c, src/testdir/test_indent.vim Patch 8.2.3616 问题: Arglist test does not clear the argument list consistently. 解决方案: Call Reset_arglist(). (Shougo Matsushita, closes #9154) 文件: src/testdir/test_arglist.vim Patch 8.2.3617 问题: ":verbose pwd" does not mention 'autochdir' was applied. 解决方案: Remember the last chdir was done by 'autochdir'. (issue #9142) 文件: src/globals.h, src/buffer.c, src/ex_docmd.c, src/window.c, src/main.c, src/netbeans.c, src/os_win32.c, src/testdir/test_autochdir.vim Patch 8.2.3618 问题: getcwd() is unclear about how 'autochdir' is used. 解决方案: Update the help for getcwd(). Without any arguments always return the actual current directory. (closes #9142) 文件: runtime/doc/eval.txt, src/filepath.c, src/testdir/test_cd.vim Patch 8.2.3619 问题: Cannot use a lambda for 'operatorfunc'. 解决方案: Support using a lambda or partial. (Yegappan Lakshmanan, closes #8775) 文件: runtime/doc/map.txt, runtime/doc/options.txt, src/ops.c, src/option.c, src/optionstr.c, src/proto/ops.pro, src/proto/option.pro, src/quickfix.c, src/testdir/test_normal.vim Patch 8.2.3620 问题: Memory leak reported in libtlib. 解决方案: Call del_curterm() when cleaning up memory. Rename term.h to termdefs.h to avoid a name clash. 文件: src/term.c, src/proto/term.pro, src/alloc.c, src/configure.ac, src/auto/configure, src/config.h.in, src/Makefile, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/term.h, src/termdefs.h Patch 8.2.3621 (after 8.2.3620) 问题: Build failure. 解决方案: Add missing change. 文件: src/vim.h Patch 8.2.3622 问题: "verbose pwd" shows confusing info when :lcd does not change directory. 解决方案: Clear last_chdir_reason also when the directory does not change. (closes #9160) 文件: src/ex_docmd.c, src/testdir/test_autochdir.vim Patch 8.2.3623 问题: "$*" is expanded to "nonomatch". 解决方案: Only add "set nonomatch" when using a csh-like shell. (Christian Brabandt, closes #9159, closes #9153) 文件: src/os_unix.c, src/testdir/test_expand.vim Patch 8.2.3624 问题: When renaming a terminal buffer the status text is not updated. 解决方案: Clear the cached status text when renaming a terminal buffer. (closes #9162) 文件: src/buffer.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim Patch 8.2.3625 问题: Illegal memory access when C-indenting. 解决方案: Also set the cursor column. 文件: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3626 问题: "au!" and "au! event" cannot be followed by another command as documented. 解决方案: When a bar is found set nextcmd. 文件: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.3627 问题: difficult to know where the text starts in a window. (Sergey Vlasov) 解决方案: Add the "textoff" entry in the result of getwininfo(). (closes #9163) 文件: runtime/doc/eval.txt, src/evalwindow.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.3628 问题: Looking up terminal colors is a bit slow. 解决方案: Cache the terminal colors. (closes #9130, closes #9058) 文件: src/highlight.c, src/libvterm/include/vterm.h, src/option.c, src/optionstr.c, src/popupwin.c, src/proto/terminal.pro, src/structs.h, src/terminal.c, src/window.c, src/testdir/test_terminal3.vim, src/testdir/dumps/Test_terminal_color_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_MyTermCol_over_Terminal.dump, src/testdir/dumps/Test_terminal_color_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_MyWinCol_over_group.dump, src/testdir/dumps/Test_terminal_color_Terminal.dump, src/testdir/dumps/Test_terminal_color_gui_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_gui_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_gui_Terminal.dump, src/testdir/dumps/Test_terminal_color_gui_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_gui_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_gui_transp_Terminal.dump, src/testdir/dumps/Test_terminal_color_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_color_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_color_transp_Terminal.dump, src/testdir/dumps/Test_terminal_popup_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_MyTermCol_over_Terminal.dump, src/testdir/dumps/Test_terminal_popup_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_MyWinCol_over_group.dump, src/testdir/dumps/Test_terminal_popup_gui_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_gui_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_gui_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_gui_Terminal.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_gui_transp_Terminal.dump, src/testdir/dumps/Test_terminal_popup_transp_MyPopupHlCol.dump, src/testdir/dumps/Test_terminal_popup_transp_MyTermCol.dump, src/testdir/dumps/Test_terminal_popup_transp_MyWinCol.dump, src/testdir/dumps/Test_terminal_popup_transp_Terminal.dump, src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump, src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump Patch 8.2.3629 问题: Command completion in cmdline window uses global user commands, not local commands for the window where it was opened from. 解决方案: Use local commands. (closes #9168) 文件: src/ex_getln.c, src/proto/ex_getln.pro, src/evalvars.c, src/usercmd.c, src/testdir/test_ins_complete.vim Patch 8.2.3630 问题: Printf() with %S does not handle multi-byte correctly. 解决方案: Count cells instead of bytes. (closes #9169, closes #7486) 文件: src/strings.c, src/testdir/test_expr.vim Patch 8.2.3631 问题: "syntax enable" does not work properly in Vim9 context. 解决方案: Also handle Vim9 context. (closes #9161) 文件: src/syntax.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3632 问题: GTK3: undercurl does not get removed properly. 解决方案: Set the cairo cursor first. (closes #9170) 文件: src/gui_gtk_x11.c Patch 8.2.3633 问题: Vim9: line number of lambda is off by one. 解决方案: Add one to the line number. (closes #9083) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3634 问题: Error for already defined function uses wrong line number. 解决方案: Set SOURCING_LNUM before giving the error message. (closes #9085) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3635 问题: GTK: composing underline does not show. 解决方案: Include composing character in pango call. A few more optimizations for ligatures. (Dusan Popovic, closes #9171, closes #9147) 文件: src/gui_gtk_x11.c Patch 8.2.3636 问题: Coverity warns for unreachable code. 解决方案: Remove unreachable else block. 文件: src/gui_gtk_x11.c Patch 8.2.3637 问题: Typos in test files. 解决方案: Correct the typos. (Dominique Pellé, closes #9175) 文件: src/testdir/runtest.vim, src/testdir/test_debugger.vim, src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, src/testdir/test_flatten.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_options.vim, src/testdir/test_python2.vim, src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, src/testdir/test_recover.vim, src/testdir/test_spellfile.vim, src/testdir/test_syntax.vim, src/testdir/test_termcodes.vim, src/testdir/test_textobjects.vim, src/testdir/test_trycatch.vim, src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim Patch 8.2.3638 问题: getcompletion() always passes zero as position to custom completion function. 解决方案: Pass the pattern length. (closes #9173) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.3639 (after 8.2.2922) 问题: Line commented out accidentally. 解决方案: Uncomment. (Volodymyr Kot, closes #9172) 文件: src/main.c Patch 8.2.3640 问题: Freeze when calling term_wait() in a close callback. 解决方案: Set a "closing" flag to tell term_wait() to return. (closes #9152) 文件: src/channel.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim Patch 8.2.3641 问题: Xxd code has duplicate expressions. 解决方案: Refactor to avoid duplication. (closes #9185) 文件: src/xxd/xxd.c Patch 8.2.3642 问题: List of distributed files is outdated. 解决方案: Rename term.h to termdefs.h. 文件: Filelist Patch 8.2.3643 问题: Header for source file is outdated. 解决方案: Make the header more accurate. (closes #9186) 文件: src/map.c, src/getchar.c Patch 8.2.3644 问题: Count for 'operatorfunc' in Visual mode is not redone. 解决方案: Add the count to the redo buffer. (closes #9174) 文件: src/normal.c, src/proto/normal.pro, src/ops.c, src/testdir/test_normal.vim Patch 8.2.3645 问题: Vim9: The "no effect" error is not given for all registers. 解决方案: Include any character following '@'. (closes #8779) 文件: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3646 问题: Using <sfile> in a function gives an unexpected result. 解决方案: Give an error in a Vim9 function. (issue #9189) 文件: src/scriptfile.c, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3647 问题: GTK: when using ligatures the cursor is drawn wrong. 解决方案: Clear more characters when ligatures are used. (Dusan Popovic, closes #9190) 文件: src/gui.c Patch 8.2.3648 问题: "verbose pwd" is incorrect after dropping files on Vim. 解决方案: Set the chdir reason to "drop". 文件: src/gui.c Patch 8.2.3649 问题: Vim9: error for variable declared in while loop. 解决方案: Do not keep the first variable. (closes #9191) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3650 问题: Vim9: for loop variable can be a list member. 解决方案: Check for valid variable name. (closes #9179) 文件: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_script.vim Patch 8.2.3651 问题: Vim9: no error for :lock or :unlock with unknown variable. 解决方案: Give an error. (closes #9188) 文件: src/evalvars.c, src/errors.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3652 问题: Can only get text properties one line at a time. 解决方案: Add options to prop_list() to use a range of lines and filter by types. (Yegappan Lakshmanan, closes #9138) 文件: runtime/doc/textprop.txt, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.3653 问题: Terminal ANSI colors may be wrong. 解决方案: Initialize the color type. (closes #9198, closes #9197) 文件: src/terminal.c Patch 8.2.3654 问题: GTK: a touch-drag does not update the selection. 解决方案: Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196, closes #9194) 文件: src/gui_gtk_x11.c Patch 8.2.3655 问题: Compiler warning for using size_t for int. 解决方案: Add a type cast. (Mike Williams, closes #9199) 文件: src/vim9compile.c Patch 8.2.3656 问题: Vim9: no error for an environment variable by itself. 解决方案: Give a "without effect" error. (closes #9166) 文件: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3657 问题: Vim9: debug text misses one line of return statement. 解决方案: Add a line when not at a debug instruction. (closes #9137) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.3658 问题: Duplicate code in xxd. 解决方案: Merge duplicated code. Add more tests. (closes #9192) 文件: src/xxd/xxd.c, src/testdir/test_xxd.vim Patch 8.2.3659 问题: Integer overflow with large line number. 解决方案: Check for overflow. (closes #9202) 文件: src/errors.h, src/ex_docmd.c, src/testdir/test_excmd.vim src/normal.c, src/testdir/test_normal.vim Patch 8.2.3660 (after 8.2.3659) 问题: Overflow check uses wrong number. 解决方案: Divide by ten. 文件: src/normal.c Patch 8.2.3661 (after 8.2.3659) 问题: Test for put with large count fails. 解决方案: Adjust the counts in the test. 文件: src/testdir/test_put.vim Patch 8.2.3662 问题: Illegal memory access if malloc() fails. 解决方案: Check 'foldmethod' is not empty. (closes #9207) 文件: src/fold.c Patch 8.2.3663 问题: Using %S in printf() does not work correctly. 解决方案: Fix the problem and add more tests. (closes #9208) 文件: src/strings.c, src/testdir/test_expr.vim Patch 8.2.3664 问题: Cannot adjust sign highlighting for 'cursorline'. 解决方案: Add CursorLineSign and CursorLineFold highlight groups. (Gregory Anders, closes #9201) 文件: runtime/doc/sign.txt, runtime/doc/syntax.txt, src/drawline.c, src/highlight.c, src/optiondefs.h, src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h, src/vim.h, src/testdir/test_signs.vim Patch 8.2.3665 问题: Cannot use a lambda for 'tagfunc'. 解决方案: Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204) 文件: runtime/doc/options.txt, src/buffer.c, src/option.c, src/optionstr.c, src/proto/tag.pro, src/structs.h, src/tag.c, src/testdir/test_tagfunc.vim Patch 8.2.3666 问题: Libvterm is outdated. 解决方案: Include patches from revision 769 to revision 789. 文件: Filelist, src/libvterm/Makefile, src/libvterm/doc/seqs.txt, src/libvterm/include/vterm.h, src/libvterm/src/mouse.c, src/libvterm/src/parser.c, src/libvterm/src/state.c, src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, src/libvterm/t/17state_mouse.test, src/libvterm/t/29state_fallback.test, src/libvterm/t/40state_selection.test, src/libvterm/t/harness.c, src/libvterm/t/run-test.pl, src/libvterm/vterm.pc.in, src/terminal.c Patch 8.2.3667 问题: Building libvterm fails with MSVC. 解决方案: Don't use C99 construct. 文件: src/libvterm/src/state.c Patch 8.2.3668 问题: Messages may be corrupted. 解决方案: Use another buffer instead of IObuff. (Yegappan Lakshmanan, closes #9195) 文件: src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.3669 问题: Buffer overflow with long help argument. 解决方案: Use snprintf(). 文件: src/help.c, src/testdir/test_help.vim Patch 8.2.3670 问题: Error checks repeated several times. 解决方案: Move the checks to functions. (closes #9213) 文件: src/xxd/xxd.c Patch 8.2.3671 问题: Restarting Insert mode in prompt buffer too often when a callback switches windows and comes back. (Sean Dewar) 解决方案: Do not set "restart_edit" when already in Insert mode. (closes #9212) 文件: src/window.c, src/testdir/test_prompt_buffer.vim Patch 8.2.3672 (after 8.2.3670) 问题: Build failure with unsigned char. 解决方案: Use int instead of char. 文件: src/xxd/xxd.c Patch 8.2.3673 问题: Crash when allocating signal stack fails. 解决方案: Only using sourcing info when available. (closes #9215) 文件: src/globals.h, src/message.c Patch 8.2.3674 问题: When ml_get_buf() fails it messes up IObuff. 解决方案: Return a local pointer. (closes #9214) 文件: src/memline.c Patch 8.2.3675 问题: Using freed memory when vim_strsave() fails. 解决方案: Clear "last_sourcing_name". Check for msg_source() called recursively. (closes #8217) 文件: src/message.c Patch 8.2.3676 问题: Unused runtime file. 解决方案: Remove rgb.txt. 文件: runtime/rgb.txt Patch 8.2.3677 问题: After a put the '] mark is on the last byte of a multi-byte character. 解决方案: Move it to the first byte. (closes #9047) 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.3678 (after 8.2.3677) 问题: Illegal memory access. 解决方案: Ignore changed indent when computing byte offset. 文件: src/register.c Patch 8.2.3679 问题: objc file detected as Octave. (Antony Lee) 解决方案: Detect objc by preprocessor lines. (Doug Kearns, closes #9223, closes #9220) 文件: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.3680 问题: Repeated code in xxd. 解决方案: Change exit_on_ferror() to getc_or_die(). (closes #9226) 文件: src/xxd/xxd.c Patch 8.2.3681 问题: Cannot drag popup window after click on a status line. (Sergey Vlasov) 解决方案: Reset on_status_line. (closes #9221) 文件: src/mouse.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_drag_04.dump Patch 8.2.3682 问题: Vim9: assigning to a script variable drops the required type. 解决方案: Lookup the type of the variable and use it. (closes #9219) 文件: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_vim9_assign.vim Patch 8.2.3683 问题: Vim9: cannot use =expr in :...do commands. 解决方案: Add EX_EXPAND to the commands. (closes #9232) 文件: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim Patch 8.2.3684 问题: Blockwise insert does not handle autoindent properly. 解决方案: Adjust text column for indent. (closes #9229) 文件: src/ops.c, src/testdir/test_blockedit.vim Patch 8.2.3685 问题: Visual Studio project files are not recognized. 解决方案: Use the xml file type. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3686 问题: Filetype detection often mixes up Forth and F#. 解决方案: Add a function to inspect the file contents. (Doug Kearns) 文件: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/doc/syntax.txt, runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.3687 问题: Blockwise insert does not handle autoindent properly when tab is inserted. 解决方案: Adjust text column for indent before computing column. (closes #9229) 文件: src/ops.c, src/testdir/test_blockedit.vim Patch 8.2.3688 问题: The window title is not updated when dragging the scrollbar. 解决方案: Call maketitle(). (Christian Brabandt, closes #9238, closes #5383) 文件: src/gui.c Patch 8.2.3689 问题: ex_let_one() is too long. 解决方案: Split into multiple functions. 文件: src/evalvars.c Patch 8.2.3690 问题: Vim9: "filter #pat# cmd" does not work. 解决方案: Do not see #pat# as a comment. 文件: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3691 问题: Build failure with small features. 解决方案: Add #ifdef. (Dominique Pellé) 文件: src/gui.c Patch 8.2.3692 问题: Vim9: cannot use :func inside a :def function. 解决方案: Make it work. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, src/structs.h, src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3693 问题: Coverity warns for possibly using a NULL pointer. 解决方案: Check for NULL and give an error. 文件: src/vim9execute.c, src/errors.h Patch 8.2.3694 问题: Cannot use quotes in the count of an Ex command. 解决方案: Add getdigits_quoted(). Give an error when misplacing a quote in a range. (closes #9240) 文件: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, src/testdir/test_usercommands.vim Patch 8.2.3695 问题: Confusing error for missing key. 解决方案: Use the actual key for the error. (closes #9241) 文件: src/eval.c, src/testdir/test_listdict.vim Patch 8.2.3696 问题: Vim9: error for invalid assignment when skipping. 解决方案: Do not check white space when skipping. (closes #9243) 文件: src/evalvars.c, src/testdir/test_vim9_assign.vim Patch 8.2.3697 问题: Cannot drag a popup without a border. 解决方案: Add the "dragall" option. (closes #9218) 文件: runtime/doc/popup.txt, src/mouse.c, src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_drag_05.dump, src/testdir/dumps/Test_popupwin_drag_06.dump Patch 8.2.3698 问题: Match highlighting continues over breakindent. 解决方案: Stop before the end column. (closes #9242) 文件: src/match.c, src/proto/match.pro, src/drawline.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_linebreak.dump Patch 8.2.3699 问题: The +title feature adds a lot of #ifdef but little code. 解决方案: Graduate the +title feature. 文件: src/feature.h, src/alloc.c, src/arglist.c, src/autocmd.c, src/buffer.c, src/bufwrite.c, src/change.c, src/drawscreen.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui.c, src/gui_gtk_x11.c, src/if_xcmdsrv.c, src/locale.c, src/main.c, src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c, src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/regexp.c, src/term.c, src/ui.c, src/version.c, src/window.c, src/globals.h, src/option.h, src/optiondefs.h, runtime/doc/options.txt, runtime/doc/various.txt Patch 8.2.3700 问题: Text property highlighting continues over breakindent. 解决方案: Stop before the end column. (closes #9242) 文件: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_linebreak.dump Patch 8.2.3701 问题: Vim9: invalid LHS is not possible. 解决方案: Remove unreachable error message. 文件: src/vim9compile.c Patch 8.2.3702 问题: First key in dict is seen as curly expression and fails. 解决方案: Ignore failure of curly expression. (closes #9247) 文件: src/typval.c, src/dict.c, src/testdir/test_listdict.vim Patch 8.2.3703 (after 8.2.3686) 问题: Most people call F# "fsharp" and not "fs". 解决方案: Rename filetype "fs" to "fsharp". 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3704 问题: Vim9: cannot use a list declaration in a :def function. 解决方案: Make it work. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.3705 问题: Cannot pass a lambda name to function() or funcref(). (Yegappan Lakshmanan) 解决方案: Handle a lambda name differently. 文件: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/testdir/test_expr.vim Patch 8.2.3706 (after 8.2.3700) 问题: Text property highlighting is used on Tab. 解决方案: Only set in_linebreak when not on a Tab. (closes #9242) 文件: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_after_tab.dump Patch 8.2.3707 问题: Vim9: constant expression of elseif not recognized. 解决方案: Set instruction count before generating the expression. 文件: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3708 (after 8.2.3707) 问题: Vim9: test fails with different error. 解决方案: Correct the error number. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.3709 问题: Vim9: backtick expression expanded when not desired. 解决方案: Only expand a backtick expression for commands that expand their argument. Remove a few outdated TODO comments. 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3710 问题: Vim9: backtick expression expanded for :global. 解决方案: Check the following command. 文件: runtime/doc/vim9.txt, src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3711 问题: Vim9: memory leak when compiling :elseif fails. 解决方案: Cleanup ppconst. 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3712 问题: Cannot use Vim9 lambda for 'tagfunc'. 解决方案: Make it work, add more tests. (Yegappan Lakshmanan, closes #9250) 文件: runtime/doc/options.txt, src/insexpand.c, src/option.c, src/testdir/test_tagfunc.vim Patch 8.2.3713 问题: MS-Windows: No error message if vimgrep pattern is not matching. 解决方案: Give an error message. (Christian Brabandt, closes #9245, closes #8762) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3714 问题: Some unused assignments and ugly code in xxd. 解决方案: Leave out assignments. Use marcro for fprintf(). (closes #9246) 文件: src/xxd/xxd.c Patch 8.2.3715 问题: Vim9: valgrind reports spurious problems for a test. 解决方案: Move the test to the set that is known to fail. 文件: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_fails.vim Patch 8.2.3716 问题: Vim9: range without a command is not compiled. 解决方案: Add the ISN_EXECRANGE byte code. 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.3717 问题: Vim9: error for constant list size is only given at runtime. 解决方案: Give the error at compile time if possible. 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3718 问题: Compiler warns for unused variable without the +textprop feature. (John Marriott) 解决方案: Adjust #ifdefs. 文件: src/drawline.c Patch 8.2.3719 问题: MS-Windows: test sometimes runs into existing swap file. 解决方案: Use a different file name. 文件: src/testdir/test_buffer.vim Patch 8.2.3720 问题: Vim9: Internal error when invoking closure in legacy context. 解决方案: Give a more appropriate error message. (closes #9251) 文件: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3721 问题: Using memory freed by losing the clipboard selection. (Dominique Pellé) 解决方案: Check y_array is still valid after calling changed_lines(). (closes #9253) 文件: src/errors.h, src/register.c Patch 8.2.3722 问题: Amiga: superfluous messages for freeing lots of yanked text. 解决方案: Assume that the machine isn't that slow these days. 文件: src/register.c Patch 8.2.3723 问题: When using 'linebreak' a text property starts too early. 解决方案: Decrement "bcol" when looking for property start. (closes #9242) 文件: src/drawline.c, src/testdir/test_textprop.vim, src/testdir/dumps/Test_prop_after_linebreak.dump Patch 8.2.3724 问题: Build error for missing error message in small build. 解决方案: Correct #ifdef. 文件: src/errors.h Patch 8.2.3725 问题: Cannot use a lambda for 'completefunc' and 'omnifunc'. 解决方案: Implement lambda support. (Yegappan Lakshmanan, closes #9257) 文件: runtime/doc/options.txt, src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c, src/proto/insexpand.pro, src/proto/tag.pro, src/proto/userfunc.pro, src/structs.h, src/tag.c, src/userfunc.c, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3726 问题: README file in a config directory gets wrong filetype. 解决方案: Match README before patterns that match everything in a directory. 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3727 问题: In a gnome terminal keys are recognized as mouse events. 解决方案: Only recognize DEC mouse events when four numbers are following. (closes #9256) 文件: src/term.c, src/testdir/test_termcodes.vim Patch 8.2.3728 问题: Internal error when passing range() to list2blob(). 解决方案: Materialize the list first. (closes #9262) 文件: src/blob.c, src/testdir/test_blob.vim Patch 8.2.3729 问题: No support for squirrels. 解决方案: Recognize nuts. (closes #9259) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3730 问题: "/etc/Muttrc.d/README" gets filetype muttrc. 解决方案: Move the Muttrc.d pattern down, add exception for *.rc files. 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3731 问题: "set! termcap" shows codes in one column, but not keys. 解决方案: Also use one column for keys. (closes #9258) 文件: src/option.c, src/term.c, src/proto/term.pro, src/testdir/test_set.vim Patch 8.2.3732 (after 8.2.3731) 问题: "set! termcap" test fails. 解决方案: Account for keys without a t_xx entry. 文件: src/testdir/test_set.vim Patch 8.2.3733 问题: Vim9: using "legacy" before range does not work. 解决方案: Skip over range before parsing command. (closes #9270) 文件: src/vim9compile.c, src/usercmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.3734 问题: Vim9: crash when no pattern match found. 解决方案: Check for error. 文件: src/vim9execute.c Patch 8.2.3735 问题: Cannot use a lambda for 'imactivatefunc'. 解决方案: Add lambda support for 'imactivatefunc' and 'imstatusfunc'. (Yegappan Lakshmanan, closes #9275) 文件: runtime/doc/options.txt, src/alloc.c, src/gui_xim.c, src/optionstr.c, src/proto/gui_xim.pro, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim Patch 8.2.3736 问题: Test fails without the channel feature. (Dominique Pellé) 解决方案: Source the check.vim script. (closes #9277) 文件: src/testdir/test_vim9_fails.vim Patch 8.2.3737 问题: Test fails without the 'autochdir' option. 解决方案: Check that the option is available. (Dominique Pellé, closes #9272) 文件: src/testdir/test_cd.vim Patch 8.2.3738 问题: Screen is cleared when a FocusLost autocommand triggers. 解决方案: Do not redraw when at the hit-enter or more prompt. (closes #9274) 文件: src/misc1.c Patch 8.2.3739 问题: In wrong directory when using win_execute() with 'acd' set. 解决方案: Restore the directory when returning to the window. (closes #9276) 文件: src/window.c, src/testdir/test_autochdir.vim Patch 8.2.3740 问题: Memory left allocated on exit when using Tcl. 解决方案: Call Tcl_Finalize(). 文件: src/if_tcl.c, src/proto/if_tcl.pro, src/alloc.c Patch 8.2.3741 问题: Using freed memory in open command. 解决方案: Make a copy of the current line. 文件: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.3742 问题: Dec mouse test fails without gnome terminfo entry. 解决方案: Check if there is a gnome entry. Also fix 'acd' test on MS-Windows. (Ozaki Kiichi, closes #9282) 文件: src/testdir/test_termcodes.vim, src/testdir/test_autochdir.vim Patch 8.2.3743 问题: ":sign" can add a highlight group without a name. 解决方案: Give an error if the group name is missing. (closes #9280) 文件: src/sign.c, src/errors.h, src/testdir/test_signs.vim Patch 8.2.3744 问题: E854 is not tested; some spelling suggestions are not tested. 解决方案: Add a couple of tests. (Dominique Pellé, closes #9279) 文件: src/testdir/test_options.vim, src/testdir/test_spell.vim Patch 8.2.3745 问题: Autochdir test fails without the +channel feature. 解决方案: Remove the ch_logfile() call. (Dominique Pellé, closes #9281) 文件: src/testdir/test_autochdir.vim Patch 8.2.3746 问题: Cannot disassemble function starting with "debug" or "profile". 解决方案: Check for white space following. (closes #9273) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3747 (after 8.2.3743) 问题: Cannot remove highlight from an existing sign. (James McCoy) 解决方案: Only reject empty argument for a new sign. 文件: src/sign.c, src/testdir/test_signs.vim Patch 8.2.3748 (after 8.2.3747) 问题: Giving an error for an empty sign argument breaks a plugin. 解决方案: Do not give an error. 文件: src/sign.c, src/errors.h, src/testdir/test_signs.vim Patch 8.2.3749 问题: Error messages are everywhere. 解决方案: Move more error messages to errors.h and adjust the names. 文件: src/errors.h, src/regexp_bt.c, src/regexp.c, src/regexp_nfa.c, src/globals.h, src/memfile.c, src/tag.c, src/getchar.c, src/bufwrite.c, src/cmdexpand.c Patch 8.2.3750 问题: Error messages are everywhere. 解决方案: Move more error messages to errors.h and adjust the names. 文件: src/globals.h, src/errors.h, src/blob.c, src/buffer.c, src/channel.c, src/ex_docmd.c, src/job.c, src/list.c, src/mark.c, src/misc1.c, src/os_unix.c, src/popupwin.c, src/register.c, src/session.c, src/spellfile.c, src/term.c, src/userfunc.c Patch 8.2.3751 问题: Cannot assign a lambda to an option that takes a function. 解决方案: Automatically convert the lambda to a string. (Yegappan Lakshmanan, closes #9286) 文件: runtime/doc/options.txt, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/option.c, src/option.h, src/optiondefs.h, src/proto/option.pro, src/spell.c, src/typval.c, src/vim9compile.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3752 问题: Build error when using Photon GUI. 解决方案: Adjust #ifdef. (closes #9288) 文件: src/beval.c Patch 8.2.3753 问题: Vim9: function unreferenced while called is never deleted. 解决方案: Delete a function when no longer referenced. 文件: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro Patch 8.2.3754 (after 8.2.3615) 问题: Undesired changing of the indent of the first formatted line. 解决方案: Do not indent the first formatted line. 文件: src/textformat.c, src/testdir/test_indent.vim Patch 8.2.3755 问题: Coverity warns for using a buffer in another scope. 解决方案: Declare the buffer in a common scope. 文件: src/evalvars.c Patch 8.2.3756 问题: might crash when callback is not valid. 解决方案: Check for valid callback. (Yegappan Lakshmanan, closes #9293) 文件: src/insexpand.c, src/option.c, src/tag.c, src/job.c, src/userfunc.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim Patch 8.2.3757 问题: An overlong highlight group name is silently truncated. 解决方案: Give an error if the name is too long. (closes #9289) 文件: src/errors.h, src/highlight.c, src/testdir/test_highlight.vim Patch 8.2.3758 问题: Options that take a function insufficiently tested. 解决方案: Add additional tests and enhance existing tests. (Yegappan Lakshmanan, closes #9298) 文件: src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tagfunc.vim Patch 8.2.3759 问题: Quickfix buffer becomes hidden while still in a window. 解决方案: Check if the closed window is the last window showing the quickfix buffer. (Yegappan Lakshmanan, closes #9303, closes #9300) 文件: src/quickfix.c, src/testdir/test_quickfix.vim, src/window.c Patch 8.2.3760 问题: Not automatically handling gnome terminal mouse like xterm. 解决方案: Default 'ttymouse' to "xterm" and recognize Focus events. (issue #9296) 文件: src/os_unix.c Patch 8.2.3761 问题: Focus change is not passed on to a terminal window. 解决方案: If the current window is a terminal and focus events are enabled send a focus event escape sequence to the terminal. 文件: src/ui.c, src/terminal.c, src/proto/terminal.pro, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_focus_1.dump, src/testdir/dumps/Test_terminal_focus_2.dump Patch 8.2.3762 问题: If the quickfix buffer is wiped out getqflist() still returns its number. 解决方案: Use zero if the buffer is no longer present. (Yegappan Lakshmanan, closes #9306) 文件: src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.3763 问题: When editing the command line a FocusLost callback may cause the screen to scroll up. 解决方案: Do not redraw at the last line but at the same place where the command line was before. (closes #9295) 文件: src/ex_getln.c, src/ui.c, src/beval.c, src/channel.c, src/drawscreen.c, src/proto/drawscreen.pro, src/job.c, src/popupwin.c, src/sound.c, src/terminal.c, src/time.c, src/testdir/test_terminal.vim, src/testdir/dumps/Test_terminal_focus_1.dump, src/testdir/dumps/Test_terminal_focus_2.dump, src/testdir/dumps/Test_terminal_focus_3.dump Patch 8.2.3764 问题: Cannot see any text when window was made zero lines or zero columns. 解决方案: Ensure there is at least one line and column. (fixes #9307) 文件: src/window.c, src/proto/window.pro, src/normal.c, src/edit.c, src/testdir/test_window_cmd.vim Patch 8.2.3765 问题: Vim9: cannot use a lambda for 'opfunc' and others. 解决方案: Convert the lambda to a string. 文件: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3766 问题: Converting a funcref to a string leaves out "g:", causing the meaning of the name depending on the context. 解决方案: Prepend "g:" for a global function. 文件: src/eval.c, src/testdir/test_functions.vim Patch 8.2.3767 (after 8.2.3766) 问题: Crash when using NULL partial. 解决方案: Check for NULL. 文件: src/eval.c Patch 8.2.3768 问题: timer_info() has the wrong repeat value in a timer callback. (Sergey Vlasov) 解决方案: Do not add one to the repeat value when in the callback. (closes #9294) 文件: src/time.c, src/testdir/test_timers.vim Patch 8.2.3769 问题: Zig files are not recognized. 解决方案: Add *.zig. (Gregory Anders, closes #9313) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3770 问题: New compiler warnings from clang-12 and clang-13. 解决方案: Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314) 文件: .github/workflows/ci.yml, ci/config.mk.clang-12.sed, src/os_unix.c, src/spellfile.c Patch 8.2.3771 问题: Vim9: accessing freed memory when checking type. 解决方案: Make a copy of a function type. 文件: src/structs.h, src/evalvars.c, src/vim9script.c, src/testdir/test_vim9_func.vim Patch 8.2.3772 问题: Timer info test fails on slow machine. 解决方案: Use WaitForAssert(). 文件: src/testdir/test_timers.vim Patch 8.2.3773 问题: Wrong window size when a modeline changes 'columns' and there is more than one tabpage. (Michael Soyka) 解决方案: Adjust the frames of all tabpages. (closes #9315) 文件: src/window.c Patch 8.2.3774 (after 8.2.3773) 问题: Test for command line height fails. 解决方案: Use another way to handle window size change. 文件: src/structs.h, src/window.c Patch 8.2.3775 问题: Vim9: lambda compiled without outer context when debugging. 解决方案: When compiling a lambda for debugging also compile it without. (closes #9302) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.3776 问题: When a tags file line is long a tag may not be found. 解决方案: When increasing the buffer size read the same line again. 文件: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.3777 问题: Spell file write error not checked. 解决方案: Check writing the prefix conditions. (Bjorn Linse, closes #9323) 文件: src/spellfile.c Patch 8.2.3778 问题: Lambda debug test fails in some configurations. 解决方案: Check feature in a legacy function. 文件: src/testdir/test_vim9_script.vim Patch 8.2.3779 问题: Using freed memory when defining a user command from a user command. 解决方案: Do not use the command pointer after executing the command. (closes #9318) 文件: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.3780 问题: ":cd" works differently on MS-Windows. 解决方案: Add the 'cdhome' option. (closes #9324) 文件: runtime/doc/editing.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/ex_docmd.c, src/option.h, src/optiondefs.h, src/testdir/runtest.vim, src/testdir/test_options.vim Patch 8.2.3781 问题: The option window script is outdated. 解决方案: Add several changes. 文件: runtime/optwin.vim Patch 8.2.3782 问题: Vim9: no error if a function shadows a script variable. 解决方案: Check the function doesn't shadow a variable. (closes #9310) 文件: src/userfunc.c, src/evalvars.c, src/vim.h, src/testdir/test_vim9_script.vim Patch 8.2.3783 问题: Confusing error for using a variable as a function. 解决方案: If a function is not found but there is a variable, give a more useful error. (issue #9310) 文件: src/eval.c, src/userfunc.c, src/proto/userfunc.pro, src/structs.h, src/vim9execute.c, src/testdir/test_functions.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim Patch 8.2.3784 问题: The help for options is outdated. 解决方案: Include all the recent changes. 文件: runtime/doc/options.txt Patch 8.2.3785 问题: Running CI on macOS with gcc is not useful. 解决方案: Only use clang. (Ozaki Kiichi, closes #9326) Also build with normal features. 文件: .github/workflows/ci.yml Patch 8.2.3786 问题: Test fails because of using Vim9 syntax in legacy function. 解决方案: Add "call". 文件: src/testdir/test_functions.vim Patch 8.2.3787 问题: No proper formatting of a C line comment after a statement. 解决方案: Find the start of the line comment, insert the comment leader and indent the comment properly. 文件: src/change.c, src/proto/change.pro, src/search.c, src/proto/search.pro, src/cindent.c, src/edit.c, src/normal.c, src/textformat.c, src/testdir/test_textformat.vim, src/testdir/test_cindent.vim Patch 8.2.3788 问题: Lambda for option that is a function may be garbage collected. 解决方案: Set a reference in the funcref. (Yegappan Lakshmanan, closes #9330) 文件: src/eval.c, src/evalbuffer.c, src/evalvars.c, src/gui_xim.c, src/insexpand.c, src/ops.c, src/proto/eval.pro, src/proto/gui_xim.pro, src/proto/insexpand.pro, src/proto/ops.pro, src/proto/tag.pro, src/quickfix.c, src/tag.c, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3789 问题: Test_window_minimal_size can fail on a slow machine. 解决方案: Do not rely on timers firing at the expected time. (Ozaki Kiichi, closes #9335) 文件: src/testdir/test_window_cmd.vim Patch 8.2.3790 问题: Test for term_gettitle() fails in some environments. 解决方案: Make the digits after "VIM" optional. (Kenta Sato, closes #9334) 文件: src/testdir/test_terminal2.vim Patch 8.2.3791 问题: Build error with +cindent but without +smartindent. 解决方案: Move declaration of "do_cindent". (John Marriott) 文件: src/change.c Patch 8.2.3792 问题: Setting *func options insufficiently tested. 解决方案: Improve tests. (Yegappan Lakshmanan, closes #9337) 文件: src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3793 问题: Using "g:Func" as a funcref does not work in script context because "g:" is dropped. 解决方案: Keep "g:" in the name. Also add parenthesis to avoid confusing operator precedence. (closes #9336) 文件: src/evalvars.c, src/testdir/test_vim9_func.vim Patch 8.2.3794 问题: Vim9: cannot find script-local func using "s:". (Yegappan Lakshmanan) 解决方案: Skip the "s:". 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3795 问题: Too many #ifdefs. 解决方案: Graduate the jumplist feature. 文件: runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h, src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c, src/mark.c, src/normal.c, src/undo.c, src/version.c, src/viminfo.c, src/window.c, src/structs.h, src/testdir/test_changelist.vim, src/testdir/test_jumplist.vim, src/testdir/test_normal.vim Patch 8.2.3796 问题: The funcexe_T struct members are not named consistently. 解决方案: Prefix "fe_" to all the members. 文件: src/structs.h, src/eval.c, src/list.c, src/regexp.c, src/terminal.c, src/userfunc.c, src/vim9execute.c Patch 8.2.3797 问题: No good reason to limit the message history in the tiny version. 解决方案: Always use 200. 文件: runtime/doc/message.txt, src/feature.h Patch 8.2.3798 问题: A :def callback function postpones an error message. 解决方案: Display the error after calling the function. (closes #9340) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_opfunc_error.dump Patch 8.2.3799 (after 8.2.3798) 问题: Edit test hangs or fails. 解决方案: Do not rethrow an exception when inside try/catch. 文件: src/userfunc.c Patch 8.2.3800 问题: When cross compiling the output of "uname" cannot be set. (Ben Reeves) 解决方案: Use cache variables. (closes #9338) 文件: src/configure.ac, src/auto/configure Patch 8.2.3801 问题: If a terminal shows in two windows, only one is redrawn. 解决方案: Reset the dirty row range only after redrawing all windows. (closes #9341) 文件: src/terminal.c, src/proto/terminal.pro, src/drawscreen.c, src/testdir/test_terminal.vim Patch 8.2.3802 问题: Terminal in two windows test fails on some systems. 解决方案: Wait a bit between commands. 文件: src/testdir/test_terminal.vim Patch 8.2.3803 问题: Crash when 'writedelay' is set and using a terminal window to execute a shell command. 解决方案: Check that "tl_vterm" isn't NULL. (closes #9346) 文件: src/terminal.c Patch 8.2.3804 问题: Script context not set when copying 'swf' and 'ts'. 解决方案: Use COPY_OPT_SCTX with the right argument. (closes #9347) 文件: src/option.c Patch 8.2.3805 问题: i3config files are not recognized. 解决方案: Add patterns to match i3config files. (Quentin Hibon, closes #7969) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3806 问题: Terminal focus test fails sometimes. 解决方案: Run the test function before others. 文件: src/testdir/test_terminal.vim Patch 8.2.3807 问题: Vim9: can call import with star directly. 解决方案: Check that the import used star. 文件: src/userfunc.c, src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.3808 问题: Vim9: obsolete TODO items 解决方案: Remove the comments. 文件: src/vim9execute.c Patch 8.2.3809 问题: Vim9: crash when garbage collecting a nested partial. (Virginia Senioria) 解决方案: Set references in all the funcstacks. (closes #9348) 文件: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, src/eval.c, src/testdir/test_vim9_func.vim Patch 8.2.3810 问题: Vim9: expr4 test fails on MS-Windows. 解决方案: Do not give an error for a missing function name when skipping. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3811 问题: The opfunc error test fails on a slow machine. 解决方案: Use WaitForAssert(). 文件: src/testdir/test_vim9_func.vim Patch 8.2.3812 问题: Vim9: leaking memory in numbered function test. 解决方案: Skip "g:" when checking for numbered function. Clean up after errors properly. 文件: src/userfunc.c Patch 8.2.3813 问题: confusing error when using :cc without error list. (Gary Johnson) 解决方案: Give the "no errors" error. 文件: src/ex_docmd.c, src/testdir/test_quickfix.vim Patch 8.2.3814 问题: .csx files and .sln files are not recognized. 解决方案: Add filetype patterns. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3815 问题: Vim9: cannot have a multi-line dict inside a block. 解决方案: Do not split the command at a line break, handle NL characters as white space. 文件: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3816 问题: Compiler warning for possible loss of data on MS-Windows. 解决方案: Add type cast. (Mike Williams, closes #9349) 文件: src/userfunc.c Patch 8.2.3817 (after 8.2.3815) 问题: Vim9: Not using NL as command end does not work for :autocmd. 解决方案: Only ignore NL for commands with an expression argument. 文件: src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_usercommands.vim Patch 8.2.3818 问题: Cannot filter or map characters in a string. 解决方案: Make filter() and map() work on a string. (Naruhiko Nishino, closes #9327) 文件: runtime/doc/eval.txt, src/errors.h, src/list.c, src/testdir/test_filter_map.vim Patch 8.2.3819 (after 8.2.3818) 问题: Test fails because error message changed. 解决方案: Update screendumps. 文件: src/testdir/dumps/Test_popupwin_three_errors_1.dump, src/testdir/dumps/Test_popupwin_three_errors_2.dump Patch 8.2.3820 问题: "vrc" does not replace composing characters, while "rc" does. 解决方案: Check the byte length including composing characters. (closes #9351) 文件: src/ops.c, src/testdir/test_visual.vim Patch 8.2.3821 问题: ASAN test run fails. 解决方案: Use asan_symbolize-13 instead of asan_symbolize-11. 文件: .github/workflows/ci.yml Patch 8.2.3822 问题: Leaking memory in map() and filter(), cannot use a string argument in Vim9 script. 解决方案: Fix the leak, adjust the argument check, also run the tests as Vim9 script. (Yegappan Lakshmanan, closes #9354) 文件: src/errors.h, src/evalfunc.c, src/list.c, src/proto/typval.pro, src/testdir/test_filter_map.vim, src/testdir/test_vim9_builtin.vim, src/typval.c Patch 8.2.3823 问题: Test for visual replace is in wrong function. 解决方案: Move it to another function. 文件: src/testdir/test_visual.vim Patch 8.2.3824 问题: No ASAN support for MSVC. 解决方案: Add ASAN support and fix a couple of uncovered problems. (Yegappan Lakshmanan, closes #9357) 文件: src/Make_mvc.mak, src/findfile.c, src/os_mswin.c, src/testdir/test_fnamemodify.vim Patch 8.2.3825 问题: Various comments could be improved. 解决方案: Improve the comments. 文件: src/getchar.c, src/mbyte.c, src/regexp_nfa.c, src/testdir/test_edit.vim, src/gui_motif.c Patch 8.2.3826 问题: Vim9: using "g:Func" as a funcref does not work in a :def function. 解决方案: Include "g:" in the function name. (closes #9336) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3827 问题: Huntr badge does not really fit in the list. 解决方案: Move the link to Huntr to the issue template. 文件: Filelist, .github/ISSUE_TEMPLATE/bug_report.yml, README.md Patch 8.2.3828 问题: when opening a terminal from a timer the first typed character is lost. (Virginia Senioria) 解决方案: When opening a terminal while waiting for a character put K_IGNORE in the input buffer. 文件: src/terminal.c, src/edit.c, src/testdir/test_terminal.vim Patch 8.2.3829 问题: No error when setting a func option to a script-local function. 解决方案: Give an error if the name starts with "s:". (closes #9358) 文件: src/option.c, src/testdir/test_tagfunc.vim, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump Patch 8.2.3830 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/globals.h, src/errors.h, src/buffer.c, src/dict.c, src/diff.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/misc2.c, src/quickfix.c, src/typval.c, src/ui.c, src/userfunc.c, src/vim9compile.c, src/vim9execute.c, src/vim9type.c, src/window.c Patch 8.2.3831 问题: Opfunc test fails when missing feature changes function name. (Dominique Pellé) 解决方案: Check the relevant screen line instead of using a screendump. (closes #9360) 文件: src/testdir/test_vim9_func.vim, src/testdir/dumps/Test_opfunc_error.dump Patch 8.2.3832 (after 8.2.3830) 问题: Test fails because of changed error message. 解决方案: Adjust the expected error message. 文件: src/testdir/test_vimscript.vim Patch 8.2.3833 问题: Error from term_start() not caught by try/catch. 解决方案: save and restore did_emsg when applying autocommands. (Ozaki Kiichi, closes #9361) 文件: src/autocmd.c, src/testdir/test_terminal3.vim Patch 8.2.3834 问题: Test_out_cb often fails on Mac. 解决方案: Increase the timeout with every retry. 文件: src/testdir/test_channel.vim Patch 8.2.3835 问题: The inline-function example does not work. 解决方案: Drop ":let". Add EX_EXPR_ARG to CMD_var. (issue #9352) 文件: runtime/doc/vim9.txt, src/ex_cmds.h, src/testdir/test_vim9_expr.vim Patch 8.2.3836 问题: Vim9: comment after expression not skipped to find NL. 解决方案: After evaluating an expression look for a newline after a # comment. 文件: src/eval.c Patch 8.2.3837 问题: QNX: crash when compiled with GUI but using terminal. 解决方案: Check gui.in_use is set. (Hirohito Higashi, closes #9363) 文件: src/autocmd.c Patch 8.2.3838 问题: Cannot use script-local function for setting *func options. 解决方案: Use the script context. (Yegappan Lakshmanan, closes #9362) 文件: src/option.c, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim Patch 8.2.3839 问题: Using \z() with \z1 not tested for syntax highlighting. 解决方案: Add a test. (Dominique Pellé, closes #9365) 文件: src/testdir/test_syntax.vim Patch 8.2.3840 问题: Useless test for negative index in check functions. 解决方案: Remove the test for negative index. (Naruhiko Nishino, closes #9364) 文件: src/typval.c Patch 8.2.3841 问题: Vim9: outdated TODO items, disabled tests that work. 解决方案: Remove TODO items, run tests that work now. Check that a dict item isn't locked. 文件: src/vim9execute.c, src/evalvars.c, src/errors.h, src/globals.h, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3842 问题: Vim9: can change locked list and list items. 解决方案: Check that a list and list item isn't locked. 文件: src/vim9execute.c, src/testdir/test_listdict.vim Patch 8.2.3843 问题: Dep3patch files are not recognized. 解决方案: Recognize dep3patch files by their location and content. (James McCoy, closes #9367) 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3844 问题: Vim9: no type error if assigning a value with type func(number) to a variable of type func(string). 解决方案: Use check_type_maybe(): return MAYBE if a runtime type check is useful. (issue #8492) 文件: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.3845 问题: Vim9: test fails when the channel feature is missing. 解决方案: Check for the channel feature. (Dominique Pellé, closes #9368) 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.3846 问题: No error when using control character for 'lcs' or 'fcs'. 解决方案: Use char2cells() to check the width. (closes #9369) 文件: src/screen.c, src/testdir/test_display.vim, src/testdir/test_listchars.vim Patch 8.2.3847 问题: Illegal memory access when using a lambda with an error. 解决方案: Avoid skipping over the NUL after a string. 文件: src/eval.c, src/testdir/test_lambda.vim Patch 8.2.3848 问题: Cannot use reduce() for a string. 解决方案: Make reduce() work with a string. (Naruhiko Nishino, closes #9366) 文件: runtime/doc/eval.txt, src/errors.h, src/evalfunc.c, src/list.c, src/typval.c, src/proto/typval.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3849 问题: Functions implementing reduce and map are too long. 解决方案: Use a function for each type of value. Add a few more test cases and add to the help. (Yegappan Lakshmanan, closes #9370) 文件: runtime/doc/eval.txt, src/list.c, src/testdir/test_listdict.vim Patch 8.2.3850 问题: Illegal memory access when displaying a partial. 解决方案: Terminate the string with a NUL. (closes #9371) 文件: src/eval.c, src/testdir/test_messages.vim Patch 8.2.3851 问题: Vim9: overhead when comparing string, dict or function. 解决方案: Call the intended compare function directly. Refactor to avoid duplicated code. 文件: src/vim9execute.c, src/typval.c, src/proto/typval.pro Patch 8.2.3852 问题: Vim9: not enough tests. 解决方案: Also run existing tests for Vim9 script. Make errors more consistent. 文件: src/testdir/test_listdict.vim, src/eval.c, src/vim9compile.c, src/errors.h Patch 8.2.3853 问题: Vim9: not enough tests. 解决方案: Run more existing tests for Vim9 script. 文件: src/testdir/test_listdict.vim Patch 8.2.3854 问题: Vim9: inconsistent arguments for test functions. 解决方案: When :def function and script have different arguments use a list with two items instead of a separate function. 文件: src/testdir/vim9.vim, src/testdir/test_execute_func.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.3855 问题: Illegal memory access when displaying a blob. 解决方案: Append a NUL at the end. (Yegappan Lakshmanan, closes #9372) 文件: src/blob.c, src/regexp_nfa.c, src/testdir/test_blob.vim, src/testdir/test_messages.vim Patch 8.2.3856 问题: Vim9: not enough tests. 解决方案: Run more expression tests also with Vim9. Fix an uncovered problem. 文件: src/vim9compile.c, src/testdir/test_expr.vim, src/testdir/vim9.vim Patch 8.2.3857 问题: Vim9: inconsistent error for using function(). 解决方案: Use a runtime type check for the result of function(). (closes #8492) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3858 问题: Vim9: not enough tests. 解决方案: Add tests for :try/:catch and :redir. Add missing type check. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.3859 问题: Vim9: some code lines not tested. 解决方案: Add a few specific tests. 文件: src/vim9compile.c, src/testdir/test_vim9_cmd.vim, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.3860 问题: Vim9: codecov struggles with the file size. 解决方案: Split vim9compile.c into four files. 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9expr.c, src/proto/vim9expr.pro, src/vim9cmds.c, src/proto/vim9cmds.pro, src/vim9.h, src/vim9execute.c, src/vim9script.c, src/proto.h, src/Makefile, src/Make_ami.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms Patch 8.2.3861 问题: List of distributed files is outdated. 解决方案: Add new files. 文件: Filelist Patch 8.2.3862 问题: Crash on exit with EXITFREE and using win_execute(). 解决方案: Also save and restore tp_topframe. (issue #9374) 文件: src/evalwindow.c, src/testdir/test_execute_func.vim Patch 8.2.3863 (after 8.2.3860) 问题: Various build flags accidentally enabled. 解决方案: Revert several lines in Makefile. 文件: src/Makefile Patch 8.2.3864 问题: Cannot disable requesting key codes from xterm. 解决方案: Add the 'xtermcodes' option, default on. 文件: runtime/doc/options.txt, runtime/doc/term.txt, src/option.h, src/optiondefs.h, src/term.c, runtime/optwin.vim Patch 8.2.3865 问题: Vim9: compiler complains about using "try" as a struct member. 解决方案: Rename "try" to "tryref". 文件: src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/vim9instr.c Patch 8.2.3866 问题: Vim9: type checking global variables is inconsistent. 解决方案: Use the "unknown" type in more places. 文件: src/globals.h, src/vim9expr.c, src/vim9instr.c, src/vim9cmds.c, src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3867 问题: Implementation of some list functions too complicated. 解决方案: Refactor do_sort_uniq(), f_count() and extend() (Yegappan Lakshmanan, closes #9378) 文件: src/list.c Patch 8.2.3868 (after 8.2.3866) 问题: Vim9: function test fails. 解决方案: Add missing changes. Add test for earlier patch. 文件: src/vim9type.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3869 问题: Vim9: type checking for "any" is inconsistent. 解决方案: Always use a runtime type check for using "any" for a more specific type. 文件: src/vim9type.c, src/vim9compile.c, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.3870 问题: MS-Windows: wrong working directory when opening two files with right-click context menu. (Gabriel Dupras) 解决方案: Use the working directory and pass it on to the process creation. (Nir Lichtman, closes #9382, closes #8874) 文件: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h Patch 8.2.3871 问题: List.c contains code for dict and blob. 解决方案: Refactor to put code where it belongs. (Yegappan Lakshmanan, closes #9386) 文件: src/blob.c, src/dict.c, src/list.c, src/proto/blob.pro, src/proto/dict.pro, src/proto/list.pro, src/proto/strings.pro, src/strings.c, src/structs.h, src/testdir/test_filter_map.vim, src/testdir/test_listdict.vim, src/testdir/test_sort.vim Patch 8.2.3872 问题: Vim9: finddir() and uniq() return types can be more specific. 解决方案: Adjust the return type. 文件: src/evalfunc.c, src/testdir/vim9.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3873 问题: go.mod files are not recognized. 解决方案: Check for the file name. (closes #9380) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3874 问题: Cannot highlight the number column for a sign. 解决方案: Add the "numhl" argument. (James McCoy, closes #9381) 文件: runtime/doc/options.txt, runtime/doc/sign.txt, src/drawline.c, src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h, src/testdir/test_signs.vim Patch 8.2.3875 问题: gcc complains about buffer overrun. 解决方案: Use mch_memmove() instead of STRCPY(). (John Marriott) 文件: src/dict.c Patch 8.2.3876 问题: 'cindent' does not recognize inline namespace. 解决方案: Skip over "inline" to find "namespace". (closes #9383) 文件: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.3877 问题: Function does not abort after a type error in compare 解决方案: Check getting number fails. (closes #9384) 文件: src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.3878 问题: Vim9: debugger tries to read more lines than there are. 解决方案: Check the number of lines. (closes #9394) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.3879 问题: getreg() and getregtype() contain dead code. 解决方案: Remove the needless check. (closes #9392) Also refactor to put common code in a shared function. 文件: src/evalfunc.c Patch 8.2.3880 问题: Solution filter files are not recognized. 解决方案: Add pattern *.slnf and use json. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3881 问题: QNX: crash when compiled with GUI but using terminal. 解决方案: Check the gui.in_use flag. (Hirohito Higashi, closes #9391) 文件: src/main.c Patch 8.2.3882 (after 8.2.3879) 问题: More duplicated code in f_getreginfo(). 解决方案: Also use getreg_get_regname(). (closes #9398) 文件: src/evalfunc.c Patch 8.2.3883 问题: Crash when switching to other regexp engine fails. 解决方案: Check for regprog being NULL. 文件: src/ex_cmds.c Patch 8.2.3884 问题: Crash when clearing the argument list while using it. 解决方案: Lock the argument list for ":all". 文件: src/arglist.c, src/testdir/test_arglist.vim Patch 8.2.3885 问题: Arglist test fails. 解决方案: Adjust for locking the arglist for ":all". 文件: src/testdir/test_arglist.vim Patch 8.2.3886 问题: Can define autocmd for every event by using "au!". 解决方案: Check if a command is present also for "au!". 文件: src/autocmd.c, src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim Patch 8.2.3887 问题: E1135 is used for two different errors. 解决方案: Renumber one error. 文件: src/errors.h, src/testdir/test_mapping.vim Patch 8.2.3888 问题: The argument list may contain duplicates. 解决方案: Add the :argdedeupe command. (Nir Lichtman, closes #6235) 文件: runtime/doc/editing.txt, runtime/doc/index.txt, src/arglist.c, src/ex_cmdidxs.h, src/ex_cmds.h, src/proto/arglist.pro, src/testdir/test_arglist.vim Patch 8.2.3889 问题: Duplicate code for translating script-local function name. 解决方案: Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan, closes #9393) 文件: src/evalfunc.c, src/evalvars.c, src/option.c, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_expr.vim, src/testdir/test_normal.vim Patch 8.2.3890 问题: Vim9: type check for using v: variables is basic. 解决方案: Specify a more precise type. 文件: src/evalvars.c, src/proto/evalvars.pro, src/vim9instr.c, src/testdir/test_vim9_expr.vim Patch 8.2.3891 问题: Github CI: workflows may overlap. 解决方案: Cancel previous workflows when starting a new one. (Yegappan Lakshmanan, closes #9400) 文件: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml Patch 8.2.3892 问题: When modifyOtherKeys is used CTRL-C is not recognized. 解决方案: Check for uppercase C as well, fix minimum length. 文件: src/ui.c Patch 8.2.3893 问题: Vim9: many local variables are initialized with an instruction. 解决方案: Initialize local variables to zero to avoid the instructions. 文件: src/vim9execute.c, src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3894 问题: Vim9: no proper type check for first argument of call(). 解决方案: Add specific type check. 文件: src/evalfunc.c, src/typval.c, src/proto/typval.pro, src/errors.h, src/testdir/test_vim9_builtin.vim Patch 8.2.3895 问题: Vim9: confusing error when using function() with a number. 解决方案: Check for a function or string argument. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3896 问题: Vim9: no test for nested function not available later. 解决方案: Add a test. 文件: src/testdir/test_vim9_func.vim Patch 8.2.3897 问题: Vim9: the second argument of map() and filter() is not checked at compile time. 解决方案: Add more specific type check for the second argument. 文件: src/evalfunc.c, src/globals.h, src/list.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.3898 问题: Vim9: not sufficient testing for variable initialization. 解决方案: Add another test case. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.3899 (after 8.2.3897) 问题: Vim9: test for map() on string fails. 解决方案: Expect string return type. 文件: src/evalfunc.c Patch 8.2.3900 问题: It is not easy to use a script-local function for an option. 解决方案: recognize s: and <SID> at the start of the expression. (Yegappan Lakshmanan, closes #9401) 文件: runtime/doc/diff.txt, runtime/doc/fold.txt, runtime/doc/options.txt, runtime/doc/print.txt, src/optionstr.c, src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, src/testdir/test_fold.vim, src/testdir/test_gf.vim, src/testdir/test_gui.vim, src/testdir/test_hardcopy.vim, src/testdir/test_normal.vim Patch 8.2.3901 问题: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script. 解决方案: Do not restore 'cpo' at the end of the main .vimrc. 文件: runtime/doc/vim9.txt, runtime/doc/options.txt, src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim Patch 8.2.3902 问题: Vim9: double free with nested :def function. 解决方案: Pass "line_to_free" from compile_def_function() and make sure cmdlinep is valid. 文件: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.3903 问题: "gM" does not count tabs as expected. 解决方案: Use linetabsize() instead of mb_string2cells(). (closes #9409) 文件: src/normal.c, src/testdir/test_normal.vim Patch 8.2.3904 问题: Vim9: skip expression type is not checked at compile time. 解决方案: Add argument type checks. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3905 问题: Dockerfile using prefix name not recognized. 解决方案: Recognize Dockerfile.*. (closes #9410) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3906 问题: Vim9 help still contains "under development" warnings. 解决方案: Remove the explicit warning. 文件: runtime/doc/vim9.txt Patch 8.2.3907 问题: Error messages are spread out. 解决方案: Move error messages to errors.h. Avoid duplicates. 文件: src/userfunc.c, src/ex_cmds.c, src/viminfo.c, src/errors.h, src/testdir/test_user_func.vim Patch 8.2.3908 问题: Cannot use a script-local function for 'foldtext'. 解决方案: Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411) 文件: runtime/doc/fold.txt, src/optionstr.c, src/strings.c, src/testdir/test_blob.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, src/testdir/test_listdict.vim Patch 8.2.3909 问题: Containerfile using prefix name not recognized. 解决方案: Recognize Containerfile.*. 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3910 问题: When the compare function of sort() produces and error then sort() does not abort. 解决方案: Check if did_emsg was incremented. 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3911 问题: Vim9: type check for filter() does not accept unknown. 解决方案: Also accept unknown for the return type. (closes #9413) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3912 问题: The ins_complete() function is much too long. 解决方案: Split it up into multiple functions. (Yegappan Lakshmanan, closes #9414) 文件: src/insexpand.c Patch 8.2.3913 问题: Help for expressions does not mention Vim9 syntax. 解决方案: Add the rules for Vim9 to the expression help. Rename functions to match the help. 文件: runtime/doc/vim9.txt, runtime/doc/eval.txt, src/vim9expr.c Patch 8.2.3914 问题: Various spelling mistakes in comments. 解决方案: Fix the mistakes. (Dominique Pellé, closes #9416) 文件: src/alloc.c, src/blowfish.c, src/buffer.c, src/cindent.c, src/clipboard.c, src/diff.c, src/drawline.c, src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/findfile.c, src/fold.c, src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c, src/if_python.c, src/if_python3.c, src/if_xcmdsrv.c, src/main.c, src/memline.c, src/menu.c, src/message.c, src/misc1.c, src/move.c, src/option.c, src/os_amiga.c, src/os_mac.h, src/os_mac_conv.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/os_win32.h, src/quickfix.c, src/regexp_nfa.c, src/screen.c, src/scriptfile.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/strings.c, src/term.c, src/terminal.c, src/testdir/test_debugger.vim, src/testdir/test_source.vim, src/textformat.c, src/userfunc.c, src/vim.h, src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/winclip.c, src/window.c Patch 8.2.3915 问题: illegal memory access when completing with invalid bytes. 解决方案: Avoid going over the end of the completion text. 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3916 问题: No error for passing an invalid line number to append(). 解决方案: In Vim9 script check for a non-negative number. (closes #9417) 文件: src/evalbuffer.c, src/textprop.c, src/errors.h, src/indent.c, src/eval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3917 问题: The eval.txt help file is way too big. 解决方案: Move the builtin function details to a separate file. 文件: runtime/doc/eval.txt, runtime/doc/builtin.txt, runtime/doc/Makefile, runtime/doc/help.txt, runtime/doc/remote.txt Patch 8.2.3918 (after 8.2.3916) 问题: Function list test fails. 解决方案: Adjust the test for the new location of the function list. 文件: src/testdir/test_function_lists.vim Patch 8.2.3919 问题: Vim9: wrong argument for append() results in two errors. 解决方案: Check did_emsg. Also for setline(). Adjust the help for appendbufline(). 文件: runtime/doc/builtin.txt, src/evalbuffer.c, src/typval.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3920 问题: Restoring directory after using another window is inefficient. 解决方案: Only restore the directory for win_execute(). Apply 'autochdir' only when needed. 文件: src/evalwindow.c, src/testdir/test_autochdir.vim Patch 8.2.3921 问题: The way xdiff is used is inefficient. 解决方案: Use hunk_func instead of the out_line callback. (Lewis Russell, closes #9344) 文件: src/diff.c Patch 8.2.3922 问题: Cannot build with dynamic Ruby 3.1. 解决方案: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki Kiichi, closes #9420) 文件: ci/config.mk.clang-12.sed, ci/config.mk.clang.sed, ci/config.mk.sed, src/Makefile, src/auto/configure, src/config.mk.in, src/configure.ac, src/if_ruby.c, src/vim.h Patch 8.2.3923 问题: Vim9: double free if a nested function has a line break in the argument list. 解决方案: Set cmdlinep when freeing the previous line. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.3924 问题: Vim9: no error if something follows :enddef in a nested function. 解决方案: Give an error. Move common code to a function. 文件: src/userfunc.c, src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim Patch 8.2.3925 问题: Diff mode confused by NUL bytes. 解决方案: Handle NUL bytes differently. (Christian Brabandt, closes #9421, closes #9418) 文件: src/diff.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_bin_01.dump, src/testdir/dumps/Test_diff_bin_02.dump, src/testdir/dumps/Test_diff_bin_03.dump, src/testdir/dumps/Test_diff_bin_04.dump Patch 8.2.3926 (after 8.2.3920) 问题: Build failure without the 'autochdir' option. (John Marriott) 解决方案: Add #ifdefs. 文件: src/evalwindow.c Patch 8.2.3927 问题: Vim9: double free when using lambda. 解决方案: Don't free both cmdline and line_to_free. 文件: src/userfunc.c Patch 8.2.3928 问题: Heredoc test fails. 解决方案: Correct order of function arguments. 文件: src/userfunc.c Patch 8.2.3929 问题: Using uninitialized variable. 解决方案: Set the option flags to zero for a terminal option. 文件: src/option.c Patch 8.2.3930 问题: getcmdline() argument has a misleading type. 解决方案: Use the correct type, even though the value is not used. 文件: src/ex_getln.c, src/proto/ex_getln.pro, src/ex_docmd.c, src/normal.c, src/register.c, src/userfunc.c Patch 8.2.3931 问题: Coverity reports a memory leak. 解决方案: Free memory in case of failure. 文件: src/diff.c Patch 8.2.3932 问题: C line comment not formatted properly. 解决方案: If a line comment follows after "#if" the next line is not the end of a paragraph. 文件: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.3933 问题: After ":cd" fails ":cd -" is incorrect. 解决方案: Set the previous directory only after successfully changing directory. (Richard Doty, closes #9419, closes #8983) 文件: src/ex_docmd.c, src/testdir/test_cd.vim Patch 8.2.3934 问题: Repeating line comment is undesired for "O" command. 解决方案: Do not copy line comment leader for "O". (closes #9426) 文件: src/change.c, src/testdir/test_textformat.vim Patch 8.2.3935 问题: CTRL-U in Insert mode does not fix the indent. 解决方案: Fix the indent when 'cindent' is set. 文件: src/edit.c, src/testdir/test_textformat.vim Patch 8.2.3936 问题: No proper test for maintaining change mark in diff mode. 解决方案: Run the test with internal and external diff. (Sean Dewar, closes #9424) 文件: src/testdir/test_diffmode.vim Patch 8.2.3937 问题: Insert mode completion function is too long. 解决方案: Refactor into multiple functions. (Yegappan Lakshmanan, closes #9423) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3938 问题: Line comment start is also found in a string. 解决方案: Skip line comments in a string. 文件: src/cindent.c, src/proto/cindent.pro, src/search.c, src/testdir/test_textformat.vim Patch 8.2.3939 问题: MS-Windows: fnamemodify('', ':p') does not work. 解决方案: Do not consider an empty string a full path. (Yegappan Lakshmanan, closes #9428, closes #9427) 文件: src/os_mswin.c, src/testdir/test_fnamemodify.vim Patch 8.2.3940 问题: Match highlight disappears when doing incsearch for ":s/pat". 解决方案: Only use line limit for incsearch highlighting. (closes #9425) 文件: src/match.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_with_incsearch_1.dump, src/testdir/dumps/Test_match_with_incsearch_2.dump Patch 8.2.3941 问题: SIGTSTP is not handled. 解决方案: Handle SIGTSTP like pressing CTRL-Z. (closes #9422) 文件: runtime/doc/autocmd.txt, src/ex_docmd.c, src/os_unix.c, src/proto/ex_docmd.pro, src/testdir/test_signals.vim Patch 8.2.3942 问题: Coverity reports a possible memory leak. 解决方案: Free the array if allocation fails. 文件: src/insexpand.c Patch 8.2.3943 问题: Compiler warning from gcc for uninitialized variable. 解决方案: Initialize variable. (closes #9429) 文件: src/diff.c Patch 8.2.3944 问题: Insert mode completion functions are too long. 解决方案: Split up into multiple functions. (Yegappan Lakshmanan, closes #9431) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.3945 问题: Vim9: partial variable argument types are wrong, leading to a crash. 解决方案: When adjusting the argument count also adjust the argument types. (closes #9433) 文件: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim Patch 8.2.3946 问题: When an internal error makes Vim exit the error is not seen. 解决方案: Add the error to the test output. 文件: src/message.c, src/testdir/runtest.vim Patch 8.2.3947 问题: Unnecessary check for NULL pointer. 解决方案: Remove the check. (closes #9434) 文件: src/ex_docmd.c Patch 8.2.3948 问题: Vim9: failure with partial with unknown argument count. 解决方案: Do not copy argument types if there aren't any. 文件: src/vim9type.c Patch 8.2.3949 问题: Using freed memory with /\%V. 解决方案: Get the line again after getvvcol(). 文件: src/regexp.c, src/testdir/test_regexp_latin.vim Patch 8.2.3950 问题: Going beyond the end of the line with /\%V. 解决方案: Check for valid column in getvcol(). 文件: src/charset.c, src/testdir/test_regexp_latin.vim Patch 8.2.3951 问题: Vim9: memory leak when text after a nested function. 解决方案: Free the function if text is found after "enddef". 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.3952 问题: First line not redrawn when adding lines to an empty buffer. 解决方案: Adjust the argument to appended_lines(). (closes #9439, closes #9438) 文件: src/ex_cmds.c, src/testdir/test_excmd.vim Patch 8.2.3953 问题: Insert completion code is too complicated. 解决方案: More refactoring. Move function arguments into a struct. (Yegappan Lakshmanan, closes #9437) 文件: src/insexpand.c Patch 8.2.3954 问题: Vim9: no error for shadowing if script var is declared later. 解决方案: Check argument names when compiling a function. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_assign.vim Patch 8.2.3955 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/globals.h, src/debugger.c, src/ex_cmds.c, src/help.c, src/sign.c, src/spellfile.c Patch 8.2.3956 问题: Duplicate assignment. 解决方案: Remove the second assignment. (closes #9442) 文件: src/evalfunc.c Patch 8.2.3957 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c, src/vim9cmds.c, src/vim9compile.c Patch 8.2.3958 问题: Build failure compiling xxd with "-std=c2x". 解决方案: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes #9444) 文件: src/xxd/xxd.c Patch 8.2.3959 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/autocmd.c, src/bufwrite.c, src/evalvars.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, src/getchar.c, src/gui.c, src/locale.c, src/map.c Patch 8.2.3960 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/alloc.c, src/arglist.c, src/autocmd.c, src/blob.c, src/blowfish.c, src/buffer.c, src/bufwrite.c Patch 8.2.3961 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c, src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui_gtk_x11.c, src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/highlight.c, src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c, src/map.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c, src/message.c, src/misc2.c, src/ops.c, src/option.c, src/optionstr.c, src/popupwin.c, src/quickfix.c, src/screen.c, src/scriptfile.c, src/search.c, src/sign.c, src/spell.c, src/spellfile.c, src/strings.c, src/syntax.c, src/terminal.c, src/testing.c, src/textprop.c, src/time.c, src/userfunc.c, src/vim9cmds.c, src/vim9execute.c, src/vim9script.c, src/window.c Patch 8.2.3962 (after 8.2.3961) 问题: Build fails for missing error message. 解决方案: Add changes in missed file. 文件: src/regexp_bt.c Patch 8.2.3963 问题: Build failure with tiny and small features. (Tony Mechelynck) 解决方案: Adjust #ifdefs. 文件: src/errors.h, src/message.c Patch 8.2.3964 问题: Some common lisp and scheme files not recognized. 解决方案: Recognize *.asd as lisp and *.sld as scheme. (Alex Vear, closes #9447) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3965 问题: Vim9: no easy way to check if Vim9 script is supported. 解决方案: Add has('vim9script'). 文件: runtime/doc/vim9.txt, src/evalfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.3966 问题: When using feedkeys() abbreviations may be blocked. 解决方案: Reset tb_no_abbr_cnt when running out of characters. (closes #9448) 文件: src/getchar.c, src/testdir/test_feedkeys.vim Patch 8.2.3967 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/globals.h, src/feature.h, src/arglist.c, src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/diff.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/getchar.c, src/gui_gtk_x11.c, src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/if_xcmdsrv.c, src/indent.c, src/insexpand.c, src/job.c, src/list.c, src/main.c, src/map.c, src/match.c, src/mbyte.c, src/message.c, src/misc1.c, src/option.c, src/optionstr.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/popupwin.c, src/profiler.c, src/quickfix.c, src/scriptfile.c, src/search.c, src/session.c, src/sign.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, src/testing.c, src/textprop.c, src/typval.c, src/userfunc.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/vim9script.c Patch 8.2.3968 问题: Build failure. 解决方案: Add missing changes. 文件: src/strings.c, src/vim9compile.c Patch 8.2.3969 问题: Value of MAXCOL not available in Vim script. 解决方案: Add v:maxcol. (Naohiro Ono, closes #9451) 文件: runtime/doc/builtin.txt, runtime/doc/eval.txt, src/evalvars.c, src/testdir/test_cursor_func.vim, src/testdir/test_normal.vim, src/testdir/test_put.vim, src/vim.h Patch 8.2.3970 问题: Error messages are spread out. 解决方案: Move more errors to errors.h. 文件: src/errors.h, src/globals.h, src/buffer.c, src/bufwrite.c, src/clientserver.c, src/cmdhist.c, src/dict.c, src/edit.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/gui_w32.c, src/gui_x11.c, src/if_xcmdsrv.c, src/insexpand.c, src/json.c, src/match.c, src/menu.c, src/option.c, src/optionstr.c, src/os_mswin.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c, src/scriptfile.c, src/sign.c, src/spellfile.c, src/undo.c, src/userfunc.c, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c, src/vim9expr.c, src/window.c Patch 8.2.3971 问题: Build fails. 解决方案: Use the right error message name. 文件: src/typval.c Patch 8.2.3972 问题: Error messages are spread out. 解决方案: Move the last errors from globals.h to errors.h. 文件: src/errors.h, src/globals.h, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_eval.c, src/list.c, src/match.c, src/menu.c, src/popupmenu.c, src/search.c, src/vim9cmds.c, src/vim9expr.c Patch 8.2.3973 问题: Tiny build fails. 解决方案: Adjust #ifdefs 文件: src/errors.h Patch 8.2.3974 问题: Vim9: LISTAPPEND instruction does not check for a locked list. 解决方案: Check whether the list is locked. (closes #9452) 文件: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3975 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/clientserver.c, src/fileio.c, src/gui.c, src/gui_beval.c, src/gui_w32.c, src/gui_x11.c, src/if_cscope.c, src/if_xcmdsrv.c, src/os_mswin.c, src/sign.c, src/viminfo.c, src/window.c Patch 8.2.3976 问题: FEARG_LAST is never used. (Dominique Pellé) 解决方案: Remove FEARG_LAST and the related code. 文件: src/evalfunc.c Patch 8.2.3977 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/change.c, src/clientserver.c, src/eval.c, src/gui_xim.c, src/if_cscope.c, src/if_py_both.h, src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/main.c, src/mark.c, src/match.c, src/memfile.c, src/memline.c, src/terminal.c, src/textprop.c, src/userfunc.c Patch 8.2.3978 问题: Build error when using dynamically loaded Python 3. 解决方案: Adjust #ifdef. 文件: src/errors.h Patch 8.2.3979 问题: Vim9: the feature is not mentioned in the right places. 解决方案: Add +vim9script to the help and :version output. 文件: runtime/doc/builtin.txt, runtime/doc/various.txt, src/version.c Patch 8.2.3980 问题: If 'operatorfunc' invokes an operator the remembered Visual mode may be changed. (Naohiro Ono) 解决方案: Save and restore the information for redoing the Visual area. (closes #9455) 文件: src/ops.c, src/testdir/test_normal.vim Patch 8.2.3981 问题: Vim9: debugging a for loop doesn't stop before it starts. 解决方案: Keep the DEBUG instruction before the expression is evaluated. (closes #9456) 文件: src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.3982 问题: Some lines of code not covered by tests. 解决方案: Add a few more test cases. (Dominique Pellé, closes #9453) 文件: src/testdir/test_filter_map.vim, src/testdir/test_highlight.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3983 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/findfile.c, src/hardcopy.c, src/memfile.c, src/memline.c, src/menu.c, src/normal.c, src/regexp_bt.c Patch 8.2.3984 (after 8.2.3981) 问题: Debugger test fails. 解决方案: Adjust the test for modified debugging of a for loop. 文件: src/testdir/test_debugger.vim Patch 8.2.3985 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/findfile.c, src/fold.c, src/hardcopy.c, src/highlight.c, src/map.c, src/message.c, src/normal.c, src/option.c, src/os_amiga.c, src/os_unix.c, src/os_win32.c, src/quickfix.c, src/regexp.c, src/register.c, src/search.c, src/syntax.c, src/tag.c, src/term.c, src/typval.c, src/undo.c, src/window.c Patch 8.2.3986 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/fold.c, src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_cscope.c, src/json.c, src/map.c, src/netbeans.c, src/popupwin.c, src/usercmd.c, src/userfunc.c Patch 8.2.3987 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/digraph.c, src/ex_eval.c, src/gui.c, src/hardcopy.c, src/if_cscope.c, src/if_tcl.c, src/if_xcmdsrv.c, src/mbyte.c, src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c, src/quickfix.c, src/regexp.c, src/tag.c, src/term.c, src/viminfo.c Patch 8.2.3988 (after 8.2.3987) 问题: Tiny build fails. 解决方案: Fix misplaced #ifdef. 文件: src/errors.h Patch 8.2.3989 问题: Some insert completion code is not tested. 解决方案: Add a few tests. Refactor thesaurus completion. (Yegappan Lakshmanan, closes #9460) 文件: src/insexpand.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim Patch 8.2.3990 问题: Testing wrong operator. 解决方案: Test "g@" instead of "r_". (Naohiro Ono, closes #9463) 文件: src/testdir/test_normal.vim Patch 8.2.3991 问题: Vim9: error when extending dict<any> with another type that it was initialized with. 解决方案: Also set the type for dict<any> if the initializer has a more specific type. (closes #9461) 文件: src/vim9compile.c, src/vim9type.c, src/vim9.h, src/eval.c, src/list.c, src/vim9script.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim Patch 8.2.3992 问题: Wrong local-additions in the help with language mix. 解决方案: Adjust how the local additions list is generated. (Hirohito Higashi, closes #9464) 文件: src/help.c, src/testdir/test_help.vim Patch 8.2.3993 问题: When recording a change in Select mode the first typed character appears twice. 解决方案: When putting the character back into typeahead remove it from recorded characters. (closes #9462) 文件: src/getchar.c, src/proto/getchar.pro, src/normal.c, src/testdir/test_registers.vim Patch 8.2.3994 问题: Vim9: extend() complains about the type even when it was not declared. 解决方案: Only check the list or dict type when it was declared. 文件: src/list.c, src/testdir/test_vim9_builtin.vim Patch 8.2.3995 问题: Not all sshconfig files are detected as such. 解决方案: Adjust the patterns used for sshconfig detection. (David Auer, closes #9322) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.3996 问题: Vim9: type checking for list and dict lacks information about declared type. 解决方案: Add dv_decl_type and lv_decl_type. Refactor the type stack to store two types in each entry. 文件: src/structs.h, src/dict.c, src/list.c, src/vim9type.c, src/proto/vim9type.pro, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, src/evalbuffer.c, src/proto/evalbuffer.pro, src/vim9expr.c, src/vim9cmds.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.3997 问题: Vim9: not enough testing for extend() and map(). 解决方案: Add more test cases. Fix uncovered problems. Remove unused type fields. 文件: src/structs.h, src/dict.c, src/list.c, src/vim9compile.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.3998 问题: Asan error for adding zero to NULL. 解决方案: Do not compute pointer if there are no entries. 文件: src/vim9type.c Patch 8.2.3999 问题: Redundant check for NUL byte. 解决方案: Remove the check for a NUL byte. (closes #9471) 文件: src/ex_docmd.c Patch 8.2.4000 问题: Coverity warns for checking for NULL pointer after using it. 解决方案: Remove check for NULL. 文件: src/help.c Patch 8.2.4001 问题: Insert complete code uses global variables. 解决方案: Make variables local to the file and use accessor functions. (Yegappan Lakshmanan, closes #9470) 文件: src/edit.c, src/getchar.c, src/globals.h, src/insexpand.c, src/proto/insexpand.pro, src/search.c Patch 8.2.4002 问题: First char typed in Select mode can be wrong. 解决方案: Escape special bytes in the input buffer. (closes #9469) 文件: src/getchar.c, src/testdir/test_utf8.vim Patch 8.2.4003 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/channel.c, src/ex_docmd.c, src/ex_eval.c, src/gui_at_fs.c, src/hardcopy.c, src/if_cscope.c, src/menu.c, src/netbeans.c, src/optionstr.c, src/os_mswin.c, src/sign.c, src/typval.c Patch 8.2.4004 问题: Old compiler complains about struct init with variable. 解决方案: Set the struct member later. (John Marriott) 文件: src/evalfunc.c Patch 8.2.4005 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/dict.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/gui.c, src/gui_w32.c, src/hardcopy.c, src/help.c, src/highlight.c, src/if_python.c, src/list.c, src/misc1.c, src/normal.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/typval.c, src/userfunc.c Patch 8.2.4006 问题: Vim9: crash when declaring variable on the command line. 解决方案: Use a temporary type list. (closes #9474) 文件: src/eval.c, src/testdir/test_vim9_assign.vim Patch 8.2.4007 问题: Session does not restore help buffer properly when "options' is missing from 'sessionoptions'. 解决方案: Use a ":help" command to create the help window. (closes #9475, closes #9458, closes #9472) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4008 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/diff.c, src/digraph.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/match.c, src/memline.c, src/menu.c, src/ops.c, src/profiler.c, src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/spell.c, src/spell.h, src/spellfile.c, src/strings.c, src/syntax.c, src/typval.c, src/undo.c, src/userfunc.c Patch 8.2.4009 问题: Reading one byte beyond the end of the line. 解决方案: Check for NUL byte first. 文件: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim Patch 8.2.4010 问题: Error messages are spread out. 解决方案: Move more error messages to errors.h. 文件: src/errors.h, src/crypt.c, src/diff.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/findfile.c, src/float.c, src/gui.c, src/highlight.c, src/if_mzsch.c, src/if_py_both.h, src/if_python.c, src/if_python3.c, src/insexpand.c, src/match.c, src/memline.c, src/option.c, src/popupwin.c, src/regexp.c, src/regexp_nfa.c, src/spellfile.c, src/strings.c, src/syntax.c, src/textprop.c, src/typval.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/window.c Patch 8.2.4011 问题: Test fails because of changed error number. 解决方案: Restore old duplicate error message. 文件: src/errors.h, src/match.c Patch 8.2.4012 问题: Error messages are spread out. 解决方案: Move the last error messages to errors.h. 文件: src/errors.h, src/channel.c, src/clientserver.c, src/diff.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/gui_w32.c, src/help.c, src/if_mzsch.c, src/if_py_both.h, src/if_python.c, src/job.c, src/json.c, src/list.c, src/option.c, src/optionstr.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c, src/register.c, src/scriptfile.c, src/sign.c, src/syntax.c, src/tag.c, src/terminal.c, src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c, src/vim9compile.c, src/viminfo.c Patch 8.2.4013 问题: Build failure without the spell feature. 解决方案: Adjust #ifdefs. 文件: src/errors.h Patch 8.2.4014 问题: Git and gitcommit file types not properly recognized. 解决方案: Adjust filetype detection. (Tim Pope, closes #9477) 文件: runtime/filetype.vim, runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.4015 问题: Build failure with tiny features. (Tony Mechelynck) 解决方案: Adjust #ifdefs. 文件: src/errors.h Patch 8.2.4016 问题: Vim9: incorrect error for argument that is shadowing var. 解决方案: Ignore variable that is not in block where the function was defined. 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4017 问题: Gcc warns for misleading indent in Athena menu code. 解决方案: Add curlies around the two statements. (Dominique Pellé, closes #9480) 文件: src/gui_athena.c Patch 8.2.4018 问题: ml_get error when win_execute redraws with Visual selection. 解决方案: Disable Visual area temporarily. (closes #9479) 文件: src/evalwindow.c, src/proto/evalwindow.pro, src/structs.h, src/evalbuffer.c, src/proto/evalbuffer.pro, src/evalvars.c, src/if_py_both.h, src/evalfunc.c, src/testdir/test_execute_func.vim Patch 8.2.4019 问题: Vim9: import mechanism is too complicated. 解决方案: Do not use the Javascript mechanism but a much simpler one. 文件: runtime/doc/vim9.txt, src/vim9script.c, src/proto/vim9script.pro, src/errors.h, src/structs.h, src/eval.c, src/proto/eval.pro, src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, src/vim9expr.c, src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim Patch 8.2.4020 (after 8.2.4019) 问题: Debugger test fails. 解决方案: Fix import statement. 文件: src/testdir/test_debugger.vim Patch 8.2.4021 (after 8.2.4019) 问题: Missing part of the :import changes. 解决方案: Add changes in vim9cmds.c. 文件: src/vim9cmds.c Patch 8.2.4022 问题: Two error messages in the wrong file. 解决方案: Use the error message from errors.h. 文件: src/popupwin.c, src/usercmd.c Patch 8.2.4023 问题: Using uninitialized variable. 解决方案: Initialize "ufunc" also when an item is not exported. 文件: src/vim9script.c Patch 8.2.4024 问题: Confusing error message if imported name is used directly. 解决方案: Give a better error message. 文件: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.4025 问题: Error for import not ending in .vim does not work for .vimrc. 解决方案: Check that .vim is the end. (closes #9484) 文件: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.4026 问题: ml_get error with specific win_execute() command. (Sean Dewar) 解决方案: Check cursor and Visual area are OK. 文件: src/evalwindow.c, src/testdir/test_execute_func.vim Patch 8.2.4027 问题: Import test fails on MS-Windows. 解决方案: Use a different directory name. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4028 问题: ml_get error with :doautoall and Visual area. (Sean Dewar) 解决方案: Disable Visual mode while executing autocommands. 文件: src/structs.h, src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.4029 问题: Debugging NFA regexp my crash, cached indent may be wrong. 解决方案: Fix some debug warnings in the NFA regexp code. Make sure log_fd is set when used. Fix breakindent and indent caching. (Christian Brabandt, closes #9482) 文件: src/indent.c, src/optionstr.c, src/regexp_nfa.c Patch 8.2.4030 问题: A script local funcref is not found from a mapping. 解决方案: When looking for a function, also find a script-local funcref. (closes #9485) 文件: src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.4031 问题: Crash in xterm with only two lines. (Dominique Pellé) 解决方案: Only perform xterm compatibility test if possible. (closes #9488) 文件: src/term.c, src/testdir/test_startup.vim Patch 8.2.4032 问题: ATTRIBUTE_NORETURN is not needed. 解决方案: Use NORETURN(). (Ozaki Kiichi, closes #9487) 文件: src/if_ruby.c, src/vim.h Patch 8.2.4033 问题: Running filetype tests leaves directory behind. 解决方案: Delete the top directory. (closes #9483) 文件: src/testdir/test_filetype.vim Patch 8.2.4034 问题: Coverity warns for possibly using a NULL pointer. 解决方案: Check v_partial is not NULL. 文件: src/vim9type.c Patch 8.2.4035 问题: Timer triggered at the debug prompt may cause trouble. 解决方案: Do not trigger any timer at the debug prompt. (closes #9481) 文件: src/time.c Patch 8.2.4036 问题: Vim9: script test file is getting too long. 解决方案: Split the import/export functionality to a separate file. 文件: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim, src/testdir/Make_all.mak Patch 8.2.4037 问题: Insert mode completion is insufficiently tested. 解决方案: Add more tests. Fix uncovered memory leak. (Yegappan Lakshmanan, closes #9489) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.4038 问题: Various code not used when features are disabled. 解决方案: Add #ifdefs. (Dominique Pellé, closes #9491) 文件: src/alloc.c, src/buffer.c, src/charset.c, src/clipboard.c, src/cmdhist.c, src/crypt.c, src/edit.c, src/eval.c, src/evalbuffer.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h, src/gui_xim.c, src/hashtab.c, src/highlight.c, src/insexpand.c, src/main.c, src/mark.c, src/message.c, src/misc1.c, src/misc2.c, src/ops.c, src/option.c, src/option.h, src/optionstr.c, src/register.c, src/scriptfile.c, src/tag.c, src/term.c, src/typval.c, src/usercmd.c, src/userfunc.c, src/vim9script.c, src/vim9type.c Patch 8.2.4039 问题: The xdiff library is linked in even when not used. 解决方案: Use configure to decide whether xdiff object files are included. 文件: src/Makefile, src/config.mk.in, src/configure.ac, src/auto/configure, src/feature.h Patch 8.2.4040 问题: Keeping track of allocated lines in user functions is too complicated. 解决方案: Instead of freeing individual lines keep them all until the end. 文件: src/alloc.c, src/proto/alloc.pro, src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, src/message.c, src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim Patch 8.2.4041 问题: Using uninitialized pointer. 解决方案: Store "ht" when variable is in another script. 文件: src/evalvars.c Patch 8.2.4042 问题: Vim9: build error. 解决方案: Use grow array instead of character pointer. 文件: src/vim9execute.c Patch 8.2.4043 问题: Using int for second argument of ga_init2(). 解决方案: Remove unnecessary type cast (int) when using sizeof(). 文件: src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/findfile.c, src/fold.c, src/hardcopy.c, src/help.c, src/job.c, src/list.c, src/menu.c, src/os_win32.c, src/register.c, src/scriptfile.c, src/spellfile.c, src/spellsuggest.c, src/strings.c, src/syntax.c, src/tag.c, src/terminal.c, src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9execute.c, src/viminfo.c, src/window.c, src/if_py_both.h Patch 8.2.4044 问题: Vim9: no error when importing the same script twice. 解决方案: Give an error, unless it is a reload. 文件: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4045 问题: Some global functions are only used in one file. 解决方案: Make the functions static. (Yegappan Lakshmanan, closes #9492) 文件: src/ex_getln.c, src/highlight.c, src/proto/ex_getln.pro, src/proto/highlight.pro, src/proto/vim9compile.pro, src/proto/vim9instr.pro, src/proto/window.pro, src/vim9compile.c, src/vim9instr.c, src/window.c Patch 8.2.4046 问题: Some error messages not in the right place. 解决方案: Adjust the errors file. Fix typo. 文件: src/errors.h, src/regexp_bt.c, src/typval.c, Patch 8.2.4047 问题: Depending on the build features error messages are unused. 解决方案: Add #ifdefs. (Dominique Pellé, closes #9493) 文件: src/errors.h Patch 8.2.4048 问题: gcc complains about use of "%p" in printf. 解决方案: Add (void *) typecast. (Dominique Pellé, closes #9494) 文件: src/if_py_both.h Patch 8.2.4049 问题: Vim9: reading before the start of the line with "$" by itself. 解决方案: Do not subtract one when reporting the error. 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4050 问题: Vim9: need to prefix every item in an autoload script. 解决方案: First step in supporting "vim9script autoload" and "import autoload". 文件: runtime/doc/repeat.txt, runtime/doc/vim9.txt, src/structs.h, src/errors.h, src/vim9script.c, src/scriptfile.c, src/proto/scriptfile.pro, src/userfunc.c, src/eval.c, src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/testdir/test_vim9_script.vim Patch 8.2.4051 问题: Compiler complains about possibly uninitialized variable. 解决方案: Add code to avoid a compiler warning. (John Marriott) 文件: src/scriptfile.c Patch 8.2.4052 问题: Not easy to resize a window from a plugin. 解决方案: Add win_move_separator() and win_move_statusline() functions. (Daniel Steinberg, closes #9486) 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/evalwindow.c, src/proto/evalwindow.pro, src/testdir/test_window_cmd.vim Patch 8.2.4053 问题: Vim9: autoload mechanism doesn't fully work yet. 解决方案: Define functions and variables with their autoload name, add the prefix when calling a function, find the variable in the table of script variables. 文件: src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c, src/evalvars.c, src/testdir/test_vim9_script.vim Patch 8.2.4054 (after 8.2.4053) 问题: Vim9 script test fails. 解决方案: Add missing change. 文件: src/vim9compile.c Patch 8.2.4055 问题: Vim9: line break in expression causes v:errmsg to be filled. (Yegappan Lakshmanan) 解决方案: Do not give an error when skipping over an expression. 文件: src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.4056 问题: Vim9: memory leak when exporting function in autoload script. 解决方案: Free the name if replacing it. 文件: src/scriptfile.c Patch 8.2.4057 问题: Vim9: not fully implementing the autoload mechanism. 解决方案: Allow for exporting a legacy function. Improve test coverage. 文件: src/vim9script.c, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4058 问题: Vim9: import test failure in wrong line. 解决方案: Adjust line number. 文件: src/testdir/test_vim9_import.vim Patch 8.2.4059 问题: Vim9: an expression of a map cannot access script-local items. (Maxim Kim) 解决方案: Use the script ID of where the map was defined. 文件: src/getchar.c, src/map.c, src/proto/map.pro, src/testdir/test_vim9_import.vim Patch 8.2.4060 问题: win_execute() is slow on systems where getcwd() or chdir() is slow. (Rick Howe) 解决方案: Avoid using getcwd() and chdir() if no local directory is used and 'acd' is not set. (closes #9504) 文件: src/evalwindow.c Patch 8.2.4061 问题: Codecov bash script is deprecated. 解决方案: Use the codecov action. (Ozaki Kiichi, closes #9505) 文件: .github/workflows/ci.yml Patch 8.2.4062 问题: Match highlighting of tab too short. 解决方案: Do not stop match highlighting if on a Tab. (Christian Brabandt, closes #9507, closes #9500) 文件: src/drawline.c, src/testdir/test_match.vim, src/testdir/dumps/Test_match_tab_linebreak.dump Patch 8.2.4063 问题: Vim9: exported function in autoload script not found. (Yegappan Lakshmanan) 解决方案: Use the autoload prefix to search for the function. 文件: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4064 问题: Foam files are not detected. 解决方案: Detect the foam filetype by the path and file contents. (Mohammed Elwardi Fadeli, closes #9501) 文件: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4065 问题: Computation overflow with large count for :yank. 解决方案: Avoid an overflow. 文件: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.4066 问题: Vim9: imported autoload script loaded again. 解决方案: Do not create a new imported_T every time. 文件: src/vim9script.c, src/vim9compile.c, src/testdir/test_vim9_import.vim Patch 8.2.4067 问题: Vim9: cannot call imported function with :call. (Drew Vogel) 解决方案: Translate the function name. (closes #9510) 文件: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4068 (after 8.2.4066) 问题: Vim9: import test fails. 解决方案: Add missing change. 文件: src/scriptfile.c Patch 8.2.4069 问题: Vim9: import test fails on MS-Windows. 解决方案: Ignore case. Adjust test to avoid name that only differs in case. 文件: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4070 问题: Using uninitialized memory when reading empty file. 解决方案: Check for empty file before checking for NL. (Dominique Pellé, closes #9511) 文件: src/filepath.c, src/testdir/test_eval_stuff.vim Patch 8.2.4071 问题: Vim9: no detection of return in try/endtry. (Dominique Pellé) 解决方案: Check if any of the blocks inside try/endtry did not end in return. 文件: src/vim9.h, src/vim9compile.c, src/vim9cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.4072 问题: Vim9: compiling function fails when autoload script is not loaded yet. 解决方案: Depend on runtime loading. 文件: src/vim9expr.c, src/vim9script.c, src/vim9instr.c, src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4073 问题: Coverity warns for using NULL pointer. 解决方案: Bail out when running out of memory. Check for running over end of a string. 文件: src/userfunc.c, Patch 8.2.4074 问题: Going over the end of NameBuff. 解决方案: Check length when appending a space. 文件: src/drawscreen.c, src/testdir/test_edit.vim Patch 8.2.4075 (after 8.2.4073) 问题: Test failures. 解决方案: Change check for NULL pointer. 文件: src/userfunc.c Patch 8.2.4076 问题: Memory leak in autoload import. 解决方案: Do not overwrite the autoload prefix. 文件: src/vim9script.c Patch 8.2.4077 问题: Not all Libsensors files are recognized. 解决方案: Add "sensors.d/*" pattern. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4078 问题: Terminal test for current directory not used on FreeBSD. 解决方案: Make it work on FreeBSD. (Ozaki Kiichi, closes #9516) Add TermWait() inside Run_shell_in_terminal() as a generic solution. 文件: src/testdir/test_terminal3.vim, src/testdir/term_util.vim, src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, src/testdir/test_mapping.vim Patch 8.2.4079 问题: MS-Windows: "gvim --version" didn't work when build with VIMDLL. 解决方案: Adjust #ifdef. (Ken Takata, closes #9517) 文件: src/main.c Patch 8.2.4080 问题: Not sufficient test coverage for xxd. 解决方案: Add a few more test cases. (Erki Auerswald, closes #9515) 文件: src/testdir/test_xxd.vim Patch 8.2.4081 问题: CodeQL reports problem in if_cscope causing it to fail. 解决方案: Use execvp() instead of execl(). Merge the header file into the source file. (Ozaki Kiichi, closes #9519) 文件: Filelist, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/if_cscope.c, src/if_cscope.h, src/testdir/test_cscope.vim Patch 8.2.4082 问题: Check for autoload file name and prefix fails. (Christian J. Robinson) 解决方案: Only lower case the prefix on systems where the file name is not case sensitive. 文件: src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4083 问题: Vim9: no test for "vim9script autoload" and using script variable in the same script. 解决方案: Add a simple test. Fix uncovered problem. 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4084 问题: Memory leak when looking for autoload prefixed variable. 解决方案: Free the concatenated string. 文件: src/evalvars.c Patch 8.2.4085 问题: Vim9: no test for using import in legacy script. 解决方案: Add a test. 文件: src/testdir/test_vim9_import.vim Patch 8.2.4086 问题: "cctx" argument of find_func_even_dead() is unused. 解决方案: Remove the argument. 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, src/vim9instr.c, src/evalfunc.c, src/evalvars.c, src/testing.c, src/vim9execute.c, src/vim9expr.c, src/vim9script.c, src/vim9type.c Patch 8.2.4087 问题: Cannot test items from an autoload script easily. 解决方案: Add the "autoload" value for test_override(). 文件: runtime/doc/testing.txt, src/testing.c, src/globals.h, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4088 问题: Xxd cannot output everything in one line. 解决方案: Make zero columns mean infinite columns. (Erik Auerswald, closes #9524) 文件: runtime/doc/xxd.1, runtime/doc/xxd.man, src/testdir/test_xxd.vim, src/xxd/xxd.c Patch 8.2.4089 (after 8.2.4078) 问题: Terminal test for current directory fails on FreeBSD. 解决方案: Skip the test. 文件: src/testdir/test_terminal3.vim Patch 8.2.4090 问题: After restoring a session buffer order can be quite different. 解决方案: Create buffers first. (Evgeni Chasnovski, closes #9520) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4091 问题: Virtcol is recomputed for statusline unnecessarily. 解决方案: Just use "w_virtcol". (closes #9523) 文件: src/buffer.c, src/testdir/test_statusline.vim Patch 8.2.4092 问题: macOS CI: unnecessarily doing "Install packages". 解决方案: Only do "Install packages" for huge build. (Ozaki Kiichi, closes #9521) 文件: .github/workflows/ci.yml Patch 8.2.4093 问题: Cached breakindent values not initialized properly. 解决方案: Initialize and cache formatlistpat. (Christian Brabandt, closes #9526, closes #9512) 文件: runtime/doc/options.txt, src/indent.c, src/option.c, src/proto/option.pro, src/testdir/test_breakindent.vim Patch 8.2.4094 问题: 'virtualedit' is window-local but using buffer-local enum. 解决方案: Use window-local enum. (closes #9529) 文件: src/option.h, src/optiondefs.h Patch 8.2.4095 问题: Sed script not recognized by the first line. 解决方案: Recognize a sed script starting with "#n". (Doug Kearns) 文件: runtime/scripts.vim, src/testdir/test_filetype.vim Patch 8.2.4096 问题: Linux CI: unnecessarily installing packages 解决方案: Only install packages for huge build. (Ozaki Kiichi, closes #9530) 文件: .github/workflows/ci.yml Patch 8.2.4097 问题: Wrong number in error message on 32 bit system. (John Paul Adrian Glaubitz) 解决方案: Add type cast. (closes #9527) 文件: src/vim9compile.c Patch 8.2.4098 问题: Typing "interrupt" at debug prompt may keep exception around, causing function calls to fail. 解决方案: Discard any exception at the toplevel. (closes #9532) 文件: src/main.c Patch 8.2.4099 问题: Vim9: cannot use Vim9 syntax in mapping. 解决方案: Add <ScriptCmd> to use the script context for a command. 文件: runtime/doc/map.txt, src/normal.c, src/getchar.c, src/proto/getchar.pro, src/ex_getln.c, src/edit.c, src/terminal.c, src/keymap.h, src/insexpand.c, src/misc2.c, src/ops.c, src/testdir/test_vim9_import.vim Patch 8.2.4100 问题: Early return when getting the 'formatlistpat' value. 解决方案: Remove the first line. (Christian Brabandt) 文件: src/option.c, src/testdir/test_breakindent.vim Patch 8.2.4101 问题: Warning for unused argument in tiny version. 解决方案: Add "UNUSED". 文件: src/getchar.c Patch 8.2.4102 问题: Vim9: import cannot be used after method. 解决方案: Recognize an imported function name. (closes #9496) 文件: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4103 问题: Vim9: variable declared in for loop not initialized. 解决方案: Always initialize the variable. (closes #9535) 文件: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4104 问题: Vim9: lower casing the autoload prefix causes problems. 解决方案: Always store the prefix with case preserved. 文件: src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4105 问题: Translation related comment in the wrong place. 解决方案: Move it back with the text. (Ken Takata, closes #9537) 文件: src/errors.h, src/ex_docmd.c Patch 8.2.4106 问题: Going over the end of the w_lines array. 解决方案: Break out of the loop when "idx" is too big. (issue #9540) 文件: src/drawscreen.c Patch 8.2.4107 问题: Script context not restored after using <ScriptCmd>. 解决方案: Also restore context when not in a script. (closes #9536) Add the 'c' flag to feedkeys() to be able to test this. 文件: runtime/doc/builtin.txt, src/getchar.c, src/evalfunc.c, src/testdir/test_mapping.vim Patch 8.2.4108 问题: Going over the end of the w_lines array. 解决方案: Check not going over the end and limit to Rows. (issue #9540) 文件: src/drawscreen.c Patch 8.2.4109 问题: MS-Windows: high dpi support is outdated. 解决方案: Improve High DPI support by using PerMonitorV2. (Ken Takata closes #9525, closes #3102) 文件: src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest Patch 8.2.4110 问题: Coverity warns for using NULL pointer. 解决方案: Check "evalarg" is not NULL. Skip errors when "verbose" is false. 文件: src/eval.c Patch 8.2.4111 问题: Potential problem when map is deleted while executing. 解决方案: Reset last used map pointer when deleting a mapping. 文件: src/map.c Patch 8.2.4112 问题: Function not deleted at end of test. 解决方案: Delete the function. 文件: src/testdir/test_diffmode.vim Patch 8.2.4113 问题: Typo on DOCMD_RANGEOK results in not recognizing command. 解决方案: Correct the typo. (closes #9539) 文件: src/vim.h, src/testdir/test_mapping.vim Patch 8.2.4114 问题: Vim9: type checking for a funcref does not work for when it is used in a method. 解决方案: Pass the base to where the type is checked. 文件: src/vim9type.c, src/proto/vim9type.pro, src/userfunc.c, src/testdir/test_vim9_expr.vim Patch 8.2.4115 问题: Cannot use a method with a complex expression. 解决方案: Evaluate the expression after "->" and use the result. 文件: src/eval.c, src/errors.h, src/testdir/test_vim9_expr.vim Patch 8.2.4116 问题: Vim9: cannot use a method with a complex expression in a :def function. 解决方案: Implement compiling the expression. 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4117 问题: Vim9: wrong white space error after using imported item. 解决方案: Don't skip over white space. (closes #9544) 文件: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4118 问题: Using UNUSED for argument that is used. 解决方案: Remove UNUSED. 文件: src/usercmd.c Patch 8.2.4119 问题: Build failure when disabling the channel feature. 解决方案: Adjust #ifdef. (Dominique Pellé, closes #9545) 文件: src/misc2.c Patch 8.2.4120 问题: Block insert goes over the end of the line. 解决方案: Handle invalid byte better. Fix inserting the wrong text. 文件: src/ops.c, src/testdir/test_visual.vim Patch 8.2.4121 问题: Visual test fails on MS-Windows. 解决方案: Set 'isprint' so that the character used is not printable. 文件: src/testdir/test_visual.vim Patch 8.2.4122 问题: ":command Cmd" does not show custom completion argument. 解决方案: Show the completion argument when using ":verbose". 文件: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.4123 问题: Complete function cannot be import.Name. 解决方案: Dereference the function name if needed. Also: do not see "import.Name" as a builtin function. (closes #9541) 文件: src/userfunc.c, src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4124 问题: Vim9: method in compiled function may not see script item. 解决方案: Make sure not to skip to the next line. (closes #9496) 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4125 问题: Completion tests fail. 解决方案: Disable error messages while dereferencing the function name. 文件: src/eval.c Patch 8.2.4126 问题: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) 解决方案: Only call Tcl_Finalize() when initialized. (closes #9546) 文件: src/if_tcl.c Patch 8.2.4127 问题: Build failure without the +eval feature. 解决方案: Add #ifdef. 文件: src/usercmd.c Patch 8.2.4128 问题: Crash when method cannot be found. (Christian J. Robinson) 解决方案: Don't mix up pointer names. 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.4129 问题: Building with +sound but without +eval fails. (Dominique Pellé) 解决方案: Disable canberra in tiny and small build. (closes #9548) 文件: src/configure.ac, src/auto/configure Patch 8.2.4130 问题: MS-Windows: MSVC build may have libraries duplicated. 解决方案: Improve the MSVC Makefile. (Ken Takata, closes #9547) 文件: src/Make_mvc.mak Patch 8.2.4131 问题: Vim9: calling function in autoload import does not work in a :def function. 解决方案: When a variable is not found and a PCALL follows use a funcref. (closes #9550) 文件: src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4132 问题: Vim9: wrong error message when autoload script can't be found. 解决方案: Correct check for using autoload with wrong name. 文件: src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4133 问题: output of ":scriptnames" goes into the message history, while this does not happen for other commands, such as ":ls". 解决方案: Use msg_outtrans() instead of smsg(). (closes #9551) 文件: src/scriptfile.c, src/testdir/test_scriptnames.vim Patch 8.2.4134 问题: MS-Windows: test for import with absolute path fails. 解决方案: Handle path starting with slash as an absolute path. 文件: src/vim9script.c Patch 8.2.4135 问题: Vim9: ":scriptnames" shows unloaded imported autoload script. 解决方案: Mark the unloaded script with "A". (closes #9552) 文件: runtime/doc/repeat.txt, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4136 问题: Vim9: the "autoload" argument of ":vim9script" is not useful. 解决方案: Remove the argument. (closes #9555) 文件: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4137 问题: Vim9: calling import with and without method is inconsistent. 解决方案: Set a flag that a parenthesis follows to compile_load_scriptvar(). Add some more tests. Improve error message. 文件: src/vim9expr.c, src/vim9execute.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4138 问题: Vim9: no error for return with argument when the function does not return anything. 解决方案: Give an error for the invalid argument. (issue #9497) 文件: src/vim9cmds.c, src/testdir/test_vim9_func.vim Patch 8.2.4139 问题: Using freed memory if an expression abbreviation deletes the abbreviation. 解决方案: Do not access the pointer after evaluating the expression. 文件: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4140 问题: maparg() does not indicate the type of script where it was defined. 解决方案: Add "scriptversion". 文件: runtime/doc/builtin.txt, src/map.c, src/testdir/test_maparg.vim Patch 8.2.4141 (after 8.2.4140) 问题: Vim9 builtin functions test fails. 解决方案: Add "scriptversion" item to maparg() result. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.4142 问题: Build failure with normal features without persistent undo. 解决方案: Adjust #ifdef. (closes #9557) 文件: src/fileio.c Patch 8.2.4143 问题: MS-Windows: IME support for Win9x is obsolete. 解决方案: Remove the Win9x code. (Ken Takata, closes #9559) 文件: src/gui_w32.c Patch 8.2.4144 问题: Cannot load libsodium dynamically. 解决方案: Support dynamic loading on MS-Windows. (Ken Takata, closes #9554) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/buffer.c, src/crypt.c, src/memline.c, src/proto/crypt.pro Patch 8.2.4145 问题: Confusing error when using name of import for a function. 解决方案: Pass a flag to trans_function_name(). 文件: src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4146 问题: Vim9: shadowed function can be used in compiled function but not at script level. 解决方案: Also give an error in a compiled function. (closes #9563) 文件: src/vim9expr.c Patch 8.2.4147 问题: E464 does not always include the offending command. 解决方案: Add another error message with "%s". (closes #9564) 文件: src/errors.h, src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.4148 问题: Deleting any mapping may cause <ScriptCmd> to not set the script context. 解决方案: Only reset last_used_map if it is the deleted mapping. (closes #9568) 文件: src/map.c, src/getchar.c, src/proto/getchar.pro, src/testdir/test_mapping.vim Patch 8.2.4149 问题: Test override not restored, autocommand left behind. 解决方案: Correct restoring test override. Delete autocommand afterwards. 文件: src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim Patch 8.2.4150 问题: Coverity warns for using pointer after free. 解决方案: Swap statements, even though using the pointer is no problem. 文件: src/map.c Patch 8.2.4151 问题: Reading beyond the end of a line. 解决方案: For block insert only use the offset for correcting the length. 文件: src/ops.c, src/testdir/test_visual.vim Patch 8.2.4152 问题: Block insert with double wide character fails. 解决方案: Adjust the expected output. 文件: src/testdir/test_utf8.vim Patch 8.2.4153 问题: MS-Windows: Global IME is no longer supported. 解决方案: Remove the Global IME implementation. (Ken Takata, closes #9562) 文件: Filelist, runtime/doc/mbyte.txt, src/Make_mvc.mak, src/dimm.idl, src/glbl_ime.cpp, src/glbl_ime.h, src/gui_w32.c, src/vim.h Patch 8.2.4154 问题: ml_get error when exchanging windows in Visual mode. 解决方案: Correct end of Visual area when entering another buffer. 文件: src/window.c, src/testdir/test_visual.vim Patch 8.2.4155 问题: Translating strftime() argument results in check error. 解决方案: Add gettext comment. 文件: src/time.c Patch 8.2.4156 问题: Fileinfo message overwrites echo'ed message. 解决方案: Reset need_fileinfo when displaying a message. (Rob Pilling, closes #9569) 文件: src/message.c, src/testdir/test_messages.vim, src/testdir/dumps/Test_fileinfo_after_echo.dump Patch 8.2.4157 问题: Terminal test fails because Windows sets the title. 解决方案: Add the "vterm_title" testing override and use it in the test. (Ozaki Kiichi, closes #9556) 文件: runtime/doc/testing.txt, src/globals.h, src/terminal.c, src/testing.c, src/testdir/test_terminal.vim Patch 8.2.4158 问题: MS-Windows: memory leak in :browse. 解决方案: Free stuff before returning. (Ken Takata, closes #9574) 文件: src/gui_w32.c Patch 8.2.4159 问题: MS-Windows: _WndProc() is very long. 解决方案: Move code to separate functions. (Ken Takata, closes #9573) 文件: src/gui_w32.c Patch 8.2.4160 问题: Cannot change the register used for Select mode delete. 解决方案: Make CTRL-R set the register to be used when deleting text for Select mode. (Shougo Matsushita, closes #9531) 文件: runtime/doc/visual.txt, src/globals.h, src/normal.c, src/ops.c, src/testdir/test_selectmode.vim Patch 8.2.4161 问题: Vim9: warning for missing white space after imported variable. 解决方案: Do not skip white space. (closes #9567) 文件: src/vim9expr.c, src/testdir/test_vim9_import.vim Patch 8.2.4162 问题: Vim9: no error for redefining function with export. 解决方案: Check for existing function with/without prefix. (closes #9577) 文件: src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4163 问题: No error for omitting function name after autoload prefix. 解决方案: Check for missing function name. (issue #9577) 文件: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4164 (after 8.2.4162) 问题: Error in legacy code for function shadowing variable. 解决方案: Only give the error in Vim9 script. 文件: src/userfunc.c Patch 8.2.4165 问题: The nv_g_cmd() function is too long. 解决方案: Move code to separate functions. (Yegappan Lakshmanan, closes #9576) 文件: src/normal.c Patch 8.2.4166 问题: Undo synced when switching buffer in another window. 解决方案: Do not sync undo when not needed. (closes #9575) 文件: src/buffer.c, src/testdir/test_timers.vim Patch 8.2.4167 问题: Vim9: error message for old style import. 解决方案: Use another error message. Add a test. 文件: src/evalvars.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4168 (after 8.2.4163) 问题: Disallowing empty function name breaks existing plugins. 解决方案: Allow empty function name in legacy script. 文件: src/userfunc.c, src/testdir/test_autoload.vim, src/testdir/sautest/autoload/foo.vim Patch 8.2.4169 问题: MS-Windows: unnecessary casts and other minor things. 解决方案: Clean up the MS-Windows code. (Ken Takata, closes #9583) 文件: src/gui_w32.c Patch 8.2.4170 问题: MS-Windows: still using old message API calls. 解决方案: Call the "W" functions directly. (Ken Takata, closes #9582) 文件: src/gui_w32.c, src/os_mswin.c, src/os_win32.c, src/os_win32.h Patch 8.2.4171 问题: Cannot invoke option function using autoload import. 解决方案: Expand the import to an autoload function name. (closes #9578) 文件: src/userfunc.c, src/evalvars.c, src/proto/evalvars.pro, src/option.c, src/testdir/test_vim9_import.vim Patch 8.2.4172 问题: Filetype detection for BASIC is not optimal. 解决方案: Improve BASIC filetype detection. (Doug Kearns) 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4173 问题: Cannot use an import in 'foldexpr'. 解决方案: Set the script context to where 'foldexpr' was set. (closes #9584) Fix that the script context was not set for all buffers. 文件: src/eval.c, src/proto/eval.pro, src/fold.c, src/structs.h, src/option.c, src/testdir/test_vim9_import.vim Patch 8.2.4174 问题: Vim9: can use an autoload name in normal script. 解决方案: Disallow using an autoload name. 文件: src/userfunc.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4175 问题: MS-Windows: runtime check for multi-line balloon is obsolete. 解决方案: Remove the obsolete code. (Ken Takata, closes #9592) 文件: src/evalfunc.c, src/gui_w32.c, src/proto/gui_w32.pro Patch 8.2.4176 问题: Vim9: cannot use imported function with call(). 解决方案: Translate the function name. (closes #9590) 文件: src/evalfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4177 问题: Vim9: autoload script not loaded after "vim9script noclear". 解决方案: Check IMP_FLAGS_AUTOLOAD properly. (closes #9593) 文件: src/vim9compile.c, src/testdir/test_vim9_import.vim Patch 8.2.4178 问题: Vim9: invalid error for return type of lambda when debugging. 解决方案: Do not check the return type of a lambda. (closes #9589) 文件: src/vim9cmds.c Patch 8.2.4179 问题: 'foldtext' is evaluated in the current script context. 解决方案: Use the script context where the option was set. 文件: src/fold.c, src/buffer.c, src/eval.c, src/proto/eval.pro, src/findfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4180 问题: 'balloonexpr' is evaluated in the current script context. 解决方案: Use the script context where the option was set. 文件: src/beval.c, src/option.c, src/proto/option.pro, src/testdir/test_balloon.vim, src/testdir/dumps/Test_balloon_eval_term_01.dump, src/testdir/dumps/Test_balloon_eval_term_01a.dump, src/testdir/dumps/Test_balloon_eval_term_02.dump Patch 8.2.4181 问题: Vim9: cannot use an import in 'diffexpr'. 解决方案: Set the script context when evaluating 'diffexpr'. Do not require 'diffexpr' to return a bool, it was ignored anyway. 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4182 (after 8.2.4182) 问题: Memory leak when evaluating 'diffexpr'. 解决方案: Use free_tv() instead of clear_tv(). 文件: src/evalvars.c Patch 8.2.4183 问题: Cannot use an import in 'formatexpr'. 解决方案: Set the script context when evaluating 'formatexpr'. 文件: src/textformat.c, src/testdir/test_vim9_import.vim Patch 8.2.4184 问题: Cannot use an import in 'includeexpr'. 解决方案: Set the script context when evaluating 'includeexpr' 文件: src/findfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4185 问题: Cannot use an import in 'indentexpr'. 解决方案: Set the script context when evaluating 'indentexpr' 文件: src/indent.c, src/testdir/test_vim9_import.vim Patch 8.2.4186 问题: Cannot use an import in 'patchexpr'. 解决方案: Set the script context when evaluating 'patchexpr'. Do not require 'patchexpr' to return a bool, it was ignored anyway. 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4187 问题: Gnuplot file not recognized. 解决方案: Recognize ".gnuplot". (closes #9588) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4188 问题: Not all gitconfig files are recognized. 解决方案: Add a few more patterns. (Tim Pope, closes #9597) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4189 问题: MS-Windows: code for "old look" is obsolete. 解决方案: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, closes #9596) 文件: src/gui_w32.c Patch 8.2.4190 问题: All conceal tests are skipped without the screendumps feature. 解决方案: Only skip the tests that use screendumps. (closes #9599) 文件: src/testdir/test_conceal.vim Patch 8.2.4191 问题: json5 files are not recognized. 解决方案: Add a pattern for json5 files. (closes #9601) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4192 问题: Cannot use an import in 'printexpr'. 解决方案: Set the script context when evaluating 'printexpr'. 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4193 问题: Cannot use an import in 'charconvert'. 解决方案: Set the script context when evaluating 'charconvert'. Also expand script-local functions in 'charconvert'. 文件: src/evalvars.c, src/optionstr.c, src/testdir/test_vim9_import.vim Patch 8.2.4194 问题: MS-Windows: code for calculating font size is duplicated. 解决方案: Move the code to a function. (Ken Takata, closes #9603) 文件: src/gui_w32.c Patch 8.2.4195 问题: Resizing terminal may cause to behave like CTRL-Z. 解决方案: Set "got_tstp" only when in_mch_suspend is set. (Dorian Bivolaru, closes #9602, closes #9586) 文件: src/os_unix.c Patch 8.2.4196 问题: Various file types not recognized. 解决方案: Add patterns to recognize more file types (closes #9607) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4197 问题: Cannot use an import in the "expr" part of 'spellsuggest'. 解决方案: Set the script context when evaluating "expr" of 'spellsuggest'. 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4198 问题: Vim9: the switch for executing instructions is too long. 解决方案: Move some code to separate functions. 文件: src/vim9execute.c Patch 8.2.4199 问题: MS-Windows: Support for MSVC before 2003 is not useful. 解决方案: Remove the exceptions for MSVC 6.0. (Ken Takata, closes #9616) 文件: src/GvimExt/gvimext.h, src/ex_docmd.c, src/feature.h, src/gui_w32.c, src/if_cscope.c, src/if_ole.cpp, src/if_ruby.c, src/macros.h, src/os_mswin.c, src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro, src/time.c, src/vim.h Patch 8.2.4200 问题: Some tests do not clean up properly. 解决方案: Delete created files. (Yegappan Lakshmanan, closes #9611) 文件: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, src/testdir/test_vim9_import.vim Patch 8.2.4201 问题: When using the GUI CTRL-Z does not stop gvim. 解决方案: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, closes #9570) 文件: src/os_unix.c Patch 8.2.4202 问题: Vim9: cannot export function that exists globally. 解决方案: When checking if a function already exists only check for script-local functions. (closes #9615) 文件: src/userfunc.c, src/proto/userfunc.pro, src/vim.h, src/vim9compile.c, src/vim9instr.c, src/testdir/test_vim9_import.vim Patch 8.2.4203 问题: Entering a character with CTRL-V may include modifiers. 解决方案: Reset "mod_mask" when entering a character with digits after CTRL-V. (closes #9610) 文件: src/edit.c, src/testdir/test_edit.vim Patch 8.2.4204 问题: screenpos() has non-zero row for invisible text. 解决方案: Only add the window row when the text is visible. (closes #9618) 文件: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.4205 问题: The normal_cmd() function is too long. 解决方案: Move parts to separate functions. (Yegappan Lakshmanan, closes #9608) 文件: src/normal.c Patch 8.2.4206 问题: Condition with many "(" causes a crash. 解决方案: Limit recursion to 1000. 文件: src/errors.h, src/eval.c, src/testdir/test_eval_stuff.vim Patch 8.2.4207 (after 8.2.4206) 问题: Recursion test fails with MSVC. 解决方案: Use a smaller limit for MSVC. 文件: src/eval.c Patch 8.2.4208 问题: Using setbufvar() may change the window title. 解决方案: Do not redraw when creating the autocommand window. (closes #9613) 文件: src/autocmd.c, src/testdir/test_functions.vim Patch 8.2.4209 问题: partial in 'opfunc' cannot use an imported function. 解决方案: Also expand the function name in a partial. (closes #9614) 文件: src/evalvars.c, src/testdir/test_vim9_import.vim Patch 8.2.4210 (after 8.2.4208) 问题: Window title test fails in some configurations. 解决方案: Only run the test if the title can be obtained. 文件: src/testdir/test_functions.vim Patch 8.2.4211 (after 8.2.4208) 问题: Window title test still fails in some configurations. 解决方案: Use WaitForAssert(). 文件: src/testdir/test_functions.vim Patch 8.2.4212 (after 8.2.4208) 问题: Window title test still fails in some configurations. 解决方案: Explicitly set the 'title' option. 文件: src/testdir/test_functions.vim Patch 8.2.4213 问题: Too much code for supporting old MSVC versions. 解决方案: Remove MSVC 2003 support. (Ken Takata, closes #9623) 文件: Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c, src/msvcsetup.bat, src/os_win32.c Patch 8.2.4214 问题: Illegal memory access with large 'tabstop' in Ex mode. 解决方案: Allocate enough memory. 文件: src/ex_getln.c, src/testdir/test_ex_mode.vim Patch 8.2.4215 问题: Illegal memory access when copying lines in Visual mode. 解决方案: Adjust the Visual position after copying lines. 文件: src/ex_cmds.c, src/testdir/test_visual.vim Patch 8.2.4216 问题: Vim9: cannot use a function from an autoload import directly. 解决方案: Add the AUTOLOAD instruction to figure out at runtime. (closes #9620) 文件: src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4217 问题: Illegal memory access when undo makes Visual area invalid. 解决方案: Correct the Visual area after undo. 文件: src/undo.c, src/testdir/test_visual.vim Patch 8.2.4218 问题: Illegal memory access with bracketed paste in Ex mode. 解决方案: Reserve space for the trailing NUL. 文件: src/edit.c, src/testdir/test_paste.vim Patch 8.2.4219 问题: Reading before the start of the line. 解决方案: Check boundary before trying to read the character. 文件: src/register.c, src/testdir/test_visual.vim Patch 8.2.4220 问题: MS-Windows: some old compiler support remains. 解决方案: Remove obsolete compiler support. (Ken Takata, closes #9627) 文件: src/Make_mvc.mak, src/vim.h Patch 8.2.4221 问题: Some functions in normal.c are very long. 解决方案: Move code to separate functions. (Yegappan Lakshmanan, closes #9628) 文件: src/normal.c Patch 8.2.4222 问题: MS-Windows: clumsy way to suppress progress on CI. 解决方案: Check for "$CI" in the Makefile itself. (Ken Takata, closes #9631) 文件: .github/workflows/ci.yml, ci/appveyor.bat, src/Make_mvc.mak Patch 8.2.4223 问题: Long/int compiler warnings; function arguments swapped. 解决方案: Add type casts. Swap arguments. (Ken Takata, closes #9632) 文件: src/alloc.c, src/eval.c, src/vim9script.c Patch 8.2.4224 问题: Vim9: no error when using a number for map() second argument 解决方案: Disallow number to string conversion. (closes #9630) 文件: src/eval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4225 问题: Vim9: depth argument of :lockvar not parsed in :def function. 解决方案: Parse the optional depth argument. (closes #9629) Fix that locking doesn't work for a non-materialize list. 文件: src/vim9cmds.c, src/evalvars.c, src/structs.h, src/evalfunc.c, src/errors.h, src/vim9execute.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4226 (after 8.2.4224) 问题: Filter-map test fails. 解决方案: Only reject number argument in Vim9 script. 文件: src/eval.c Patch 8.2.4227 问题: Vim9: using "lockvar!" in :def function does not work. 解决方案: Add "!" instead of "-1". (closes #9634) 文件: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4228 问题: No tests for clicking in the GUI tabline. 解决方案: Add test functions to generate the events. Add tests using the functions. (Yegappan Lakshmanan, closes #9638) 文件: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/normal.c, src/proto/testing.pro, src/testdir/test_diffmode.vim, src/testdir/test_gui.vim, src/testdir/test_normal.vim, src/testing.c Patch 8.2.4229 问题: Possible crash when invoking timer callback fails. 解决方案: Initialize the typval. Give an error for an empty callback. (closes #9636) 文件: src/time.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4230 问题: MS-Windows: set_guifontwide() is included but won't work. 解决方案: Include set_guifontwide() only for X11. (Ken Takata, closes #9640) 文件: src/gui.c Patch 8.2.4231 问题: Vim9: map() gives type error when type was not declared. 解决方案: Only check the type when it was declared, like extend() does. (closes #9635) 文件: src/list.c, src/evalfunc.c, src/vim9instr.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4232 (after 8.2.4231) 问题: Some compilers don't like a goto label without statement. 解决方案: Return instead of using a goto. 文件: src/list.c Patch 8.2.4233 问题: Crash when recording and using Select mode. 解决方案: When deleting the last recorded character check there is something to delete. 文件: src/getchar.c, src/testdir/test_registers.vim Patch 8.2.4234 问题: test_garbagecollect_now() does not check v:testing as documented. 解决方案: Give an error if v:testing is not set. 文件: src/testing.c, src/errors.h, src/testdir/test_functions.vim Patch 8.2.4235 问题: Invalid check for NULL pointer. 解决方案: Remove the check. 文件: src/getchar.c Patch 8.2.4236 问题: Accessing freed memory. 解决方案: Set the bh_curr pointer to NULL. 文件: src/getchar.c Patch 8.2.4237 问题: Record buffer wrong if character in Select mode was not typed. 解决方案: Only delete the tail from the record buffer if the character was typed. (closes #9650) 文件: src/normal.c, src/testdir/test_registers.vim Patch 8.2.4238 问题: *.tf file could be filetype "tf" or "terraform". 解决方案: Detect the type from the file contents. (closes #9642) 文件: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4239 问题: Build fails with unusual configuration. 解决方案: Adjust #ifdef. (closes #9651) 文件: src/testing.c Patch 8.2.4240 问题: Error for using flatten() in Vim9 script is unclear. 解决方案: Add a remark to use flattennew(). 文件: src/errors.h Patch 8.2.4241 问题: Some type casts are redundant. 解决方案: Remove the type casts. (closes #9643) 文件: src/blob.c, src/buffer.c, src/channel.c, src/clientserver.c, src/clipboard.c, src/drawline.c, src/drawscreen.c, src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/fold.c, src/if_cscope.c, src/json.c, src/match.c, src/memline.c, src/message.c, src/misc1.c, src/normal.c, src/ops.c, src/option.c, src/optionstr.c, src/os_unix.c, src/register.c, src/sign.c, src/spellfile.c, src/tag.c, src/ui.c, src/undo.c, src/window.c Patch 8.2.4242 问题: Put in Visual mode cannot be repeated. 解决方案: Use "P" to put without yanking the deleted text into the unnamed register. (Shougo Matsushita, closes #9591) 文件: runtime/doc/visual.txt, src/normal.c, src/register.c, src/testdir/test_visual.vim Patch 8.2.4243 问题: Lua tests fail with Lua 5.4.4. 解决方案: Check messages like before Lua 5.4.3. (Jakub Kulík, closes #9652) 文件: src/testdir/test_lua.vim Patch 8.2.4244 问题: MS-Windows: warning from MSVC on debug build. 解决方案: Adjust "/opt" options. Remove unused variables. Make variables uppercase for consistency. (Ken Takata, closes #9647) 文件: src/Make_mvc.mak Patch 8.2.4245 问题: ":retab 0" may cause illegal memory access. 解决方案: Limit the value of 'tabstop' to 10000. 文件: src/option.c, src/vim.h, src/indent.c, src/testdir/test_options.vim Patch 8.2.4246 问题: One error message not in errors.h. (Antonio Colombo) 解决方案: Move the message and rename. 文件: src/errors.h, src/if_perl.xs Patch 8.2.4247 问题: Stack corruption when looking for spell suggestions. 解决方案: Prevent the depth increased too much. Add a five second time limit to finding suggestions. 文件: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4248 问题: No proper test for moving the window separator. 解决方案: Add a test. Add comment in code. (closes #9656) 文件: src/window.c, src/testdir/test_window_cmd.vim Patch 8.2.4249 问题: The timeout limit for spell suggestions is always 5000 milli seconds. 解决方案: Add the "timeout" entry to 'spellsuggest'. 文件: runtime/doc/options.txt, src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4250 问题: Channel out callback test is flaky on Mac. 解决方案: Assign high priority to the test process. (Ozaki Kiichi, closes #9653) 文件: src/testdir/test_channel_pipe.py, src/testdir/thread_util.py Patch 8.2.4251 问题: Vala files are not recognized. 解决方案: Add the *.vala pattern. (closes #9654) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4252 问题: Generating the normal command table at runtime is inefficient. 解决方案: Generate the table with a Vim script and put it in a header file. (Yegappan Lakshmanan, closes #9648) 文件: Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.vim, src/evalfunc.c, src/main.c, src/normal.c, src/nv_cmdidxs.h, src/proto/normal.pro Patch 8.2.4253 问题: Using freed memory when substitute uses a recursive function call. 解决方案: Make a copy of the substitute text. 文件: src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.4254 问题: Using short instead of int. 解决方案: Use int. (closes #9658) 文件: src/if_cscope.c Patch 8.2.4255 问题: Theoretical computation overflow. 解决方案: Perform multiplication in a wider type. (closes #9657) 文件: src/alloc.c, src/drawline.c, src/eval.c, src/evalfunc.c, src/ex_docmd.c, src/hardcopy.c, src/list.c, src/memfile.c, src/memline.c, src/popupwin.c Patch 8.2.4256 问题: MS-Windows: compiler warnings when compiled with /W4. 解决方案: Small adjustments to the code. (Ken Takata, closes #9659) 文件: src/gui_w32.c, src/os_win32.c Patch 8.2.4257 问题: Vim9: finding global function without g: prefix but not finding global variable is inconsistent. 解决方案: Require using g: for a global function. Change the vim9.vim script into a Vim9 script with exports. Fix that import in legacy script does not work. 文件: src/vim9expr.c, src/evalfunc.c, src/eval.c, src/userfunc.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim, src/testdir/test_blob.vim, src/testdir/test_execute_func.vim, src/testdir/test_debugger.vim, src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, src/testdir/test_float_func.vim, src/testdir/test_functions.vim, src/testdir/test_glob2regpat.vim, src/testdir/test_highlight.vim, src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, src/testdir/test_listdict.vim, src/testdir/test_mapping.vim, src/testdir/test_normal.vim, src/testdir/test_popupwin.vim, src/testdir/test_profile.vim, src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim, src/testdir/test_textprop.vim, src/testdir/test_usercommands.vim Patch 8.2.4258 问题: Coverity warns for array overrun. 解决方案: Restrict depth to MAXWLEN - 1. 文件: src/spellsuggest.c Patch 8.2.4259 问题: Number of test functions for GUI events is growing. 解决方案: Use one function with a dictionary. (Yegappan Lakshmanan, closes #9660) 文件: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, src/testing.c Patch 8.2.4260 问题: Vim9: can still use a global function without g: at the script level. 解决方案: Also check for g: at the script level. (issue #9637) 文件: src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, src/vim9expr.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_11.dump, src/testdir/dumps/Test_popupwin_scroll_12.dump Patch 8.2.4261 问题: Accessing invalid memory when a regular expression checks the Visual area while matching in a string. 解决方案: Do not try matching the Visual area in a string. 文件: src/regexp.c, src/testdir/test_help.vim Patch 8.2.4262 (after 8.2.4261) 问题: Some search tests fail. 解决方案: Use a better way to reject searching for the Visual area. 文件: src/regexp.c Patch 8.2.4263 问题: No test for the GUI find/replace dialog. 解决方案: Add a test function and a test. (Yegappan Lakshmanan, closes #9662) 文件: runtime/doc/testing.txt, src/testdir/test_gui.vim, src/testing.c Patch 8.2.4264 问题: Vim9: can use old style autoload function name. 解决方案: Give an error for old style autoload function name. 文件: src/errors.h, src/userfunc.c, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Patch 8.2.4265 (after 8.2.4264) 问题: Autoload tests fails. 解决方案: Use export instead of name with #. 文件: src/testdir/sautest/autoload/auto9.vim, src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim Patch 8.2.4266 问题: Compiler warning for uninitialized variable. 解决方案: Initialize saved_did_emsg. 文件: src/userfunc.c Patch 8.2.4267 问题: Unused entry in keymap enum. 解决方案: Remove the entry. 文件: src/keymap.h Patch 8.2.4268 问题: CI log output is long. 解决方案: Group output in sections. (Ozaki Kiichi, closes #9670) 文件: .github/workflows/ci.yml Patch 8.2.4269 问题: Coverity warns for using a NULL pointer. 解决方案: Check for "name" to not be NULL. 文件: src/userfunc.c Patch 8.2.4270 问题: Generating nv_cmdidxs.h requires building Vim twice. 解决方案: Move the table into a separate file and use a separate executable to extract the command characters. (Ozaki Kiichi, closes #9669) 文件: src/normal.c, src/nv_cmds.h, Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.c, src/create_nvcmdidxs.vim, src/evalfunc.c, src/proto/normal.pro Patch 8.2.4271 问题: MS-Windows: cannot build with Ruby 3.1.0. 解决方案: Adjust the DLL name and include directory. (Ken Takata, closes #9666) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.4272 问题: Vim9 expr test fails without the channel feature. (Dominique Pellé) 解决方案: Remove "g:" before "CheckFeature". (closes #9671) 文件: src/testdir/test_vim9_expr.vim Patch 8.2.4273 问题: The EBCDIC support is outdated. 解决方案: Remove the EBCDIC support. 文件: src/ascii.h, src/charset.c, src/cindent.c, src/digraph.c, src/edit.c, src/eval.c, src/evalfunc.c, src/ex_cmds.c, src/feature.h, src/filepath.c, src/findfile.c, src/getchar.c, src/gui.c, src/gui_motif.c, src/hardcopy.c, src/help.c, src/macros.h, src/map.c, src/mark.c, src/misc2.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/optiondefs.h, src/os_unix.c, src/proto/evalfunc.pro, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/screen.c, src/spell.c, src/strings.c, src/structs.h, src/term.c, src/version.c, src/viminfo.c, src/testdir/test_edit.vim, src/testdir/test_exec_while_if.vim, src/testdir/test_expr.vim, src/testdir/test_gf.vim, src/testdir/test_regexp_utf8.vim Patch 8.2.4274 问题: Basic and form filetype detection is incomplete. 解决方案: Add a separate function for .frm files. (Doug Kearns, closes #9675) 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4275 问题: Cannot use an autoload function from a package under start. 解决方案: Also look in the "start" package directory. (Bjorn Linse, closes #7193) 文件: src/scriptfile.c, src/testdir/test_packadd.vim Patch 8.2.4276 问题: Separate test function for the GUI scrollbar. 解决方案: Use test_gui_event(). (Yegappan Lakshmanan, closes #9674) 文件: runtime/doc/builtin.txt, runtime/doc/testing.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/testing.c, src/proto/testing.pro, src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4277 问题: Vim9: an import does not shadow a command modifier. 解决方案: Do not accept a command modifier followed by a dot. 文件: src/ex_docmd.c, src/testdir/test_vim9_import.vim Patch 8.2.4278 问题: Build with Athena GUI fails. (Elimar Riesebieter) 解决方案: Add #ifdef. 文件: src/testing.c Patch 8.2.4279 问题: Vim9: cannot change item type with map() after range(). 解决方案: Split the return type in current type and declared type. (closes #9665) 文件: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.4280 (after 8.2.4279) 问题: list-dict test crashes. 解决方案: Check declared type for add(). 文件: src/vim9expr.vim Patch 8.2.4281 问题: Using freed memory with :lopen and :bwipe. 解决方案: Do not use a wiped out buffer. 文件: src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.4282 问题: Restricted mode requires the -Z command line option. 解决方案: Use restricted mode when $SHELL ends in "nologin" or "false". (closes #9681) 文件: runtime/doc/starting.txt, src/option.c, src/testdir/test_restricted.vim Patch 8.2.4283 问题: Using a variable for the return value is not needed. 解决方案: Return the value directly. (closes #9687) 文件: src/ex_docmd.c, src/misc2.c Patch 8.2.4284 问题: Old mac resources files are no longer used. 解决方案: Delete the unused files. (Ozaki Kiichi, closes #9688) 文件: Filelist, src/Makefile, src/dehqx.py, src/infplist.xml, src/os_mac.rsr.hqx, src/os_mac_rsrc/app.icns, src/os_mac_rsrc/doc-txt.icns, src/os_mac_rsrc/doc.icns Patch 8.2.4285 问题: Vim9: type of item in for loop not checked properly. 解决方案: Adjust the type checking. (closes #9683) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, src/testdir/test_vim9_script.vim Patch 8.2.4286 问题: Vim9: strict type checking after copy() and deepcopy(). 解决方案: Allow type to change after making a copy. (closes #9644) 文件: src/eval.c, src/proto/eval.pro, src/dict.c, src/proto/dict.pro, src/list.c, src/proto/list.pro, src/evalfunc.c, src/vim9execute.c, src/vim9type.c, src/proto/vim9type.pro, src/evalvars.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4287 问题: Cannot assign empty list with any list type to variable with specific list type. 解决方案: Use unknown list type for empty list if the specified type is any. 文件: src/vim9type.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.4288 问题: Preprocessor indents are inconsistent. 解决方案: Fix preprocessor indents. (Ken Takata, closes #9691) 文件: src/arglist.c, src/change.c, src/ex_cmds.c, src/gui.c, src/hashtab.c, src/indent.c, src/ops.c, src/os_win32.c Patch 8.2.4289 问题: Warnings reported by MSVC. 解决方案: Rename variables and other fixes. (Ken Takata, closes #9689) 文件: src/cmdexpand.c, src/drawscreen.c, src/filepath.c, src/getchar.c, src/menu.c, src/os_win32.c, src/version.c Patch 8.2.4290 问题: MS-Windows: using type casts for timer IDs. 解决方案: Remove type casts and use the right type. (Ken Takata, closes #9690) Remove old debug comments. Rename variables and functions. 文件: src/gui_w32.c Patch 8.2.4291 问题: Error number used twice. 解决方案: Renumber the errors. 文件: src/errors.h Patch 8.2.4292 (after 8.2.4291) 问题: Test fails. 解决方案: Adjust the expected error number. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.4293 问题: Vim9: when copying a list it gets type list<any> even when the original list did not have a type. 解决方案: Only set the type when the original list has a type. (closes #9692) 文件: src/list.c, src/testdir/test_vim9_expr.vim Patch 8.2.4294 问题: MS-Windows: #ifdefs for Cygwin are too complicated. 解决方案: Simplify the conditions. (Ken Takata, closes #9693) 文件: src/evalfunc.c, src/main.c, src/os_unix.c, src/os_win32.c, src/os_win32.h Patch 8.2.4295 问题: Vim9: concatenating two lists may result in wrong type. 解决方案: Remove the type instead of using list<any>. (closes #9692) 文件: src/list.c, src/testdir/test_vim9_expr.vim Patch 8.2.4296 问题: Vim9: not all code covered by tests. 解决方案: Add a few more tests for corner cases. Fix hang when single quote is missing. 文件: src/vim9expr.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4297 问题: Vim9: not all code covered by tests. 解决方案: Add a couple more tests. 文件: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4298 问题: Divide by zero with huge tabstop value. 解决方案: Reject tabstop value that overflows to zero. 文件: src/indent.c, src/testdir/test_vartabs.vim Patch 8.2.4299 问题: SafeState autocommand interferes with debugging. 解决方案: Do not trigger SafeState while debugging. (closes #9697) 文件: src/main.c Patch 8.2.4300 (after 8.2.4299) 问题: Cannot build tiny version. (Tony Mechelynck) 解决方案: Add #ifdef. 文件: src/main.c Patch 8.2.4301 问题: Vim9: type error for copy of dict. 解决方案: Do not use dict<any> but no type. (closes #9696) 文件: src/dict.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4302 问题: Vim9: return type of getline() is too strict. 解决方案: Make the declared type list<any>. Also do this for other functions returning a list of a specific type. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4303 问题: A few messages should not be translated. 解决方案: Remove _(). (Dominique Pellé, closes #9702) 文件: src/syntax.c Patch 8.2.4304 问题: Vim9: slice() makes a copy but doesn't change the type. 解决方案: Change the declared type like copy(). (closes #9696) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4305 问题: Tex filetype detection fails. 解决方案: Check value to be positive. (closes #9704) 文件: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4306 问题: No test for fixed perl filetype check. 解决方案: Add a test. Sort test functions. 文件: src/testdir/test_filetype.vim Patch 8.2.4307 问题: A few more messages should not be translated. 解决方案: Remove _(). 文件: src/syntax.c Patch 8.2.4308 问题: Vim9: cannot list autoload function. 解决方案: Don't give an error for using # when listing a function. (closes #9703) 文件: src/userfunc.c, src/testdir/test_vim9_import.vim Patch 8.2.4309 问题: Vim9: crash when using a partial in the wrong context. 解决方案: Don't use an NULL outer pointer. (closes #9706) 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.4310 问题: Vim9: constant list and dict get a declaration type other than "any". 解决方案: A constant list and dict have a declared member type "any". (closes #9701) 文件: src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro, src/testdir/test_vim9_builtin.vim Patch 8.2.4311 问题: Vim9: changing script variable type not caught at compile time. 解决方案: Set the declared type. 文件: src/vim9instr.c, src/testdir/test_vim9_assign.vim Patch 8.2.4312 问题: No error for using :vim9script in a :def function. 解决方案: Give an error when compiling. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4313 问题: Vim9: cannot change type of list after making a slice. 解决方案: Adjust the declared member type. (closes #9696) 文件: src/vim9expr.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4314 (after 8.2.4312) 问题: Test fails where lines are skipped. 解决方案: Only give an error when not skipping commands. 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4315 问题: Put in Visual mode not fully tested. 解决方案: Add a few more test cases. (closes #9708) 文件: src/testdir/test_visual.vim Patch 8.2.4316 问题: __CYGWIN32__ is not defined on 64 bit systems. 解决方案: Update #ifdefs. (Ken Takata, closes #9709) 文件: src/main.c, src/os_unix.c, src/pty.c, src/vim.h Patch 8.2.4317 问题: MS-Windows: Vim exits when Python 3 initialisation fails. 解决方案: Hook into the exit() function to recover from the failure. (Ken Takata, closes #9710) 文件: runtime/doc/if_pyth.txt, src/if_python3.c, src/os_win32.c, src/errors.h, src/proto/os_win32.pro Patch 8.2.4318 问题: Various comment and indent mistakes, returning wrong zero. 解决方案: Fix the mistakes. Return NULL instead of FAIL. 文件: src/clientserver.c, src/eval.c, src/evalvars.c, src/vim9cmds.c, src/window.c Patch 8.2.4319 问题: :put does not work properly in compiled function. (John Beckett) 解决方案: Adjust the direction when using line zero. 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4320 问题: Athena and Motif: when maximized scrollbar position is wrong. 解决方案: Implement the scrollbar padding functions. (closes #9712) 文件: src/gui_athena.c, src/gui_motif.c Patch 8.2.4321 问题: Vim9: crash when using a funcref to a closure. 解决方案: Copy pt_outer to the new partial. (closes #9714) 文件: src/evalfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4322 问题: Vim9: crash when using funcref with closure. 解决方案: Keep a reference to the funcref that has the outer context. (closes #9716) 文件: src/evalfunc.c, src/structs.h, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_func.vim Patch 8.2.4323 问题: Vim9: nested function name can start with "_". 解决方案: Use same rule for function name for nested functions. (closes #9713) 文件: src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4324 问题: Vim9: script-local function name can start with "_". 解决方案: Check for leading capital after "s:". Correct error message. 文件: src/userfunc.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4325 问题: 'wildmenu' only shows few matches. 解决方案: Add the "pum" option: use a popup menu to show the matches. (Yegappan Lakshmanan et al., closes #9707) 文件: runtime/doc/options.txt, src/vim.h, src/cmdexpand.c, src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h, src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_01.dump, src/testdir/dumps/Test_wildmenu_pum_02.dump, src/testdir/dumps/Test_wildmenu_pum_03.dump, src/testdir/dumps/Test_wildmenu_pum_04.dump, src/testdir/dumps/Test_wildmenu_pum_05.dump, src/testdir/dumps/Test_wildmenu_pum_06.dump, src/testdir/dumps/Test_wildmenu_pum_07.dump, src/testdir/dumps/Test_wildmenu_pum_08.dump, src/testdir/dumps/Test_wildmenu_pum_09.dump, src/testdir/dumps/Test_wildmenu_pum_10.dump, src/testdir/dumps/Test_wildmenu_pum_11.dump, src/testdir/dumps/Test_wildmenu_pum_12.dump, src/testdir/dumps/Test_wildmenu_pum_13.dump, src/testdir/dumps/Test_wildmenu_pum_14.dump, src/testdir/dumps/Test_wildmenu_pum_15.dump, src/testdir/dumps/Test_wildmenu_pum_16.dump, src/testdir/dumps/Test_wildmenu_pum_17.dump, src/testdir/dumps/Test_wildmenu_pum_18.dump, src/testdir/dumps/Test_wildmenu_pum_19.dump, src/testdir/dumps/Test_wildmenu_pum_20.dump, src/testdir/dumps/Test_wildmenu_pum_21.dump, src/testdir/dumps/Test_wildmenu_pum_22.dump, src/testdir/dumps/Test_wildmenu_pum_23.dump, src/testdir/dumps/Test_wildmenu_pum_24.dump, src/testdir/dumps/Test_wildmenu_pum_25.dump, src/testdir/dumps/Test_wildmenu_pum_26.dump, src/testdir/dumps/Test_wildmenu_pum_27.dump, src/testdir/dumps/Test_wildmenu_pum_28.dump, src/testdir/dumps/Test_wildmenu_pum_29.dump Patch 8.2.4326 问题: "o" and "O" copying comment not sufficiently tested. 解决方案: Add a test case. (closes #9718) 文件: src/testdir/test_textformat.vim Patch 8.2.4327 问题: May end up with no current buffer. 解决方案: When deleting the current buffer to not pick a quickfix buffer as the new current buffer. 文件: src/buffer.c, src/testdir/test_quickfix.vim Patch 8.2.4328 问题: Command line complete matches cleared when typing character. (Dominique Pellé) 解决方案: Only remove a popup menu if there is one. 文件: src/ex_getln.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_30.dump, src/testdir/dumps/Test_wildmenu_pum_31.dump Patch 8.2.4329 问题: No support for end line number and column in 'errorformat'. 解决方案: Add %e and %k. (closes #9624) 文件: runtime/doc/quickfix.txt, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.4330 问题: Vim9: no error if script imports itself. 解决方案: Give an error when a script imports itself. 文件: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim Patch 8.2.4331 问题: Vim9: no test for existing script variable in block. 解决方案: Add a test. 文件: src/testdir/test_vim9_func.vim Patch 8.2.4332 问题: Vim9: incomplete test for existing script variable in block. 解决方案: Add a couple more tests. Fix uncovered problem. 文件: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4333 问题: cstack not always passed to where it is needed. 解决方案: Pass cstack through functions. 文件: src/eval.c, src/vim9expr.c, src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9compile.pro Patch 8.2.4334 问题: Command line popup menu not positioned correctly. 解决方案: Also use vim_strsize() on the existing text. (Naruhiko Nishino, closes #9727) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_32.dump Patch 8.2.4335 问题: No autocommand event triggered before changing directory. (Ronnie Magatti) 解决方案: Add DirChangedPre. (closes #9721) 文件: runtime/doc/autocmd.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/autocmd.c, src/misc2.c, src/testdir/test_autocmd.vim Patch 8.2.4336 问题: Using :filter for :scriptnames does not work. (Ben Jackson) 解决方案: Call message_filtered(). (closes #9720) 文件: src/scriptfile.c, src/testdir/test_filter_cmd.vim Patch 8.2.4337 问题: Part of condition is always true. 解决方案: Remove that part of the condition. (closes #9729) 文件: src/filepath.c Patch 8.2.4338 问题: An error from an expression mapping messes up the display. 解决方案: When the expression results in an empty string return K_IGNORE. In cmdline mode redraw the command line. (closes #9726) 文件: src/getchar.c, src/testdir/test_mapping.vim, src/testdir/dumps/Test_map_expr_2.dump, src/testdir/dumps/Test_map_expr_3.dump, src/testdir/dumps/Test_map_expr_4.dump Patch 8.2.4339 问题: CTRL-A does not work properly with the cmdline popup menu. 解决方案: Fix issues with CTRL-A. Add more tests for the cmdline popup menu. Remove TermWait() before VeriryScreenDump(). Refactor the cmdline popup code. (Yegappan Lakshmanan, closes #9735) 文件: src/cmdexpand.c, src/ex_getln.c, src/popupmenu.c, src/testdir/screendump.vim, src/testdir/test_bufline.vim, src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim, src/testdir/test_display.vim, src/testdir/test_highlight.vim, src/testdir/test_match.vim, src/testdir/test_popup.vim, src/testdir/test_search_stat.vim, src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, src/testdir/dumps/Test_wildmenu_pum_33.dump, src/testdir/dumps/Test_wildmenu_pum_34.dump, src/testdir/dumps/Test_wildmenu_pum_35.dump, src/testdir/dumps/Test_wildmenu_pum_36.dump, src/testdir/dumps/Test_wildmenu_pum_37.dump Patch 8.2.4340 问题: Amiga: mch_can_exe() is not implemented. 解决方案: Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731) 文件: src/os_amiga.c Patch 8.2.4341 问题: Command line not redrawn when finishing popup menu and the screen has scrolled up. 解决方案: Redraw the command line after updating the screen. (closes #9722) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_38.dump Patch 8.2.4342 问题: CI will soon switch to other windows version. 解决方案: Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi, closes #9740) 文件: .github/workflows/ci.yml Patch 8.2.4343 问题: When reloading not all properties are detected. 解决方案: Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579) 文件: runtime/doc/editing.txt, runtime/doc/eval.txt, src/fileio.c, src/proto/fileio.pro, src/message.c, src/spellfile.c, src/testdir/test_filechanged.vim Patch 8.2.4344 问题: Amiga: header file included twice. 解决方案: Remove #include. (Ola Söder, closes #9733) 文件: src/memfile.c Patch 8.2.4345 问题: <amatch> is expanded like a file name for DirChangedPre. 解决方案: Do not expand <amatch>. (closes #9742) Also for the User event. 文件: src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.4346 问题: A custom statusline may cause Esc to work like Enter on the command line when the popup menu is displayed. 解决方案: Save and restore KeyTyped. (closes #9749) 文件: src/drawscreen.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_39.dump Patch 8.2.4347 问题: In some build setups UNUSED is not defined. 解决方案: Change the logic of how UNUSED is defined. (Ola Söder, closes #9734) 文件: src/vim.h Patch 8.2.4348 问题: "legacy exe cmd" does not do what one would expect. 解决方案: Apply the "legacy" and "vim9script" command modifiers to the argument of ":execute". 文件: runtime/doc/vim9.txt, src/globals.h, src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4349 问题: FileChangedShell test fails on MS-Windows. 解决方案: Skip the test on MS-Windows. 文件: src/testdir/test_filechanged.vim Patch 8.2.4350 问题: FEAT_GUI_ENABLED defined but never used. 解决方案: Remove the #define. (Ola Söder, closes #9732) 文件: src/vim.h Patch 8.2.4351 问题: No coverage is measured on MS-Windows CI. 解决方案: Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750) 文件: .github/workflows/ci.yml Patch 8.2.4352 问题: ReScript files are not recognized. 解决方案: Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4353 问题: CI does not use the latest Lua and Python. 解决方案: Use Lua 5.4.2 and Python 3.10. (closes #9744) 文件: .github/workflows/ci.yml Patch 8.2.4354 问题: Dynamic loading of libsodium not handled properly. 解决方案: Fix has() and :version. Show an error message when loading fails. Fix memory leaks. (Ken Takata, closes #9754) 文件: src/crypt.c, src/evalfunc.c, src/gui_dwrite.cpp, src/if_cscope.c, src/os_win32.c, src/proto/crypt.pro, src/proto/os_win32.pro, src/version.c Patch 8.2.4355 问题: Unnecessary call to check_colorcolumn(). 解决方案: Remove the call. (Sean Dewar, closes #9748) 文件: src/option.c, src/window.c Patch 8.2.4356 问题: Command line completion functions are very long. 解决方案: Refactor into multiple functions. (Yegappan Lakshmanan, closes #9753) 文件: src/cmdexpand.c Patch 8.2.4357 (after 8.2.4348) 问题: sticky command modifiers are too sticky. 解决方案: Do not apply command modifiers to a sourced script. (closes #9751) 文件: src/scriptfile.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4358 问题: Vim9: line number of exception is not set. 解决方案: Set the line number before throwing an exception. (closes #9755) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.4359 问题: crash when repeatedly using :retab. 解决方案: Bail out when the line is getting too long. 文件: src/indent.c, src/testdir/test_retab.vim Patch 8.2.4360 问题: Vim9: allowing use of "s:" leads to inconsistencies. 解决方案: Disallow using "s:" in Vim9 script at the script level. 文件: src/userfunc.c, src/proto/userfunc.pro, src/errors.h, src/vim9compile.c, src/eval.c, src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4361 (after 8.2.4360) 问题: Vim9: some tests fail. 解决方案: Fix the tests, mostly by removing "s:". 文件: src/testdir/test_expr.vim, src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, src/testdir/test_tagfunc.vim Patch 8.2.4362 问题: :retab may allocate too much memory. 解决方案: Bail out when allocating more than MAXCOL bytes. 文件: src/indent.c Patch 8.2.4363 问题: MS-Windows: running out of memory for a very long line. 解决方案: Use a 32 bit value for MAXCOL also when ints are 64 bits. 文件: src/vim.h Patch 8.2.4364 问题: MS-Windows: still running out of memory for a very long line. 解决方案: Check for negative length. 文件: src/indent.c Patch 8.2.4365 (after 8.2.4348) 问题: sticky command modifiers are too sticky. 解决方案: Do not apply command modifiers to a called function. (closes #9751) 文件: src/userfunc.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4366 问题: Not enough tests for command line completion. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #9760) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim Patch 8.2.4367 问题: Calling in_vim9script() multiple times. 解决方案: Call it once and keep the result. 文件: src/userfunc.c, src/eval.c Patch 8.2.4368 问题: Amiga: a few compiler warnings. 解决方案: Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756, closes #9757) 文件: src/term.c, src/os_amiga.c Patch 8.2.4369 问题: Redundant #ifdef argument. 解决方案: Remove unused MSWIN. (Ola Söder, closes #9758) 文件: src/feature.h Patch 8.2.4370 问题: MS-Windows: libsodium.dll not included with the installer. 解决方案: Add the file to the installer if it exists. (Christian Brabandt, closes #9762) 文件: nsis/gvim.nsi Patch 8.2.4371 问题: Vim9: can create a script variable from a legacy function. 解决方案: Disallow creating a script variable from a function. 文件: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim Patch 8.2.4372 问题: Filetype detection from file contents is in legacy script. 解决方案: Use a compiled function for filetype detection. 文件: runtime/scripts.vim, runtime/autoload/dist/script.vim Patch 8.2.4373 问题: Expression test fails. 解决方案: Make the test work with latest Vim9 syntax. 文件: src/testdir/test_expr.vim Patch 8.2.4374 问题: Unreachable code. 解决方案: Remove outdated code lines. 文件: src/vim9compile.c Patch 8.2.4375 问题: ctx_imports is not used. 解决方案: Delete ctx_imports. Add missing dependency. 文件: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/evalfunc.c, src/evalvars.c, src/userfunc.c, src/vim9expr.c, src/vim9script.c, src/Makefile Patch 8.2.4376 问题: Not enough tests for command line completion. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #9771) 文件: src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim Patch 8.2.4377 问题: CI steps for Windows are a bit unorganized. 解决方案: Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764) 文件: .github/workflows/ci.yml Patch 8.2.4378 问题: Incsearch highlight broken when calling searchcount() in 'tabLine' function. (Mirko Palmer) 解决方案: Save and restore the incsearch state. (Christian Brabandt, closes #9763, closes #9633) 文件: src/search.c, src/testdir/test_search_stat.vim, src/testdir/dumps/Test_searchstat_inc_1.dump, src/testdir/dumps/Test_searchstat_inc_2.dump, src/testdir/dumps/Test_searchstat_inc_3.dump Patch 8.2.4379 问题: An empty change is reported to a listener. 解决方案: Do not report an empty change. (closes #9768) Remove unused return value. 文件: src/undo.c, src/change.c, src/testdir/test_listener.vim Patch 8.2.4380 问题: Small differences between Chinese translation files. 解决方案: Add rule for converting UTF-8 to gb2312. (closes #9773) 文件: src/po/Makefile, src/po/Make_all.mak Patch 8.2.4381 (after 8.2.4380) 问题: Translation file listed twice. 解决方案: Remove one entry. 文件: src/po/Make_all.mak Patch 8.2.4382 (after 8.2.4346) 问题: A custom 'tabline' may cause Esc to work like Enter on the command line when the popup menu is displayed. 解决方案: Save and restore KeyTyped. (closes #9776) 文件: src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_40.dump Patch 8.2.4383 问题: Vim9: unused code lines. 解决方案: Rely on either "cctx" or "cstack" to not be NULL. 文件: src/vim9compile.c Patch 8.2.4384 问题: Vim9: error message not tested, some code not tested. 解决方案: Add a couple of test cases. Give an error for a command modifier without a command. 文件: src/errors.h, src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4385 (after 8.2.4384) 问题: Cannot build tiny version. 解决方案: Adjust #ifdefs. 文件: src/errors.h Patch 8.2.4386 (after 8.2.4384) 问题: Still cannot build tiny version. 解决方案: Adjust #ifdefs. 文件: src/ex_docmd.c Patch 8.2.4387 问题: Command line completion doesn't always work properly. 解决方案: Adjust triggering after a "|". Add more tests. (Yegappan Lakshmanan, closes #9779) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4388 问题: Dead code in op_insert(). 解决方案: Remove condition and else block. (closes #9782) 文件: src/ops.c Patch 8.2.4389 问题: screenpos() does not handle a position in a closed fold. 解决方案: Check if the position is inside a closed fold. (closes #9778) 文件: src/move.c, src/testdir/test_cursor_func.vim Patch 8.2.4390 问题: Vim9: list from declaration with inferred type does not set the type on the value. 解决方案: When inferring the type in a variable declaration also set the type of the list or dictionary. (closes #9705) Do not set the type when the member is "any". 文件: src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4391 问题: Command line executed when typing Esc in the GUI. 解决方案: Move saving/restoring KeyTyped to build_stl_str_hl(). (closes #9783) 文件: src/buffer.c, src/screen.c Patch 8.2.4392 (after 8.2.4002) 问题: MS-Windows with VIMDLL: Escaping CSI is wrong. 解决方案: Put back #ifdef. (Ken Takata, closes #9769) 文件: src/getchar.c Patch 8.2.4393 问题: Possible number overflow with nested folds. 解决方案: Avoid a negative line number. 文件: src/fold.c Patch 8.2.4394 (after 8.2.4392) 问题: UTF8 select mode test fails on MS-Windows. 解决方案: Revert the #ifdef change. 文件: src/getchar.c Patch 8.2.4395 问题: Some code lines not covered by tests. 解决方案: Add a few more test cases. Fix getting more than one error for invalid assignment. 文件: src/evalvars.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim Patch 8.2.4396 (after 8.2.4395) 问题: Python3 test fails. 解决方案: Remove "let". 文件: src/testdir/test_vim9_func.vim Patch 8.2.4397 问题: Crash when using many composing characters in error message. 解决方案: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). 文件: src/testing.c, src/testdir/test_assert.vim Patch 8.2.4398 问题: Some command completion functions are too long. 解决方案: Refactor code into separate functions. Add a few more tests. (Yegappan Lakshmanan, closes #9785) 文件: src/cmdexpand.c, src/ex_getln.c, src/usercmd.c, src/proto/usercmd.pro, src/testdir/test_cmdline.vim Patch 8.2.4399 问题: Crash after ml_get error. 解决方案: When returning "???" flush the line and set ml_line_lnum. 文件: src/memline.c Patch 8.2.4400 (after 8.2.4394) 问题: MS-Windows: cannot use the mouse in the console with VIMDLL. 解决方案: use add_char2buf() instead of fix_input_buffer(). (closes #9784, closes #9769) 文件: src/getchar.c Patch 8.2.4401 问题: Map listing does not clear the rest of the command line. 解决方案: Call msg_clear_eos(). (closes #5623, closes #5962) 文件: src/map.c, src/testdir/test_mapping.vim, src/testdir/dumps/Test_map_list_1.dump Patch 8.2.4402 问题: Missing parenthesis may cause unexpected problems. 解决方案: Add more parenthesis is macros. (closes #9788) 文件: src/autocmd.c, src/charset.c, src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/fileio.c, src/fold.c, src/getchar.c, src/highlight.c, src/memline.c, src/normal.c, src/quickfix.c, src/regexp.c, src/search.c, src/sha256.c, src/spell.c, src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/window.c Patch 8.2.4403 问题: ml_get error with nested folds and deleting lines. 解决方案: Correct the last line number before calling hasFoldingWin(). 文件: src/change.c Patch 8.2.4404 问题: Vim9: some code not covered by tests. 解决方案: Add a few specific test cases. 文件: src/vim9execute.c, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_import.vim Patch 8.2.4405 问题: Compiler warning for unused variable without the +folding feature. (Tony Mechelynck) 解决方案: Add #ifdef. 文件: src/change.c Patch 8.2.4406 问题: Expand functions use confusing argument names. 解决方案: Rename "file" to "match". Refactor some completion code. Add a few more tests. (Yegappan Lakshmanan, closes #9790) 文件: src/cmdexpand.c, src/testdir/test_usercommands.vim Patch 8.2.4407 问题: Vim9: some code not covered by tests. 解决方案: Add more tests. Avoid giving two errors. Remove dead code. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim Patch 8.2.4408 问题: Vim9: some code not covered by tests. 解决方案: Add a few more tests. Correct error message. Allow unlet on dict with a number key. 文件: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_assign.vim Patch 8.2.4409 问题: Vim9: some code not covered by tests. 解决方案: Add a few more tests. Fix reported line number. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4410 问题: Vim9: some code not covered by tests. 解决方案: Add a few more tests. Remove dead code. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim Patch 8.2.4411 问题: Bicep files are not recognized. 解决方案: Match *.bicep files. (Dundar Goc, closes #9791) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4412 问题: Translation cleanup script does not remove empty lines at end. 解决方案: Remove empty lines at the end. (Ken Takata, closes #9794) 文件: src/po/cleanup.vim Patch 8.2.4413 问题: Vim9: Coverity warns for using NULL pointer. 解决方案: Give an internal error when funcref function can't be found. 文件: src/vim9execute.c Patch 8.2.4414 问题: Solidity files are not recognized. 解决方案: Add the *.sol pattern. (Dundar Goc, closes #9792) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4415 问题: Function argument name conflicts with C++ keyword. 解决方案: Rename the argument. 文件: src/usercmd.c, src/proto/usercmd.pro Patch 8.2.4416 问题: Vim9: using a script-local function requires using "s:" when setting 'completefunc'. 解决方案: Do not require "s:" in Vim9 script. (closes #9796) 文件: runtime/doc/options.txt, src/userfunc.c, src/testdir/test_ins_complete.vim Patch 8.2.4417 (after 8.2.4416) 问题: Using NULL pointer. 解决方案: Set offset after checking for NULL pointer. 文件: src/userfunc.c Patch 8.2.4418 问题: Crash when using special multi-byte character. 解决方案: Don't use isalpha() for an arbitrary character. 文件: src/charset.c, src/proto/charset.pro, src/filepath.c, src/testdir/test_autochdir.vim Patch 8.2.4419 问题: Illegal memory access when using exactly 20 highlights. 解决方案: Add one more item in the array. (Brandon Richardson, closes #9800) 文件: src/buffer.c, src/testdir/test_tabline.vim Patch 8.2.4420 问题: Menu translations are inconsistent. 解决方案: Add a Makefile to convert between encodings. (Ada (Haowen) Yu, closes #9801) 文件: runtime/lang/Makefile, runtime/lang/menu_af_af.latin1.vim, runtime/lang/menu_ca_es.latin1.vim, runtime/lang/menu_chinese_gb.936.vim, runtime/lang/menu_chinese_taiwan.950.vim, runtime/lang/menu_cs_cz.iso_8859-2.vim, runtime/lang/menu_cs_cz.utf-8.vim, runtime/lang/menu_czech_czech_republic.1250.vim, runtime/lang/menu_czech_czech_republic.ascii.vim, runtime/lang/menu_da.utf-8.vim, runtime/lang/menu_de_de.latin1.vim, runtime/lang/menu_eo.utf-8.vim, runtime/lang/menu_es_es.latin1.vim, runtime/lang/menu_fi_fi.latin1.vim, runtime/lang/menu_fr_fr.latin1.vim, runtime/lang/menu_hu_hu.iso_8859-2.vim, runtime/lang/menu_hu_hu.utf-8.vim, runtime/lang/menu_is_is.latin1.vim, runtime/lang/menu_it_it.latin1.vim, runtime/lang/menu_ja_jp.euc-jp.vim, runtime/lang/menu_ja_jp.utf-8.vim, runtime/lang/menu_japanese_japan.932.vim, runtime/lang/menu_ko_kr.euckr.vim, runtime/lang/menu_ko_kr.utf-8.vim, runtime/lang/menu_nl_nl.latin1.vim, runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pl_pl.iso_8859-2.vim, runtime/lang/menu_pl_pl.utf-8.vim, runtime/lang/menu_polish_poland.1250.vim, runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim, runtime/lang/menu_ru.utf-8.vim, runtime/lang/menu_ru_ru.koi8-r.vim, runtime/lang/menu_ru_ru.utf-8.vim, runtime/lang/menu_ru_ru.vim, runtime/lang/menu_sk_sk.iso_8859-2.vim, runtime/lang/menu_sl_si.cp1250.vim, runtime/lang/menu_sl_si.latin2.vim, runtime/lang/menu_sl_si.utf-8.vim, runtime/lang/menu_slovak_slovak_republic.1250.vim, runtime/lang/menu_sr_rs.ascii.vim, runtime/lang/menu_sr_rs.iso_8859-2.vim, runtime/lang/menu_sr_rs.iso_8859-5.vim, runtime/lang/menu_sr_rs.utf-8.vim, runtime/lang/menu_sv_se.latin1.vim, runtime/lang/menu_tr_tr.cp1254.vim, runtime/lang/menu_tr_tr.iso_8859-9.vim, runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_uk_ua.cp1251.vim, runtime/lang/menu_uk_ua.koi8-u.vim, runtime/lang/menu_uk_ua.utf-8.vim, runtime/lang/menu_vi_vn.vim, runtime/lang/menu_zh_cn.utf-8.vim, runtime/lang/menu_zh_tw.utf-8.vim Patch 8.2.4421 问题: Some installed files and directories have wrong permissions. 解决方案: Adjust the Makefile and shell to set permissions. (closes #9793) 文件: src/Makefile, src/installman.sh Patch 8.2.4422 问题: Autochdir test fails on MS-Windows. 解决方案: Expect another error on MS-Windows. 文件: src/testdir/test_autochdir.vim Patch 8.2.4423 问题: "make nvcmdidxs" fails. 解决方案: Use "-S" instead of "-u" to source the script. 文件: src/Makefile Patch 8.2.4424 问题: ".gts" and ".gjs" files are not recognized. 解决方案: Recognize Glimmer flavored typescript and javascript. (closes #9799) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4425 问题: map() function does not check function arguments at compile time. 解决方案: Give an error if the arguments of a map() function are wrong. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim Patch 8.2.4426 问题: map() function on string and blob does not check argument types at compile time. 解决方案: Check string and blob argument types. Support "0z1234->func()". 文件: src/vim9compile.c, src/evalfunc.c, src/ex_docmd.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4427 问题: getchar() may return modifiers if no character is available. 解决方案: Do not process modifiers when there is no character. (closes #9806) 文件: src/getchar.c, src/testdir/test_functions.vim Patch 8.2.4428 问题: Crash when switching tabpage while in the cmdline window. 解决方案: Disallow switching tabpage when in the cmdline window. 文件: src/window.c, src/proto/window.pro, src/evalvars.c, src/evalvars.c, src/usercmd.c Patch 8.2.4429 问题: Using script-local function from the wrong script when using a partial. (Yegappan Lakshmanan) 解决方案: Include the script ID in the partial name. 文件: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_import.vim Patch 8.2.4430 问题: GTK: crash when using 'guiligatures' and reading from stdin. 解决方案: Make a copy of the message. (Amon Sha, closes #9719, closes #9814) 文件: src/fileio.c Patch 8.2.4431 问题: Unnecessary condition when assigning to a variable. 解决方案: Remove the condition. 文件: src/evalvars.c Patch 8.2.4432 (after 8.2.4428) 问题: Cannot use settabvar() while the cmdline window is open. 解决方案: Only give an error when actually switching tabpage. (closes #9813) 文件: src/window.c Patch 8.2.4433 问题: CI: cannot see interface versions for MS-Windows. 解决方案: List the interface versions. (Ken Takata, closes #9811) 文件: .github/workflows/ci.yml Patch 8.2.4434 问题: Duplicate check for cmdline window. 解决方案: Remove the second check. (Sean Dewar, closes #9816) 文件: src/window.c Patch 8.2.4435 问题: Dead code in checking map() arguments. (Dominique Pellé) 解决方案: Remove the first return statement. (closes #9815) 文件: src/evalfunc.c Patch 8.2.4436 问题: Crash with weird 'vartabstop' value. 解决方案: Check for running into the end of the line. 文件: src/indent.c, src/testdir/test_vartabs.vim Patch 8.2.4437 问题: Vartabs test fails on MS-Windows. 解决方案: Use iso8859-1 'encoding'. (Ken Takata, closes #9818) 文件: src/testdir/test_vartabs.vim Patch 8.2.4438 问题: Crash on exit when using cmdline window. 解决方案: Reset "cmdwin_type" before exiting. (closes #9817) 文件: src/ui.c, src/testdir/test_exit.vim Patch 8.2.4439 问题: Accepting "iso8859" 'encoding' as "iso-8859-". 解决方案: use "iso8859" as "iso-8859-1". 文件: src/mbyte.c, src/testdir/test_options.vim Patch 8.2.4440 问题: Crash with specific regexp pattern and string. 解决方案: Stop at the start of the string. 文件: src/regexp_bt.c, src/testdir/test_regexp_utf8.vim Patch 8.2.4441 问题: Vim9: function argument of filter() not checked like map(). 解决方案: Also check the function argument of filter(). 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4442 (after 8.2.4438) 问题: Test for error reading input fails on MS-Windows. 解决方案: Don't run the test on MS-Windows. 文件: src/testdir/test_exit.vim Patch 8.2.4443 (after 8.2.4440) 问题: Regexp pattern test fails on Mac. 解决方案: Do not use a swapfile for the buffer. 文件: src/testdir/test_regexp_utf8.vim Patch 8.2.4444 问题: Beep caused by test. ASAN reports leaks. 解决方案: Do not put a NL at the end of the script. Make the text work on MS-Windows. Do not run the test with ASAN. 文件: src/testdir/test_exit.vim Patch 8.2.4445 问题: Exit test fails on MS-Windows anyway. 解决方案: Skip the test on MS-Windows. 文件: src/testdir/test_exit.vim Patch 8.2.4446 问题: Vim9: cannot refer to a global function like a local one. 解决方案: When g:name is not a variable but a function, use a function reference. (closes #9826) 文件: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4447 问题: Vim9: can still use s:var in a compiled function. 解决方案: Disallow using s:var for Vim9 script. (closes #9824) 文件: runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4448 (after 8.2.4447) 问题: Filetype detection is failing. 解决方案: Do not use "s:" where it is no longer allowed. 文件: runtime/autoload/dist/ft.vim, Patch 8.2.4449 问题: vim9: function argument of sort() not checked at compile time. 解决方案: Add a compile time check. 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4450 (after 8.2.4449) 问题: List sort test fails. 解决方案: Pass a valid "how" argument. 文件: src/testdir/test_listdict.vim Patch 8.2.4451 (after 8.2.4450) 问题: sort() fails when ignoring case. 解决方案: Accept a number one argument in sort(). 文件: src/evalfunc.c, src/testdir/test_listdict.vim Patch 8.2.4452 问题: Test for what 8.2.4436 fixes does not check for regression. 解决方案: Set several options. (Ken Takata, closes #9830) 文件: src/testdir/test_vartabs.vim Patch 8.2.4453 问题: :helpgrep may free an option that was not allocated. (Yegappan Lakshmanan) 解决方案: Check if the value was allocated. 文件: src/option.c, src/proto/option.pro, src/quickfix.c, src/testdir/test_quickfix.vim Patch 8.2.4454 问题: Resetting cmdwin_type only for one situation. 解决方案: Reset cmdwin_type before closing windows. (closes #9822) 文件: src/ui.c, src/window.c, src/testdir/test_exit.vim Patch 8.2.4455 问题: Accepting one and zero for the second sort() argument is strange. 解决方案: Disallow using one and zero in Vim9 script. 文件: runtime/doc/builtin.txt, src/evalfunc.c, src/list.c, src/testdir/test_listdict.vim Patch 8.2.4456 问题: Terminal test may fail on some machines. 解决方案: Increase wait time. (Zdenek Dohnal, closes #9834) 文件: src/testdir/test_terminal.vim Patch 8.2.4457 问题: The GPM library can only be linked statically. 解决方案: Make it possible to load the GPM library dynamically. (Damien) 文件: runtime/doc/various.txt, src/config.h.in, src/configure.ac, src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c, src/proto/os_unix.pro, src/version.c Patch 8.2.4458 问题: Vim9: compiling filter() call fails with funcref that has unknown arguments. 解决方案: Do not check the arguments if they are unknown at compile time. (closes #9835) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4459 问题: Vim9: compiling sort() call fails with a funcref that has unknown arguments. 解决方案: Do not check the arguments if they are unknown at compile time. (closes #9835) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4460 问题: Vim9: wrong error for defining dict function. 解决方案: Explicitly check for trying to define a dict function. (closes #9827) 文件: src/errors.h, src/userfunc.c, src/vim9compile.c, src/testdir/test_vim9_func.vim Patch 8.2.4461 问题: MS-Windows: garbage characters on stdout with VIMDLL. 解决方案: Don't call gui_focus_change() when about to quit. (Ken Takata, closes #9840) 文件: src/gui_w32.c Patch 8.2.4462 问题: Not enough testing for quickfix code. 解决方案: Add more tests. Fix uncovered problem. (Yegappan Lakshmanan, closes #9839) 文件: src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim, src/testdir/test_quickfix.vim Patch 8.2.4463 问题: Completion only uses strict matching. 解决方案: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan, closes #9803) 文件: runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c, src/option.c, src/option.h, src/optionstr.c, src/proto/cmdexpand.pro, src/proto/option.pro, src/proto/search.pro, src/search.c, src/structs.h, src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim Patch 8.2.4464 问题: Dtrace files are recognized as filetype D. 解决方案: Add a pattern for Dtrace files. (Teubel György, closes #9841) Add some more testing. 文件: runtime/autoload/dist/ft.vim, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4465 问题: Fuzzy completion does not order matches properly. 解决方案: Do not use regular expression match. (Yegappan Lakshmanan, closes #9843) 文件: src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim Patch 8.2.4466 问题: MS-Windows: illegal memory access in installer when using "create-directories" as the final argument. 解决方案: Check the argument count. (Cam Sinclair, closes #9844) 文件: src/dosinst.c Patch 8.2.4467 问题: Running filetype test leaves file behind. 解决方案: Delete the file. 文件: src/testdir/test_filetype.vim Patch 8.2.4468 问题: Coverity warns for uninitialized struct member. 解决方案: Set color.index to zero. 文件: src/terminal.c Patch 8.2.4469 问题: Coverity warns for uninitialized variable. 解决方案: Set the value to zero. 文件: src/ex_getln.c Patch 8.2.4470 问题: Coverity warns for uninitialized variable. 解决方案: Set can_spell to zero. 文件: src/drawline.c Patch 8.2.4471 问题: Coverity warns for uninitialized variable. 解决方案: Set flags to zero. 文件: src/vim9cmds.c Patch 8.2.4472 问题: Coverity warns for use of a freed function name. 解决方案: Only check an autoload name when is prefixed. 文件: src/userfunc.c Patch 8.2.4473 问题: Coverity warns for not checking return value of ftell(). 解决方案: Bail out if ftell() returns a negative value. 文件: src/spellfile.c Patch 8.2.4474 问题: Memory allocation failures not tested in quickfix code. 解决方案: Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848) 文件: src/alloc.h, src/quickfix.c, src/vim.h, src/testdir/test_quickfix.vim Patch 8.2.4475 问题: Fuzzy cmdline completion does not work for lower case. 解决方案: Also use fuzzy completion for lower case input. (Yegappan Lakshmanan, closes #9849) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4476 问题: Operator name spelled wrong. 解决方案: Change trinary to ternary. (Goc Dundar, closes #9850) 文件: src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim Patch 8.2.4477 问题: Crash when using fuzzy completion. 解决方案: Temporary fix: put back regexp. (closes #9851) 文件: src/cmdexpand.c Patch 8.2.4478 问题: Crash when using fuzzy completion. 解决方案: Temporary fix: put back regexp. (closes #9852, closes #9851) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4479 问题: No fuzzy completion for maps and abbreviations. 解决方案: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan, closes #9856) 文件: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c, src/testdir/test_cmdline.vim Patch 8.2.4480 问题: Suspending with CTRL-Z does not work on Android. 解决方案: Do not handle SIGTSTP. (closes #9854) 文件: src/os_unix.c Patch 8.2.4481 问题: Cmdline popup menu not removed when 'lazyredraw' is set. 解决方案: Temporarily reset 'lazyredraw' when removing the popup menu. (closes #9857) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_41.dump Patch 8.2.4482 问题: No fuzzy cmdline completion for user defined completion. 解决方案: Add fuzzy completion for user defined completion. (Yegappan Lakshmanan, closes #9858) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4483 问题: Command completion makes two rounds to collect matches. 解决方案: Use a growarray to collect matches. (Yegappan Lakshmanan, closes #9860) 文件: src/buffer.c, src/cmdexpand.c, src/map.c, src/testdir/test_cmdline.vim Patch 8.2.4484 问题: Vim9: some error messages are not tested. 解决方案: Add a few more test cases. Delete dead code. 文件: src/vim9execute.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim Patch 8.2.4485 问题: Compiler warning for uninitialized variable. 解决方案: Initialize the variable. (John Marriott) 文件: src/cmdexpand.c Patch 8.2.4486 问题: MS-Windows GUI: slow scrolling with maximized window. 解决方案: Use a better way to check the window is on screen. (Ken Takata, closes #9865) 文件: src/gui_w32.c Patch 8.2.4487 问题: Vim9: cannot compare with v:null. 解决方案: Allow comparing anything with v:null. (closes #9866) 文件: src/vim9instr.c, src/typval.c, src/proto/typval.pro, src/vim9.h, src/vim9execute.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4488 (after 8.2.4487) 问题: Build error with +eval but without +channel or +job. 解决方案: Add #ifdef. (John Marriott) 文件: src/typval.c Patch 8.2.4489 (after 8.2.4487) 问题: Failing test for comparing v:null with number. 解决方案: Allow comparing v:null with number in legacy script. (Ken Takata, closes #9873) Also do this for float. 文件: src/typval.c, src/testdir/test_vimscript.vim Patch 8.2.4490 问题: Terminal focus reporting only works for xterm-like terminals. (Jonathan Rascher) 解决方案: Remove the "focus_mode" flag. (closes #9859) 文件: src/term.c Patch 8.2.4491 问题: MS-Windows makefile dependencies are outdated. 解决方案: Update dependencies. (Ken Takata, closes #9876) 文件: src/Make_cyg_ming.mak, src/Make_mvc.mak Patch 8.2.4492 问题: No error if an option is given an invalid value with ":let &opt = val". 解决方案: Give the error. (closes #9864) 文件: src/evalvars.c, src/testdir/test_options.vim Patch 8.2.4493 (after 8.2.4492) 问题: Options test fails in the GUI. 解决方案: Do not save and restore 'term'. 文件: src/testdir/gen_opt_test.vim Patch 8.2.4494 问题: The find_tags() function is much too long. 解决方案: Refactor the function. (Yegappan Lakshmanan, closes #9869) 文件: src/quickfix.c, src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.4495 问题: Help test fails in 24 line terminal. 解决方案: Use up to 23 lines for text. 文件: src/testdir/test_help.vim Patch 8.2.4496 (after 8.2.4494) 问题: Coverity gives warnings after tags code refactoring. 解决方案: Avoid the warnings. (Yegappan Lakshmanan, closes #9882) 文件: src/tag.c Patch 8.2.4497 问题: Wrong color for half of wide character next to pum scrollbar. 解决方案: Redraw the screen cell with the right color. (closes #9874) 文件: src/screen.c, src/testdir/test_ins_complete.vim, src/testdir/dumps/Test_scrollbar_on_wide_char.dump Patch 8.2.4498 问题: Using <Plug> with "noremap" does not work. 解决方案: Always remap <Plug>. (closes #9879, closes #9789) 文件: runtime/doc/map.txt, src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.4499 问题: Vim9: at the script level declarations leak from try block to catch and finally block. 解决方案: End the block and start a new one. (closes #9883) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4500 问题: Vim9: can declare a global variable on the command line. 解决方案: Disallow declaring a variable on the command line. (closes #9881) 文件: src/errors.h, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_vim9_reject_declaration.dump Patch 8.2.4501 问题: With 'showbreak' set and after the end of the line the cursor may be displayed in the wrong position. 解决方案: Do not apply 'showbreak' after the end of the line. (closes #9884) 文件: src/charset.c, src/testdir/test_breakindent.vim, src/testdir/dumps/Test_cursor_position_with_showbreak.dump Patch 8.2.4502 问题: In the GUI a modifier is not recognized for the key typed after CTRL-X, which may result in a mapping to be used. (Daniel Steinberg) 解决方案: Recognize a modifier starting with CSI. (closes #9889) 文件: src/getchar.c, src/testdir/test_ins_complete.vim Patch 8.2.4503 问题: Vim9: there is no point in supporting :Print and :mode. 解决方案: Do not recognize :Print and :mode as commands. (closes #9870) 文件: src/ex_docmd.c, src/testdir/test_vim9_script.vim Patch 8.2.4504 问题: When there is a partially matching map and modifyOtherKeys is active a full map may not work. 解决方案: Only simplify modifiers when there is no matching mapping. (closes #8792) 文件: src/getchar.c, src/testdir/test_termcodes.vim Patch 8.2.4505 问题: Vim9: outdated "autocmd nested" still works. 解决方案: Do not accept the :autocmd argument "nested" without "++" in Vim9 script. 文件: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim Patch 8.2.4506 问题: "pattern not found" for :global is not an error message. 解决方案: In Vim9 script make this an actual error, so that try/catch can be used as expected. 文件: src/ex_cmds.c, src/errors.h, src/testdir/test_global.vim Patch 8.2.4507 (after 8.2.4506) 问题: Test fails because of new error message. 解决方案: Avoid the test fails. 文件: src/testdir/test_vim9_cmd.vim Patch 8.2.4508 问题: Vim9: cannot assign to a global variable on the command line. 解决方案: Allow using :vim9cmd for assignment on the command line. 文件: src/evalvars.c, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_vim9_reject_declaration.dump, src/testdir/dumps/Test_vim9_reject_declaration_1.dump, src/testdir/dumps/Test_vim9_reject_declaration_2.dump Patch 8.2.4509 问题: Vim9: can declare a variable with ":va". 解决方案: Disallow using ":va", require using ":var". 文件: src/evalvars.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4510 问题: Vim9: shortening commands leads to confusing script. 解决方案: In Vim9 script require at least ":cont" for ":continue", "const" instead of "cons", "break" instead of "brea", "catch" instead of "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor" instead of "endfo" "endif" instead of "en" "endtry" instead of "endt", "finally" instead of "fina", "throw" instead of "th", "while" instead of "wh". 文件: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/evalvars.c, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4511 问题: Filetype test fails. 解决方案: Change "endw" to "endwhile". 文件: runtime/autoload/dist/ft.vim Patch 8.2.4512 问题: The find_tags_in_file() function is much too long. 解决方案: Refactor into multiple smaller functions. (Yegappan Lakshmanan, closes #9892) 文件: Filelist, src/Makefile, src/quickfix.c, src/tag.c, src/testdir/test83-tags2, src/testdir/test83-tags3, src/testdir/test_tagjump.vim Patch 8.2.4513 问题: Window-local directory is not applied if 'acd' fails. 解决方案: Don't call do_autochdir(). (closes #9891) 文件: src/window.c, src/testdir/test_autochdir.vim Patch 8.2.4514 问题: Vim9: some flow commands can be shortened. 解决方案: Also require using the full name for ":return", ":enddef", ":continue", ":export" and ":import". 文件: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, src/testdir/test_vim9_script.vim Patch 8.2.4515 问题: Old substitute syntax is still supported. 解决方案: Disallow using backslash after ":s" in Vim9 script. 文件: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim Patch 8.2.4516 (after 8.2.4515) 问题: Build failure without the +eval feature. 解决方案: Move error message outside of #ifdef. 文件: src/errors.h Patch 8.2.4517 问题: MS-Windows: cannot specify location of sodium library. 解决方案: Allow for using a path for SODIUM. (Ken Takata, closes #9896) 文件: src/Make_cyg_ming.mak Patch 8.2.4518 问题: The binary tag search feature is always enabled. 解决方案: Remove the #ifdefs. Add a few more tests. (Yegappan Lakshmanan, closes #9893) 文件: src/evalfunc.c, src/feature.h, src/tag.c, src/version.c, src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim Patch 8.2.4519 问题: Vim9: Can still use ":fini" and ":finis" for ":finish". 解决方案: Require using ":finish". 文件: src/ex_cmds.h, src/testdir/test_vim9_script.vim Patch 8.2.4520 问题: Using wrong highlight for cursor line number. 解决方案: Take filler lines into account when using CursorLineNr. (closes #9897) 文件: src/drawline.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_with_cursorline_number_01.dump, src/testdir/dumps/Test_diff_with_cursorline_number_02.dump Patch 8.2.4521 (after 8.2.4520) 问题: Build failure without the +diff feature. (John Marriott) 解决方案: Define filler+lines if not declaring it. 文件: src/drawline.c Patch 8.2.4522 (after 8.2.4492) 问题: GUI test fails with Motif. (Dominique Pellé) 解决方案: Remove using an invalid value for 'guifontset'. 文件: src/testdir/test_gui.vim Patch 8.2.4523 问题: When gvim is started maximized the 'window' option isn't set properly. (Christian J. Robinson) 解决方案: Check if 'windows' was already set or not. (Ken Takata, closes #9904) 文件: src/term.c Patch 8.2.4524 问题: MS-Windows: cannot build with some sodium libraries. 解决方案: Make the DLL name configurable. Add build instructions. (Ken Takata, closes #9905) 文件: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, src/crypt.c Patch 8.2.4525 问题: Some GUI tests don't work on Athena. 解决方案: Skip tests that won't work. (Yegappan Lakshmanan, closes #9902) 文件: src/testdir/test_gui.vim Patch 8.2.4526 问题: Vim9: cannot set variables to a null value. 解决方案: Add null_list, null_job, etc. 文件: runtime/doc/vim9.txt, src/eval.c, src/proto/eval.pro, src/vim9expr.c, src/vim9script.c, src/vim9instr.c, src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/vim9type.c, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_func.vim, src/testdir/test_expr.vim Patch 8.2.4527 问题: The Athena GUI is old and does not work well. 解决方案: Remove the Athena GUI from configure to find out who still wants support for this GUI. 文件: src/configure.ac, src/auto/configure, src/Makefile Patch 8.2.4528 问题: Crash when using null_function for a partial. 解决方案: Don't call fname_trans_sid() with NULL. (closes #9908) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4529 问题: Vim9: comparing partial with function fails. 解决方案: Support this comparison. Avoid a crash. (closes #9909) Add more test cases. 文件: src/vim9instr.c, src/userfunc.c, src/vim9type.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vimscript.vim Patch 8.2.4530 问题: Making comparison with null work changes legacy behavior. 解决方案: Only use the better comparison in Vim9 script. (closes #9910) 文件: src/typval.c, src/testdir/test_expr.vim Patch 8.2.4531 问题: LGTM warnings for condition always true and buffer size too small. 解决方案: Remove the useless condition. Make the buffer larger. (Goc Dundar, closes #9914) 文件: src/charset.c, src/term.c Patch 8.2.4532 问题: Suspending with CTRL-Z does not work on OpenBSD. 解决方案: Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912) 文件: src/os_unix.c Patch 8.2.4533 问题: Vim9: no test that after assigning null the type is still checked. 解决方案: Add a test. 文件: src/testdir/test_vim9_assign.vim Patch 8.2.4534 问题: Vim9: "is" operator with empty string and null returns true. 解决方案: Consider empty string and null to be different for "is". 文件: src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.4535 问题: Filename modifier ":8" removes the filename. 解决方案: Use strncpy() instead of vim_strncpy(). (Christian Brabandt, closes #9918, closes #8600) 文件: src/filepath.c, src/testdir/test_shortpathname.vim Patch 8.2.4536 (after 8.2.4534) 问题: Debugger test fails when breaking on expression. 解决方案: Compare strings with "==" instead of "is". 文件: src/debugger.c Patch 8.2.4537 问题: Output from linter and language server shows up in git. 解决方案: Add patterns to .gitignore. (Goc Dundar, closes #9925) 文件: .gitignore Patch 8.2.4538 问题: The find_tags_in_file() function is too long. 解决方案: Refactor into smaller functions. (Yegappan Lakshmanan, closes #9920) 文件: src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.4539 问题: When comparing special v:none and v:null are handled the same when compiling. 解决方案: Pass more information so that v:none can be handled differently at compile time. (issue #9923) 文件: src/vim9instr.c, src/vim9compile.c, src/globals.h, src/testdir/test_vim9_expr.vim Patch 8.2.4540 问题: Line number for error is off by one. 解决方案: Remember the line number of the comparison. (closes #9923) 文件: src/eval.c, src/testdir/test_vim9_expr.vim Patch 8.2.4541 问题: Crash in debugger when a variable is not available in the current block. 解决方案: Check for a NULL name. (closes #9926) 文件: src/vim9execute.c, src/testdir/test_debugger.vim Patch 8.2.4542 问题: Vim9: "break" inside try/catch not handled correctly. 解决方案: First jump to :endtry. (closes #9927) 文件: src/vim9cmds.c, src/vim9.h, src/testdir/test_vim9_script.vim Patch 8.2.4543 问题: Coverity warning for refactored tag search code. 解决方案: Avoid the warnings. Update comments. Add one more test case. (Yegappan Lakshmanan, closes #9928) 文件: src/tag.c, src/testdir/test_tagjump.vim Patch 8.2.4544 问题: Coverity warnings for not using returned value. 解决方案: Assign to vim_ignored. 文件: src/tag.c Patch 8.2.4545 问题: MS-Windows: the installed icon is low resolution. 解决方案: Use a better icon. Install vim.ico. (Christian Brabandt, closes #9931, closes #9930) 文件: Filelist, nsis/gvim.nsi, src/vim.ico, runtime/bitmaps/vim.ico Patch 8.2.4546 问题: Duplicate #undef. 解决方案: Remove one #undef. (closes #9932) 文件: src/regexp_nfa.c Patch 8.2.4547 问题: The neXTaw GUI is old and does not work well. 解决方案: Remove the neXTaw GUI from configure to find out who still wants support for this GUI. 文件: src/configure.ac, src/auto/configure, src/Makefile Patch 8.2.4548 问题: Script-local function is deleted when used in a funcref. 解决方案: Do not consider a function starting with "<SNR>" reference counted. (closes #9916, closes #9820) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4549 问题: Cannot build with Motif and editres. (Tony Mechelynck) 解决方案: Fix configure mistake. 文件: src/configure.ac, src/auto/configure Patch 8.2.4550 问题: Motif: cannot set the color of the scrollbar thumb. 解决方案: Remove #ifdef. 文件: src/gui_motif.c Patch 8.2.4551 问题: When mapping <Esc> terminal codes are not recognized. 解决方案: Specifically recognize a mapping with just <Esc> and check for terminal codes even though there is no partial mapping. (closes #9903) 文件: src/getchar.c, src/testdir/test_termcodes.vim Patch 8.2.4552 问题: In a :def function "put = expr" does not work. 解决方案: Skip over white space. (closes #9936) 文件: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4553 问题: Linear tag search is a bit slow. 解决方案: Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937) 文件: src/tag.c, src/testdir/test_taglist.vim Patch 8.2.4554 问题: Vim9: using null values not sufficiently tested. 解决方案: Add more tests. Fix uncovered problem. 文件: src/vim9type.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.4555 问题: getmousepos() returns the wrong column. (Ernie Rael) 解决方案: Limit to the text size, not the number of bytes. 文件: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4556 问题: Test fails without the +job or +channel feature. (Dominique Pellé) 解决方案: Adjust #ifdefs. Pass on skip flag. (closes #9942) 文件: src/eval.c, src/vim9compile.c Patch 8.2.4557 问题: Confusing comment about 'cursorlineopt'. 解决方案: Adjust comment. (closes #9939) Add parenthesis around logical OR. 文件: src/drawline.c Patch 8.2.4558 问题: Motif: using default colors does not work as expected. 解决方案: Do not try to store the default colors, use the resources. (closes #9933) 文件: src/gui_motif.c, src/gui.h Patch 8.2.4559 (after 8.24555) 问题: getmousepos() returns the screen column. (Ernie Rael) 解决方案: Return the text column, as documented. 文件: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4560 问题: Suspending with CTRL-Z does not work on DragonFlyBSD. 解决方案: Adjust #ifdef. (Ozaki Kiichi, closes #9943) 文件: src/os_unix.c Patch 8.2.4561 问题: Build failure with some combination of features. (John Marriott) 解决方案: Adjust #ifdef. 文件: src/mouse.c Patch 8.2.4562 问题: Linear tag search is not optimal. 解决方案: Improve linear tag search performance. (Yegappan Lakshmanan, closes #9944) 文件: src/tag.c Patch 8.2.4563 问题: "z=" in Visual mode may go beyond the end of the line. 解决方案: Adjust "badlen". 文件: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.4564 问题: Running test leaves file behind. (Dominique Pellé) 解决方案: Run the profiling in a separate Vim instance. (closes #9952) 文件: src/testdir/test_vim9_script.vim Patch 8.2.4565 问题: No command line completion for :breakadd and :breakdel. 解决方案: Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan, closes #9950) 文件: runtime/doc/builtin.txt, src/cmdexpand.c, src/spellsuggest.c, src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/test_writefile.vim Patch 8.2.4566 问题: Check for existing buffer in session file does not work for files in the home directory. 解决方案: Use fnamemodify(). (James Cherti, closes #9945) Add a test. 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4567 问题: Bracketed paste doesn't work well in Visual linewise mode. 解决方案: Handle linewise Visual mode differently. (closes #9947) 文件: src/normal.c, src/testdir/test_paste.vim Patch 8.2.4568 问题: getmousepos() does not compute the column below the last line. 解决方案: Also compute the column when the mouse is below the last line. (Sean Dewar, closes #9946) 文件: src/mouse.c, src/testdir/test_functions.vim Patch 8.2.4569 问题: Coverity warning for not using a return value. 解决方案: Add "(void)". 文件: src/popupwin.c Patch 8.2.4570 问题: No command line completion for :profile and :profdel. 解决方案: Implement completion. (Yegappan Lakshmanan, closes #9955) 文件: src/cmdexpand.c, src/profiler.c, src/testdir/test_cmdline.vim, src/testdir/test_profile.vim Patch 8.2.4571 问题: Not all gdb files are recognized. 解决方案: Add a few more patterns for gdb. (Jade Lovelace, closes #9956) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4572 问题: Vim9: return type "any" is sometimes changed to first returned type. (Virginia Senioria) 解决方案: Do not change the return type if declared as "any". (closes #9949) 文件: src/vim9cmds.c, src/testdir/test_vim9_func.vim Patch 8.2.4573 问题: A nested function (closure) is compiled for debugging without context. 解决方案: Check if a nested function is marked for debugging before compiling it. Give an error when trying to compile a closure without its context. (closes #9951) 文件: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, src/vim9expr.c, src/errors.h Patch 8.2.4574 问题: Vim9: test for profiling fails. 解决方案: Mark function for profiling earlier to avoid E1271. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4575 问题: Vim9: test for profiling still fails. 解决方案: Update flags for profiling and breakpoints when obtaining the compile type. Do not set the FC_CLOSURE flag for a toplevel function. 文件: src/vim.h, src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/vim9.h Patch 8.2.4576 问题: Vim9: error for comparing with null can be annoying. 解决方案: Allow comparing anything with null. (closes #9948) 文件: src/vim9instr.c, src/typval.c, src/testdir/test_vim9_expr.vim Patch 8.2.4577 问题: Message test is flaky. (Elimar Riesebieter) 解决方案: Trigger the autocommand event only after startup is finished. 文件: src/testdir/test_messages.vim Patch 8.2.4578 问题: No warning when an autoload script for completion function has an error. 解决方案: Do not ignore errors when a function name is given with a dot or '#' character. (closes #9958) 文件: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.4579 问题: Cannot use page-up and page-down in the command line completion popup menu. 解决方案: Check for to page-up and page-down keys. (Yegappan Lakshmanan, closes #9960) 文件: src/cmdexpand.c, src/ex_getln.c, src/spellsuggest.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_42.dump, src/testdir/dumps/Test_wildmenu_pum_43.dump, src/testdir/dumps/Test_wildmenu_pum_44.dump, src/testdir/dumps/Test_wildmenu_pum_45.dump, src/testdir/dumps/Test_wildmenu_pum_46.dump, src/testdir/dumps/Test_wildmenu_pum_47.dump, src/testdir/dumps/Test_wildmenu_pum_48.dump, src/testdir/dumps/Test_wildmenu_pum_49.dump, src/testdir/dumps/Test_wildmenu_pum_50.dump Patch 8.2.4580 问题: Vim9: incorrect error for shadowing variable. 解决方案: Do not pass the context when compiling a referenced function. 文件: src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4581 问题: Null types not fully tested. 解决方案: Add some more tests using null types. 文件: src/testdir/test_vim9_expr.vim Patch 8.2.4582 问题: Useless code handling a type declaration. 解决方案: Remove the code and give an error. 文件: src/eval.c, src/errors.h, src/testdir/test_vim9_script.vim, src/testdir/dumps/Test_misplaced_type.dump Patch 8.2.4583 (after 8.2.4582) 问题: Screendump test fails. 解决方案: Check that making a screendump is possible. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4584 (after 8.2.4578) 问题: Error for using autoload function in custom completion. 解决方案: Do not check for errors when using an autoload function. (closes #9962) 文件: src/eval.c, src/testdir/test_cmdline.vim Patch 8.2.4585 问题: Cannot use keypad page-up/down for completion menu. 解决方案: Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963) 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4586 问题: Vim9: no error for using lower case name for "func" argument. (Ernie Rael) 解决方案: Check the name as soon as the type is known. 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4587 问题: Vim9: double free after unpacking a list. 解决方案: Make a copy of the value instead of moving it. (closes #9968) 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim Patch 8.2.4588 问题: Mapping with key code after other matching mapping does not work. 解决方案: Change ">" to ">=". (closes #9903) 文件: src/getchar.c, src/testdir/test_termcodes.vim Patch 8.2.4589 问题: Cannot index the g: dictionary. 解决方案: Recognize using "g:[key]". (closes #9969) 文件: src/ex_docmd.c, src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim Patch 8.2.4590 问题: Vim9: range type check has wrong offset. 解决方案: Adjust offset for CHECKTYPE. Remove other type check. 文件: src/vim9compile.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4591 问题: Cursor line not updated when a callback moves the cursor. 解决方案: Check if the cursor moved. (closes #9970) 文件: src/main.c, src/drawscreen.c, src/proto/drawscreen.pro, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_callback_1.dump Patch 8.2.4592 问题: Search continues after giving E1204. 解决方案: Return failure after giving E1204. (closes #9972) 文件: src/regexp_nfa.c Patch 8.2.4593 问题: Unnecessary call to redraw_later(). 解决方案: Remove the call to redraw_later() in op_yank(). (closes #9971) 文件: src/register.c Patch 8.2.4594 问题: Need to write script to a file to be able to source them. 解决方案: Make ":source" use lines from the current buffer. (Yegappan Lakshmanan et al., closes #9967) 文件: runtime/doc/repeat.txt, runtime/doc/todo.txt, src/alloc.c, src/digraph.c, src/eval.c, src/ex_cmds.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/testdir/test_source.vim Patch 8.2.4595 问题: X11: using --remote-wait may keep the CPU busy. 解决方案: Set the timeout for select() on every call. (Jacopo Secchiero, closes #9973) 文件: src/if_xcmdsrv.c Patch 8.2.4596 问题: Installing tutor binary may fail. 解决方案: Fix the dependency. (Sergei Trofimovich, closes #9978) 文件: src/Makefile Patch 8.2.4597 问题: LuaV_debug() not covered by tests. 解决方案: Add a test. (Dominique Pellé, closes #9980) 文件: src/testdir/test_lua.vim Patch 8.2.4598 问题: Profile completion test sometimes fails. 解决方案: Delete the .res file before running tests. 文件: src/testdir/runtest.vim Patch 8.2.4599 问题: GTK: get assertion errors when scrolling a split window. 解决方案: Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982) 文件: src/gui_gtk.c Patch 8.2.4600 问题: Vim9: not enough test coverage for executing :def function. 解决方案: Add a few more tests. Fix inconsistencies. 文件: src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4601 问题: Vim9: not enough test coverage for executing :def function. 解决方案: Add a few more tests. 文件: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4602 问题: Vim9: not enough test coverage for executing :def function. 解决方案: Add a few more tests. Fix uncovered problem. Remove dead code. 文件: src/vim9execute.c, src/vim9.h, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4603 问题: Sourcing buffer lines is too complicated. 解决方案: Simplify the code. Make it possible to source Vim9 script lines. (Yegappan Lakshmanan, closes #9974) 文件: runtime/doc/repeat.txt, src/ex_docmd.c, src/proto/scriptfile.pro, src/scriptfile.c, src/structs.h, src/testdir/test_source.vim Patch 8.2.4604 问题: Error for redefining a script item may be confusing. 解决方案: Put quotes around the name. 文件: src/errors.h Patch 8.2.4605 问题: Error for arguments of remote_expr() even when the +clientserver feature is not included. 解决方案: Move #ifdef. 文件: src/clientserver.c Patch 8.2.4606 (after 8.2.4605) 问题: Test fails because of changed error message. 解决方案: Update the expected error message 文件: src/testdir/test_vim9_import.vim Patch 8.2.4607 问题: Sourcing buffer lines may lead to errors for conflicts. 解决方案: Add the ++clear argument. (Yegappan Lakshmanan, closes #9991) 文件: runtime/doc/repeat.txt, src/scriptfile.c, src/vim9script.c, src/proto/vim9script.pro, src/testdir/test_source.vim Patch 8.2.4608 问题: getcompletion() does not work properly when 'wildoptions' contains "fuzzy". 解决方案: Do not use addstar(). (Yegappan Lakshmanan, closes #9992, closes #9986) 文件: runtime/doc/builtin.txt, src/cmdexpand.c, src/testdir/test_cmdline.vim Patch 8.2.4609 问题: :unhide does not check for failing to close a window. 解决方案: When closing a window fails continue with the next one. Do not try closing the autocmd window. (closes #9984) 文件: src/buffer.c, src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim Patch 8.2.4610 问题: Some conditions are always true. 解决方案: Remove the useless conditions. (closes #9993) 文件: src/clientserver.c, src/drawline.c, src/drawscreen.c, src/ex_cmds.c, src/fileio.c, src/message.c, src/misc2.c, src/ops.c, src/sign.c, src/spell.c, src/vim9cmds.c, src/window.c Patch 8.2.4611 问题: Typos in tests; one lua line not covered by test. 解决方案: Fix typos. Add test case. (Dominique Pellé, closes #9994) 文件: src/testdir/test_breakindent.vim, src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim, src/testdir/test_digraph.vim, src/testdir/test_gui.vim, src/testdir/test_lua.vim, src/testdir/test_regexp_latin.vim, src/testdir/test_signals.vim, src/testdir/test_spell.vim, src/testdir/test_statusline.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim Patch 8.2.4612 问题: Vim9: cannot use a recursive call in a nested function. (Sergey Vlasov) 解决方案: Define the funcref before compiling the function. (closes #9989) 文件: src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9expr.c, src/testdir/test_vim9_func.vim Patch 8.2.4613 问题: Return type of swapfile_unchanged() is wrong. 解决方案: Use "int". (closes #10000 Yeah!) 文件: src/memline.c Patch 8.2.4614 问题: Redrawing too much when 'cursorline' is set and jumping around. 解决方案: Rely on win_update() to redraw the current and previous cursor line, do not mark lines as modified. (closes #9996) 文件: src/drawline.c, src/drawscreen.c, src/move.c, src/proto/move.pro, src/option.c Patch 8.2.4615 问题: Mapping with escaped bar does not work in :def function. (Sergey Vlasov) 解决方案: Do not remove the backslash. (closes #10002) 文件: src/ex_docmd.c, src/proto/ex_docmd.pro, src/syntax.c, src/vim9cmds.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4616 问题: Vim9: Declarations in a {} block of a user command do not use Vim9 rules if defined in a legacy script. (Yegappan Lakshmanan) 解决方案: Pretend the script is Vim9 script. 文件: src/usercmd.c, src/testdir/test_usercommands.vim Patch 8.2.4617 问题: No completion for :scriptnames. 解决方案: Implement :scriptnames completion. (Yegappan Lakshmanan, closes #10005) 文件: runtime/doc/builtin.txt, src/cmdexpand.c, src/ex_cmds.h, src/scriptfile.c, src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim, src/testdir/test_quickfix.vim Patch 8.2.4618 问题: Command line completion does not recognize single letter commands. 解决方案: Use the condition from find_ex_command(). 文件: src/ex_docmd.c Patch 8.2.4619 问题: Mapping is cancelled when mouse moves and popup is visible. 解决方案: Only generate mouse moved events when a popup may use them. (closes #10004) 文件: src/gui.c, src/globals.h, src/popupwin.c Patch 8.2.4620 (after 8.2.4618) 问题: Two letter substitute commands don't work. (Yegappan Lakshmanan) 解决方案: Invert condition. 文件: src/ex_docmd.c Patch 8.2.4621 问题: Crash when using the tabline right-click menu. 解决方案: Use XtPointer for XmNuserData. (closes #10009) 文件: src/gui_motif.c Patch 8.2.4622 问题: Vim9: Crash with :execute and :finish. (Sergey Vlasov) 解决方案: Check for NULL. (closes #10011) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4623 问题: Coverity warns for using uninitialized field. 解决方案: Initialize the field to zero. 文件: src/ex_docmd.c Patch 8.2.4624 问题: Old Coverity warning for resource leak. 解决方案: Close the file if memory allocation fails. 文件: src/diff.c Patch 8.2.4625 问题: Old Coverity warning for resource leak. 解决方案: Call FreeWild() if expanding matches did not fail. 文件: src/help.c Patch 8.2.4626 问题: Visual area not fully updated when removing sign in Visual mode while scrolling. 解决方案: Adjust check for topline. (closes #10017) 文件: src/drawscreen.c, src/testdir/test_display.vim, src/testdir/dumps/Test_display_scroll_update_visual.dump Patch 8.2.4627 问题: flatten() does not use maxdepth correctly. 解决方案: Use a recursive implementation. (closes #10020) 文件: src/list.c, src/testdir/test_flatten.vim Patch 8.2.4628 问题: Not enough testing for 2/3 letter substitute commands. 解决方案: Add more tests. (Yegappan Lakshmanan, closes #10019) 文件: src/testdir/test_cmdline.vim, src/testdir/test_substitute.vim Patch 8.2.4629 问题: flattennew() makes a deep copy unnecessarily. 解决方案: Use a shallow copy. (issue #10012) 文件: src/list.c Patch 8.2.4630 问题: 'cursorline' not always updated with 'cursorlineopt' is "screenline". 解决方案: Call check_redraw_cursorline() more often. (closes #10013) 文件: src/normal.c, src/edit.c, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_cursorline_screenline_1.dump, src/testdir/dumps/Test_cursorline_screenline_2.dump Patch 8.2.4631 问题: Crash when switching window in BufWipeout autocommand. 解决方案: Put any buffer in the window to avoid it being NULL. (closes #10024) 文件: src/window.c, src/buffer.c, src/testdir/test_autocmd.vim Patch 8.2.4632 问题: Using freed memory in flatten(). 解决方案: Clear typval after recursing into list. 文件: src/list.c Patch 8.2.4633 问题: Visual range does not work before command modifiers. 解决方案: Move Visual range to after command modifiers. 文件: src/ex_docmd.c, src/testdir/test_source.vim Patch 8.2.4634 问题: Vim9: cannot initialize a variable to null_list. 解决方案: Give negative count to NEWLIST. (closes #10027) Also fix inconsistencies in comparing with null values. 文件: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9.h, src/vim9compile.c, src/vim9expr.c, src/vim9execute.c, src/evalvars.c, src/typval.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4635 (after 8.2.4634) 问题: Tests using null list or dict fail. 解决方案: Only use the new rules for Vim9 script. 文件: src/evalvars.c Patch 8.2.4636 (after 8.2.4633) 问题: Not using Visual range. 解决方案: Put the command pointer back to the range. 文件: src/ex_docmd.c Patch 8.2.4637 问题: Warning for using uninitialized variable. (Tony Mechelynck) 解决方案: Initialize it. 文件: src/ex_docmd.c Patch 8.2.4638 问题: Superfluous check if a redraw is needed for 'cursorline'. 解决方案: Remove check_redraw_cursorline(). (closes #10030, closes #10029) 文件: src/drawscreen.c, src/proto/drawscreen.pro, src/edit.c, src/main.c, src/normal.c, src/move.c, src/testdir/dumps/Test_cursorcolumn_callback_1.dump, src/testdir/dumps/Test_relativenumber_callback_1.dump, src/testdir/test_highlight.vim, src/testdir/test_number.vim Patch 8.2.4639 问题: Not sufficient parenthesis in preprocessor macros. 解决方案: Add more parenthesis. (closes #10031) 文件: src/globals.h, src/gui.h, src/if_py_both.h, src/macros.h, src/option.h, src/regexp.h, src/spell.h, src/structs.h, src/vim.h, src/vim9.h Patch 8.2.4640 问题: Some boolean options use "long" instead of "int". 解决方案: Adjust the type. (James McCoy, closes #10033) 文件: src/option.h Patch 8.2.4641 问题: May mark the wrong window for redrawing. 解决方案: Use redraw_win_later(). (closes #10032) 文件: src/move.c Patch 8.2.4642 问题: Vim9: in :def function script var cannot be null. 解决方案: Only initialize a script variable when not set to a null value. (closes #10034) 文件: src/vim9execute.c, src/vim9type.c, src/globals.h, src/evalvars.c, src/vim.h, src/vim9script.c, src/testdir/test_vim9_expr.vim Patch 8.2.4643 问题: Vim9: variable may be locked unintentionally. 解决方案: Clear "v_lock". (closes #10036) 文件: src/vim9execute.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4644 问题: Redrawing too often when 'relativenumber' is set. 解决方案: Only redraw when the cursor line changed. (Lewis Russell, closes #10040) 文件: src/change.c, src/drawscreen.c, src/structs.h Patch 8.2.4645 问题: 'shortmess' changed when session does not store options. 解决方案: Save and restore 'shortmess' if needed. (James Cherti, closes #10037) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4646 问题: Using buffer line after it has been freed in old regexp engine. 解决方案: After getting mark get the line again. 文件: src/regexp_bt.c, src/testdir/test_regexp_latin.vim Patch 8.2.4647 问题: "source" can read past end of copied line. 解决方案: Add a terminating NUL. 文件: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.4648 问题: Handling LSP messages is a bit slow. 解决方案: Included support for LSP messages. (Yegappan Lakshmanan, closes #10025) 文件: runtime/doc/channel.txt, src/channel.c, src/job.c, src/json.c, src/proto/json.pro, src/structs.h, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4649 问题: Various formatting problems. 解决方案: Improve the code formatting. 文件: src/mark.c, src/quickfix.c, src/regexp_nfa.c, src/register.c, src/testdir/test_filechanged.vim, src/gui_athena.c, src/gui_motif.c, src/os_unix.c Patch 8.2.4650 问题: "import autoload" only works with using 'runtimepath'. 解决方案: Also support a relative and absolute file name. 文件: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4651 (after 8.2.4650) 问题: Test fails because path differs. 解决方案: Only compare the tail of the path. 文件: src/testdir/test_vim9_disassemble.vim Patch 8.2.4652 (after 8.2.4650) 问题: Leaking memory if assignment fails. 解决方案: Clear assigned value on failure. 文件: src/vim9execute.c Patch 8.2.4653 问题: "import autoload" does not check the file name. 解决方案: Give an error if the file is not readable. (closes #10049) 文件: src/filepath.c, src/proto/filepath.pro, src/errors.h, src/ex_cmds.c, src/ex_docmd.c, src/spellfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4654 (after 8.2.4653) 问题: Missing changes for import check. 解决方案: Add missing changes. 文件: src/vim9script.c Patch 8.2.4655 问题: Command line completion popup menu positioned wrong when using a terminal window. 解决方案: Position the popup menu differently when editing the command line. (Yegappan Lakshmanan, closes #10050, closes #10035) 文件: src/popupmenu.c, src/testdir/test_cmdline.vim, src/testdir/test_terminal.vim, src/testdir/dumps/Test_wildmenu_pum_term_01.dump Patch 8.2.4656 问题: Vim9: can't use items from "import autoload" with autoload directory name. 解决方案: Let sn_autoload_prefix overrule sn_import_autoload. (closes #10054) 文件: src/structs.h, src/vim9instr.c, src/vim9expr.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4657 问题: Errors for functions are sometimes hard to read. 解决方案: Use printable_func_name() in more places. 文件: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, src/vim9expr.c, src/eval.c, src/vim9instr.c, src/vim9type.c, src/testdir/test_vim9_expr.vim Patch 8.2.4658 问题: Org-mode files are not recognized. 解决方案: Add patterns to recognize "org" files. (closes #10046) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4659 问题: Invalid memory access when using printable function name. 解决方案: Adjust copied name length. 文件: src/userfunc.c Patch 8.2.4660 问题: Cursorcolumn is sometimes not correct. 解决方案: Recompute the cursor column when entering Insert mode and the cursor is on a character wider than a screen cell. (closes #10057) 文件: src/edit.c, src/testdir/test_highlight.vim, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump Patch 8.2.4661 问题: Coverity warning for using uninitialized variable. 解决方案: Initialize variable to NULL. 文件: src/vim9expr.c Patch 8.2.4662 问题: No error for using out of range list index. 解决方案: Check list index at script level like in compiled function. (closes #10051) 文件: src/vim.h, src/evalvars.c, src/list.c, src/proto/list.pro, src/eval.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim Patch 8.2.4663 问题: Occasional crash when running the GUI tests. 解决方案: Check that the line index is not too high. (closes #8681) 文件: src/screen.c Patch 8.2.4664 问题: Elvish files are not recognized. 解决方案: Recognize .elv files. (Bruno Roque, closes #10058) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4665 问题: Popup with "minwidth" and scrollbar not updated properly. 解决方案: Adjust the computation if the window width. (closes #10061) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_previewpopup_4.dump, src/testdir/dumps/Test_popupwin_previewpopup_5.dump, src/testdir/dumps/Test_popupwin_previewpopup_7.dump, src/testdir/dumps/Test_popupwin_previewpopup_8.dump, src/testdir/dumps/Test_popupwin_previewpopup_9.dump, src/testdir/dumps/Test_popupwin_previewpopup_10.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_1.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_2.dump, src/testdir/dumps/Test_popupwin_drag_minwidth_3.dump Patch 8.2.4666 问题: Vim9: assignment not recognized in skipped block. 解决方案: When skipping assume identifier exists. (closes #10059) 文件: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim Patch 8.2.4667 问题: expandcmd() fails on an error. 解决方案: On failure return the command unmodified. (Yegappan Lakshmanan, closes #10063) 文件: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_expand.vim Patch 8.2.4668 问题: Buffer allocation failures insufficiently tested. 解决方案: Add tests for memory allocation failures. (Yegappan Lakshmanan, closes #10064) 文件: src/alloc.h, src/buffer.c, src/popupwin.c, src/window.c, src/testdir/test_buffer.vim, src/testdir/test_swap.vim Patch 8.2.4669 问题: In compiled code len('string') is not inlined. 解决方案: Compute the length at compile time if possible. (closes #10065) 文件: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9expr.c, src/testdir/test_vim9_disassemble.vim Patch 8.2.4670 问题: Memory allocation failures for new tab page not tested. 解决方案: Add tests with failing memory allocation. (Yegappan Lakshmanan, closes #10067) 文件: src/alloc.h, src/blob.c, src/buffer.c, src/window.c, src/testdir/test_blob.vim, src/testdir/test_buffer.vim, src/testdir/test_tabpage.vim, src/testdir/test_window_cmd.vim Patch 8.2.4671 问题: 'wildignorecase' is sometimes not used for glob(). 解决方案: Also use 'wildignorecase' when there are no wildcards. (closes #10066, closes #8350) 文件: src/filepath.c, src/testdir/test_functions.vim Patch 8.2.4672 问题: Using :normal with Ex mode may make :substitute hang. 解决方案: When getting an empty line behave like 'q' was typed. (closes #10070) 文件: src/ex_cmds.c, src/testdir/test_normal.vim Patch 8.2.4673 问题: Redrawing a vertically split window is slow when using CTRL-F and CTRL-B. 解决方案: When deciding on USE_REDRAW bail out if scrolling more than three lines. (issue #8002) 文件: src/screen.c Patch 8.2.4674 问题: Cannot force getting MouseMove events. 解决方案: Add the 'mousemoveevent' option with implementation for the GUI. (Ernie Rael, closes #10044) 文件: runtime/doc/gui.txt, runtime/doc/options.txt, runtime/doc/testing.txt, src/gui.c, src/option.h, src/optiondefs.h, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4675 问题: No error for missing expression after :elseif. (Ernie Rael) 解决方案: Check for missing expression. (closes #10068) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4676 (after 8.2.4675) 问题: Test fails with different error. 解决方案: Add argument to :elseif. 文件: src/testdir/test_vimscript.vim Patch 8.2.4677 问题: The Athena GUI support is outdated. 解决方案: Remove the Athena GUI code. 文件: Filelist, src/Makefile, src/proto.h, src/clipboard.c, src/gui_athena.c, src/proto/gui_athena.pro, src/gui_at_sb.c, src/gui_at_sb.h, src/gui_at_fs.c, src/gui_motif.c, src/evalfunc.c, src/gui.c, src/gui_beval.c, src/gui_x11.c, src/if_mzsch.c, src/main.c, src/menu.c, src/mouse.c, src/version.c, src/feature.h, src/gui.h, src/structs.h, src/vim.h, src/testdir/gui_init.vim, src/testdir/setup_gui.vim, src/testdir/test_clientserver.vim, src/testdir/test_edit.vim, src/testdir/test_gui.vim, src/testdir/test_highlight.vim, src/testdir/test_quotestar.vim, src/testdir/test_startup.vim, runtime/doc/gui.txt, runtime/doc/gui_x11.txt Patch 8.2.4678 问题: Vim9: not all code is tested. 解决方案: Add a few more tests. 文件: src/vim9execute.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_cmd.vim Patch 8.2.4679 问题: Cannot have expandcmd() give an error message for mistakes. 解决方案: Add an optional argument to give errors. Fix memory leak when expanding files fails. (Yegappan Lakshmanan, closes #10071) 文件: runtime/doc/builtin.txt, src/evalfunc.c, src/filepath.c, src/testdir/test_expand.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4680 问题: Build failure without +postscript. 解决方案: Use another error message. 文件: src/vim9execute.c, src/testdir/test_vim9_import.vim Patch 8.2.4681 问题: Build fails with a combination of features. 解决方案: Remove #ifdef for alloc_clear_id(). (John Marriott) 文件: src/alloc.c Patch 8.2.4682 问题: Vim9: can use :unlockvar for const variable. (Ernie Rael) 解决方案: Check whether the variable is a const. 文件: src/ex_docmd.c, src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, src/eval.c, src/userfunc.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4683 问题: Verbose check with dict_find() to see if a key is present. 解决方案: Add dict_has_key(). (Yegappan Lakshmanan, closes #10074) 文件: src/channel.c, src/dict.c, src/evalwindow.c, src/filepath.c, src/highlight.c, src/json.c, src/match.c, src/popupwin.c, src/proto/dict.pro, src/quickfix.c, src/search.c, src/sign.c, src/tag.c, src/terminal.c, src/testing.c, src/textprop.c, src/time.c Patch 8.2.4684 问题: Cannot open a channel on a Unix domain socket. 解决方案: Add Unix domain socket support. (closes #10062) 文件: runtime/doc/channel.txt, src/channel.c, src/testdir/check.vim, src/testdir/shared.vim, src/testdir/test_channel.py, src/testdir/test_channel.vim, src/testdir/test_channel_unix.py, src/testdir/test_cmdline.vim Patch 8.2.4685 问题: When a swap file is found for a popup there is no dialog and the buffer is loaded anyway. 解决方案: Silently load the buffer read-only. (closes #10073) 文件: runtime/doc/popup.txt, src/memline.c, src/popupwin.c, src/vim.h, src/buffer.c, src/testdir/test_popupwin.vim Patch 8.2.4686 问题: Configure doesn't find the Motif library with Cygwin. 解决方案: Check for libXm.dll.a. (Kelvin Lee, closes #10077) 文件: src/configure.ac, src/auto/configure Patch 8.2.4687 问题: "vimgrep /\%v/ *" may cause a crash. 解决方案: When compiling the pattern with the old engine fails, restore the regprog of the new engine instead of leaving it NULL. (closes #10079) 文件: src/regexp.c Patch 8.2.4688 问题: New regexp engine does not give an error for "\%v". 解决方案: Check for a value argument. (issue #10079) 文件: src/regexp_nfa.c, src/errors.h, src/regexp_bt.c, src/testdir/test_regexp_latin.vim Patch 8.2.4689 问题: Using <Cmd> in a mapping does not work for mouse keys in Insert mode. (Sergey Vlasov) 解决方案: When reading the <Cmd> argument do not use the stuff buffer. (closes #10080) 文件: src/getchar.c Patch 8.2.4690 问题: Channel tests fail on MS-Windows. 解决方案: Check if the AF_UNIX attribute exists. (closes #10083) 文件: src/testdir/test_channel.py, src/testdir/test_channel_unix.py Patch 8.2.4691 (after 8.2.4689) 问题: Solution for <Cmd> in a mapping causes trouble. 解决方案: Use another solution: put back CTRL-O after reading the <Cmd> sequence. 文件: src/getchar.c Patch 8.2.4692 问题: No test for what 8.2.4691 fixes. 解决方案: Add a test. Use a more generic solution. (closes #10090) 文件: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim Patch 8.2.4693 (after 8.2.4688) 问题: new regexp does not accept pattern "\%>0v". 解决方案: Do accept digit zero. 文件: src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.4694 问题: Avoidance of #elif causes more preproc nesting. 解决方案: Use #elif where it is useful. (Ozaki Kiichi, closes #10081) 文件: src/option.c, src/optiondefs.h, src/optionstr.c, src/version.c Patch 8.2.4695 问题: JSON encoding could be faster. 解决方案: Optimize encoding JSON strings. (closes #10086) 文件: src/json.c, src/testdir/test_json.vim Patch 8.2.4696 问题: delete() with "rf" argument does not report a failure. 解决方案: Return -1 if the directory could not be removed. (closes #10078) 文件: src/fileio.c, src/testdir/test_functions.vim Patch 8.2.4697 问题: Vim9: crash when adding a duplicate key to a dictionary. 解决方案: Clear the stack item when it has been moved into the dictionary. (closes #10087) 文件: src/vim9execute.c, src/testdir/test_vim9_expr.vim Patch 8.2.4698 问题: Vim9: script variable has no flag that it was set. 解决方案: Add a flag that it was set, to avoid giving it a value when used. (closes #10088) 文件: src/structs.h, src/vim9script.c, src/vim9execute.c, src/evalvars.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4699 问题: Hard to reproduce hang when reading from a channel. 解决方案: Check for readahead before starting to wait. (closes #10093, closes #7781, closes #6364) 文件: src/channel.c Patch 8.2.4700 问题: Buffer remains active if a WinClosed event throws an exception. 解决方案: Ignore aborting() when closing the buffer. (closes #10097) 文件: src/window.c, src/testdir/test_autocmd.vim Patch 8.2.4701 问题: Kuka Robot Language files not recognized. 解决方案: Recognize *.src and *.dat files. (Patrick Meiser-Knosowski, closes #10096) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim, runtime/autoload/dist/ft.vim Patch 8.2.4702 问题: C++ scope labels are hard-coded. 解决方案: Add 'cinscopedecls' to define the labels. (Rom Praschan, closes #10109) 文件: runtime/doc/indent.txt, runtime/doc/options.txt, runtime/doc/quickref.txt, runtime/optwin.vim, src/buffer.c, src/cindent.c, src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, src/structs.h, src/testdir/test_cindent.vim Patch 8.2.4703 (after 8.2.4702) 问题: Memory leak in handling 'cinscopedecls'. 解决方案: Free the memory before returning. 文件: src/cindent.c Patch 8.2.4704 问题: Using "else" after return or break increases indent. 解决方案: Remove "else" and reduce indent. (Goc Dundar, closes #10099) 文件: src/fileio.c, src/memline.c, src/option.c, src/syntax.c Patch 8.2.4705 问题: reg_executing may not be cleared. 解决方案: Reset reg_executing later. (closes #10111, closes #10110) 文件: src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h, src/testdir/test_registers.vim Patch 8.2.4706 问题: Buffer remains active if a WinClosed event throws an exception when there are multiple tabpages. 解决方案: Ignore aborting() when closing the buffer. (closes #10101) 文件: src/window.c, src/testdir/test_autocmd.vim Patch 8.2.4707 问题: Redrawing could be a bit more efficient. 解决方案: Optimize redrawing. (closes #10105) 文件: src/change.c, src/edit.c, src/testdir/test_highlight.vim, src/testdir/dumps/Test_cursorcolumn_insert_on_tab_3.dump Patch 8.2.4708 问题: PHP test files are not recognized. 解决方案: Add the *.phpt pattern. (Julien Voisin, closes #10112) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4709 问题: After :redraw the statusline highlight might be used. 解决方案: Clear the screen attribute after redrawing the screen. (closes #10108) 文件: src/ex_docmd.c Patch 8.2.4710 问题: Smart indenting does not work after completion. 解决方案: Set "can_si". (Christian Brabandt, closes #10113, closes #558) 文件: src/edit.c, src/testdir/test_ins_complete.vim Patch 8.2.4711 问题: When 'insermode' is set :edit from <Cmd> mapping misbehaves. 解决方案: Don't set "need_start_insertmode" when already in Insert mode. (closes #10116) 文件: src/ex_cmds.c, src/testdir/test_edit.vim Patch 8.2.4712 问题: Only get profiling information after exiting. 解决方案: Add "profile dump" and "profile stop". (Marco Hinz, Yegappan Lakshmanan, closes #10107) 文件: runtime/doc/repeat.txt, src/profiler.c, src/testdir/test_profile.vim Patch 8.2.4713 问题: Plugins cannot track text scrolling. 解决方案: Add the WinScrolled event. (closes #10102) 文件: runtime/doc/autocmd.txt, src/autocmd.c, src/proto/autocmd.pro, src/edit.c, src/gui.c, src/main.c, src/structs.h, src/vim.h, src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim Patch 8.2.4714 问题: Using g:filetype_dat and g:filetype_src not tested. 解决方案: Add a test. (Patrick Meiser-Knosowski, closes #10117) 文件: src/testdir/test_filetype.vim Patch 8.2.4715 问题: Vagrantfile not recognized. 解决方案: Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4716 问题: Memory allocation failure not tested when defining a function. 解决方案: Add a test. (Yegappan Lakshmanan, closes #10127) 文件: src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c, src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim Patch 8.2.4717 问题: For TextYankPost v:event does not contain information about the operation being inclusive or not. 解决方案: Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan, closes #10125) 文件: runtime/doc/autocmd.txt, src/register.c, src/testdir/test_autocmd.vim Patch 8.2.4718 问题: @@@ in the last line sometimes drawn in the wrong place. 解决方案: Make sure the column is valid. (closes #10130) 文件: src/drawscreen.c, src/screen.c, src/testdir/test_display.vim src/testdir/dumps/Test_display_lastline_1.dump, src/testdir/dumps/Test_display_lastline_2.dump, src/testdir/dumps/Test_display_lastline_3.dump, src/testdir/dumps/Test_display_lastline_4.dump Patch 8.2.4719 问题: ">" marker sometimes not displayed in the jumplist. 解决方案: If the buffer no longer exists show "-invalid-". (Christian Brabandt, closes #10131, closes #10100) 文件: runtime/doc/motion.txt, src/mark.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_jumplist.vim, src/testdir/test_jumps.vim Patch 8.2.4720 问题: ABB Rapid files are not recognized properly. 解决方案: Add checks for ABB Rapid files. (Patrick Meiser-Knosowski, closes #10104) 文件: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4721 问题: Cooklang files are not recognized. 解决方案: recognize *.cook files. (Goc Dundar, closes #10120) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4722 问题: When a recording is ended with a mapped key that key is also recorded. 解决方案: Remember the previous last_recorded_len. (closes #10122) 文件: src/getchar.c, src/testdir/test_registers.vim Patch 8.2.4723 问题: The ModeChanged autocmd event is inefficient. 解决方案: Avoid allocating memory. (closes #10134) Rename trigger_modechanged() to may_trigger_modechanged(). 文件: src/misc1.c, src/proto/misc1.pro, src/edit.c, src/ex_docmd.c, src/ex_getln.c, src/insexpand.c, src/normal.c, src/terminal.c, src/autocmd.c Patch 8.2.4724 问题: Current instance of last search pattern not easily spotted. 解决方案: Add CurSearch highlighting. (closes #10133) 文件: runtime/doc/options.txt, runtime/doc/syntax.txt, src/highlight.c, src/match.c, src/normal.c, src/optiondefs.h, src/structs.h, src/vim.h, src/normal.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_3.dump Patch 8.2.4725 (after 8.2.4724) 问题: Unused variable in tiny build. 解决方案: Add #ifdef. 文件: src/normal.c Patch 8.2.4726 问题: Cannot use expand() to get the script name. 解决方案: Support expand('<script>'). (closes #10121) 文件: runtime/doc/cmdline.txt, src/errors.h, src/ex_docmd.c, src/scriptfile.c, src/vim.h, src/testdir/test_expand.vim Patch 8.2.4727 问题: Unused code. 解决方案: Remove code and add #ifdefs. (Dominique Pellé, closes #10136) 文件: runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/vim9.txt, src/errors.h, src/option.c, src/search.c, src/proto/search.pro Patch 8.2.4728 问题: No test that v:event cannot be modified. 解决方案: Add a test. (closes #10139) 文件: src/testdir/test_autocmd.vim Patch 8.2.4729 问题: HEEx and Surface templates do not need a separate filetype. 解决方案: Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4730 问题: MS-Windows GUI: cannot use CTRL-/. 解决方案: Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141) 文件: src/gui_w32.c Patch 8.2.4731 问题: The changelist index is not remembered per buffer. 解决方案: Keep the changelist index per window and buffer. (closes #10135, closes #2173) 文件: src/buffer.c, src/evalfunc.c, src/structs.h, src/testdir/test_changelist.vim Patch 8.2.4732 问题: Duplicate code to free fuzzy matches. 解决方案: Bring back fuzmatch_str_free(). 文件: src/search.c, src/proto/search.pro, src/cmdexpand.c Patch 8.2.4733 (after 8.2.4729) 问题: HEEx and Surface do need a separate filetype. 解决方案: Revert 8.2.4729. (closes #10147) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4734 问题: getcharpos() may change a mark position. 解决方案: Copy the mark position. (closes #10148) 文件: src/eval.c, src/testdir/test_cursor_func.vim Patch 8.2.4735 问题: Quickfix tests can be a bit hard to read. 解决方案: Use heredoc instead of strings and line continuation. (Yegappan Lakshmanan, closes #10145) 文件: src/testdir/test_quickfix.vim Patch 8.2.4736 问题: Build problem for Cygwin with Motif. 解决方案: Undefine ControlMask. (Kelvin Lee, closes #10152) 文件: src/mbyte.c Patch 8.2.4737 问题: // in JavaScript string recognized as comment. 解决方案: Only check for linecomment if 'cindent' is set. (closes #10151) 文件: src/change.c, src/testdir/test_textformat.vim Patch 8.2.4738 问题: Esc on commandline executes command instead of abandoning it. 解决方案: Save and restore KeyTyped when removing the popup menu. (closes #10154) 文件: src/cmdexpand.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_1.dump, src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_2.dump Patch 8.2.4739 问题: Accessing freed memory after WinScrolled autocmd event. 解决方案: Check the window pointer is still valid. (closes #10156) Remove the argument from may_trigger_winscrolled(). 文件: src/window.c, src/proto/window.pro, src/edit.c, src/gui.c, src/main.c, src/testdir/test_autocmd.vim Patch 8.2.4740 问题: When expand() fails there is no error message. 解决方案: When 'verbose' is set give an error message. 文件: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_expand.vim Patch 8.2.4741 (after 8.2.4740) 问题: Startup test fails. 解决方案: Avoid an error for verbose expansion. Fix that the "0verbose" command modifier doesn't work. 文件: runtime/syntax/syntax.vim, runtime/syntax/synload.vim, src/structs.h, src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.4742 问题: There is no way to start logging very early in startup. 解决方案: Add the --log argument. Include the date in the start message in the log file. Avoid a duplicate message when forking. Log an executed shell command. 文件: runtime/doc/starting.txt, runtime/doc/channel.txt, src/main.c, src/channel.c, src/os_unix.c, src/os_win32.c, src/testdir/test_startup.vim Patch 8.2.4743 问题: Clang 14 is available on CI. 解决方案: Switch from clang 13 to 14. (closes #10157) 文件: .github/workflows/ci.yml Patch 8.2.4744 问题: A terminal window can't use the bell. 解决方案: Add bell support for the terminal window. (closes #10178) 文件: runtime/doc/options.txt, src/gui_w32.c, src/option.h, src/optionstr.c, src/terminal.c Patch 8.2.4745 (after 8.2.4744) 问题: Using wrong flag for using bell in the terminal. 解决方案: Change to use BO_TERM. 文件: src/terminal.c, src/misc1.c Patch 8.2.4746 问题: Supercollider filetype not recognized. 解决方案: Match file extensions and check file contents to detect supercollider. (closes #10142) 文件: runtime/filetype.vim, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4747 问题: No filetype override for .sys files. 解决方案: Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181) 文件: runtime/doc/filetype.txt, runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4748 问题: Cannot use an imported function in a mapping. 解决方案: Recognize <SID>name.Func. 文件: runtime/doc/vim9.txt, src/term.c, src/vim9execute.c, src/proto/vim9execute.pro, src/scriptfile.c, src/testdir/test_vim9_import.vim Patch 8.2.4749 问题: <script> is not expanded in autocmd context. 解决方案: Add the context to the pattern struct. (closes #10144) Rename AutoPatCmd to AutoPatCmd_T. 文件: src/autocmd.c, src/proto/autocmd.pro, src/scriptfile.c, src/structs.h, src/testdir/test_expand.vim Patch 8.2.4750 问题: Small pieces of dead code. 解决方案: Remove the dead code. (Goc Dundar, closes #10190) Rename the qftf_cb struct member to avoid confusion. 文件: src/ex_cmds.c, src/misc1.c, src/optionstr.c, src/quickfix.c Patch 8.2.4751 (after 8.2.4748) 问题: Mapping <SID>name.Func does not work for script in autoload directory. 解决方案: Use the # form for a script in the autoload directory. (closes #10186) 文件: src/term.c, src/testdir/test_vim9_import.vim Patch 8.2.4752 问题: Wrong 'statusline' value can cause illegal memory access. 解决方案: Properly check the value. (closes #10192) 文件: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.4753 问题: Error from setting an option is silently ignored. 解决方案: Handle option value errors better. Fix uses of N_(). 文件: src/option.c, src/proto/option.pro, src/optionstr.c, src/channel.c, src/crypt.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c, src/help.c, src/highlight.c, src/if_tcl.c, src/main.c, src/memline.c, src/message_test.c, src/popupmenu.c, src/quickfix.c, src/scriptfile.c, src/spell.c, src/spellfile.c, src/term.c, src/undo.c, src/vim9script.c Patch 8.2.4754 问题: Still using cached values after unsetting some known environment variables. 解决方案: Take care of the side effects. (closes #10194) 文件: src/evalfunc.c, src/evalvars.c, src/misc1.c, src/proto/misc1.pro, src/vim9execute.c, src/optionstr.c, src/testdir/test_environ.vim Patch 8.2.4755 问题: Cannot use <SID>FuncRef in completion spec. 解决方案: Dereference a function name in another way. (closes #10197) 文件: src/eval.c, src/testdir/test_vim9_import.vim Patch 8.2.4756 (after 8.2.4754) 问题: Build error without the +eval feature. 解决方案: Adjust #ifdefs. 文件: src/misc1.c Patch 8.2.4757 问题: List of libraries to suppress lsan errors is outdated. 解决方案: Add another library. (closes #10201) 文件: src/testdir/lsan-suppress.txt Patch 8.2.4758 问题: When using an LSP channel want to get the message ID. 解决方案: Have ch_sendexpr() return the ID. (Yegappan Lakshmanan, closes #10202) 文件: runtime/doc/channel.txt, src/channel.c, src/evalfunc.c, src/testdir/test_channel.vim Patch 8.2.4759 问题: CurSearch highlight does not work for multi-line match. 解决方案: Check cursor position before adjusting columns. (closes #10133) 文件: src/structs.h, src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_3.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_4.dump, src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_5.dump Patch 8.2.4760 问题: Using matchfuzzy() on a long list can take a while. 解决方案: Add a limit to the number of matches. (Yasuhiro Matsumoto, closes #10189) 文件: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.4761 问题: Documentation for using LSP messages is incomplete. 解决方案: Update the documentation. (Yegappan Lakshmanan, closes #10206) 文件: runtime/doc/channel.txt Patch 8.2.4762 问题: Using freed memory when using synstack() and synID() in WinEnter. 解决方案: Check using the syntax window. (closes #10204) 文件: src/syntax.c, src/testdir/test_syntax.vim Patch 8.2.4763 问题: Using invalid pointer with "V:" in Ex mode. 解决方案: Correctly handle the command being changed to "+". 文件: src/ex_docmd.c, src/testdir/test_ex_mode.vim Patch 8.2.4764 问题: CI uses an older gcc version. 解决方案: Use GCC 11. (closes #10185) 文件: .github/workflows/ci.yml, src/testdir/lsan-suppress.txt Patch 8.2.4765 问题: Function matchfuzzy() sorts too many items. 解决方案: Only put matches in the array. (Yegappan Lakshmanan, closes #10208) 文件: src/search.c Patch 8.2.4766 问题: KRL files using "deffct" not recognized. 解决方案: Adjust the pattern used for matching. (Patrick Meiser-Knosowski, closes #10200) 文件: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim Patch 8.2.4767 问题: Openscad files are not recognized. 解决方案: Add a filetype pattern. (Niklas Adam, closes #10199) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4768 问题: CI: codecov upload sometimes does not work. 解决方案: Use action v3 instead of v2. (closes #10209) 文件: .github/workflows/ci.yml Patch 8.2.4769 问题: Build warning with UCRT. 解决方案: Adjust #ifdef for _wenviron. (John Marriott) 文件: src/evalfunc.c Patch 8.2.4770 问题: Cannot easily mix expression and heredoc. 解决方案: Support =expr in heredoc. (Yegappan Lakshmanan, closes #10138) 文件: runtime/doc/eval.txt, src/evalvars.c, src/userfunc.c, src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim Patch 8.2.4771 问题: Coverity warns for not checking return value. 解决方案: Check return value of rettv_dict_alloc(). 文件: src/channel.c Patch 8.2.4772 问题: Old Coverity warning for not checking ftell() return value. 解决方案: Check return value of fseek() and ftell(). 文件: src/misc1.c Patch 8.2.4773 问题: Build failure without the +eval feature. 解决方案: Use other error message. Avoid warnings. 文件: src/misc1.c, src/cindent.c, src/term.c Patch 8.2.4774 问题: Crash when using a number for lambda name. 解决方案: Check the type of the lambda reference. 文件: src/eval.c, src/errors.h, src/testdir/test_lambda.vim Patch 8.2.4775 问题: SpellBad highlighting does not work in Konsole. 解决方案: Do not keep t_8u defined for Konsole. Redraw when t_8u is reset. (closes #10177) 文件: src/term.c Patch 8.2.4776 问题: GTK: 'lines' and 'columns' may change during startup. 解决方案: Ignore stale GTK resize events. (Ernie Rael, closes #10179) 文件: src/gui_gtk_x11.c Patch 8.2.4777 (after 8.2.4775) 问题: Screendump tests fail because of a redraw. 解决方案: Do not output t_8u before receiving termresponse. Redraw only when t_8u is not reset and termresponse is received. 文件: src/term.c Patch 8.2.4778 问题: Pacman files use dosini filetype. 解决方案: Use conf instead. (Chaoren Lin, closes #10213) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4779 问题: lsan suppression is too version specific. 解决方案: Leave out the version number. (Christian Brabandt, closes #10214) 文件: src/testdir/lsan-suppress.txt Patch 8.2.4780 问题: Parsing an LSP message fails when it is split. 解决方案: Collapse the received data before parsing. (Yegappan Lakshmanan, closes #10215) 文件: runtime/doc/channel.txt, src/channel.c, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4781 问题: Maxima files are not recognized. 解决方案: Add patterns to detect Maxima files. (Doron Behar, closes #10211) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4782 问题: Accessing freed memory. 解决方案: Clear evalarg after checking for trailing characters. (issue #10218) 文件: src/userfunc.c, src/testdir/test_lambda.vim Patch 8.2.4783 问题: Coverity warns for leaking memory. 解决方案: Use another strategy freeing "theline". 文件: src/evalvars.c Patch 8.2.4784 问题: Lamba test with timer is flaky. 解决方案: Adjust sleep time on retry. 文件: src/testdir/test_lambda.vim Patch 8.2.4785 问题: Visual mode not stopped early enough if win_gotoid() goes to another buffer. (Sergey Vlasov) 解决方案: Stop Visual mode before jumping to another buffer. (closes #10217) 文件: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, src/testdir/dumps/Test_win_gotoid_1.dump, src/testdir/dumps/Test_win_gotoid_2.dump, src/testdir/dumps/Test_win_gotoid_3.dump Patch 8.2.4786 (after 8.2.4785) 问题: Test for win_gotoid() in Visual mode fails on Mac. 解决方案: Skip the test on MacOS. 文件: src/testdir/test_vim9_builtin.vim Patch 8.2.4787 问题: prop_find() does not find the right property. 解决方案: Fix the scan order. (closes #10220) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.4788 问题: Large payload for LSP message not tested. 解决方案: Add a test with a large LSP payload. (Yegappan Lakshmanan, closes #10223) 文件: src/channel.c, src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py Patch 8.2.4789 问题: The cursor may be in the in wrong place when using :redraw while editing the cmdline. 解决方案: When editing the command line let :redraw update the command line too. (closes #10210) 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_redraw_in_autocmd_1.dump, src/testdir/dumps/Test_redraw_in_autocmd_2.dump Patch 8.2.4790 问题: Lilypond filetype not recognized. 解决方案: Add patterns for lilypond. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4791 问题: Autocmd events triggered in different order when reusing an empty buffer. 解决方案: Call buff_freeall() earlier. (Charlie Groves, closes #10198) 文件: src/buffer.c, src/testdir/test_autocmd.vim Patch 8.2.4792 问题: Indent operator creates an undo entry for every line. 解决方案: Create one undo entry for all lines. (closes #10227) 文件: src/indent.c, src/testdir/test_indent.vim Patch 8.2.4793 问题: Recognizing Maxima filetype even though it might be another. 解决方案: Remove *.mc and *.dem patterns from Maxima files 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4794 问题: Compiler warning for not initialized variable. 解决方案: Initialize the variable. (John Marriott) 文件: src/indent.c Patch 8.2.4795 问题: 'cursorbind' scrolling depends on whether 'cursorline' is set. 解决方案: Always call validate_cursor(). (Christian Brabandt, closes #10230, closes #10014) 文件: src/move.c, src/testdir/README.txt, src/testdir/test_cursorline.vim, src/testdir/dumps/Test_hor_scroll_1.dump, src/testdir/dumps/Test_hor_scroll_2.dump, src/testdir/dumps/Test_hor_scroll_3.dump, src/testdir/dumps/Test_hor_scroll_4.dump Patch 8.2.4796 (after 8.2.4795) 问题: File left behind after running cursorline tests. 解决方案: Uncomment the line that deletes the file. 文件: src/testdir/test_cursorline.vim Patch 8.2.4797 问题: getwininfo() may get outdated values. 解决方案: Make sure w_botline is up-to-date. (closes #10226) 文件: src/evalwindow.c, src/testdir/test_bufwintabinfo.vim Patch 8.2.4798 问题: t_8u option was reset even when set by the user. 解决方案: Only reset t_8u when using the default value. (closes #10239) 文件: src/term.c Patch 8.2.4799 问题: Popup does not use correct topline. 解决方案: Also add one when firstline is negative. (closes #10229) 文件: src/popupwin.c, src/testdir/test_popupwin.vim Patch 8.2.4800 (after 8.2.4798) 问题: Missing test update for adjusted t_8u behavior. 解决方案: Update and extend the test. 文件: src/testdir/test_termcodes.vim Patch 8.2.4801 (after 8.2.4795) 问题: Fix for cursorbind fix not fully tested. 解决方案: Add another test case. (Christian Brabandt, closes #10240) 文件: src/testdir/test_cursorline.vim, src/testdir/dumps/Test_hor_scroll_5.dump Patch 8.2.4802 问题: Test is not cleaned up. 解决方案: Make test clean up after itself. Avoid NUL. (closes #10233) 文件: src/testdir/test_autocmd.vim Patch 8.2.4803 问题: WinScrolled not always triggered when scrolling with the mouse. 解决方案: Add calls to may_trigger_winscrolled(). (closes #10246) 文件: src/mouse.c, src/testdir/test_autocmd.vim Patch 8.2.4804 问题: Expression in heredoc doesn't work for compiled function. 解决方案: Implement compiling the heredoc expressions. (Yegappan Lakshmanan, closes #10232) 文件: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, src/ex_getln.c, src/vim9compile.c, src/proto/vim9compile.pro, src/testdir/test_vim9_assign.vim Patch 8.2.4805 问题: CurSearch used for all matches in current line. 解决方案: Don't use the non-zero line count. (closes #10247) 文件: src/match.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump, src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump Patch 8.2.4806 问题: A mapping using <LeftDrag> does not start Select mode. 解决方案: When checking for starting select mode with the mouse also do this when there is typeahead. (closes #10249) 文件: src/normal.c Patch 8.2.4807 问题: Processing key events in Win32 GUI is not ideal. 解决方案: Improve processing of key events. (closes #10155) 文件: src/gui_w32.c Patch 8.2.4808 问题: Unused item in engine struct. 解决方案: Remove "expr". Add comment with tags. 文件: src/regexp.h Patch 8.2.4809 问题: Various things not properly tested. 解决方案: Add various test cases. (Yegappan Lakshmanan, closes #10259) 文件: src/testdir/test_blob.vim, src/testdir/test_debugger.vim, src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim Patch 8.2.4810 (after 8.2.4808) 问题: Missing changes in one file. 解决方案: Also change the struct initializers. 文件: src/regexp.c Patch 8.2.4811 (after 8.2.4807) 问题: Win32 GUI: caps lock doesn't work. 解决方案: Handle VK_CAPITAL. (closes #10260, closes #10258) 文件: src/gui_w32.c Patch 8.2.4812 问题: Unused struct item. 解决方案: Remove "lines" match_T. Simplify the code. (closes #10256) 文件: src/match.c, src/structs.h Patch 8.2.4813 问题: Pasting text while indent folding may mess up folds. 解决方案: Adjust the way folds are split. (Brandon Simmons, closes #10254) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4814 问题: Possible to leave a popup window with win_gotoid(). 解决方案: Give an error when trying to leave a popup window with win_gotoid(). (closes #10253) 文件: src/evalwindow.c, src/testdir/test_terminal3.vim Patch 8.2.4815 (after 8.2.4776) 问题: Cannot build with older GTK version. 解决方案: Use gtk_window_get_size() instead of gdk_window_get_width() and gdk_window_get_height(). (Ernie Rael, closes #10257) 文件: src/gui_gtk_x11.c Patch 8.2.4816 问题: Still using older codecov app in some places of CI. 解决方案: Use v3.1.0. (closes #10209) 文件: .github/workflows/ci.yml Patch 8.2.4817 问题: Win32 GUI: modifiers are not always used. 解决方案: Handle more modifiers. (closes #10269) 文件: src/gui_w32.c Patch 8.2.4818 (after 8.2 4806) 问题: No test for what 8.2.4806 fixes. 解决方案: Add a test. (closes #10272) 文件: src/testdir/test_mapping.vim Patch 8.2.4819 问题: Unmapping simplified keys also deletes other mapping. 解决方案: Only unmap a mapping with m_simplified set. (closes #10270) 文件: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4820 问题: No simple programmatic way to find a specific mapping. 解决方案: Add getmappings(). (Ernie Rael, closes #10273) 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim Patch 8.2.4821 问题: Crash when imported autoload script was deleted. 解决方案: Initialize local variable. (closes #10274) Give a more meaningful error message. 文件: src/eval.c, src/vim9script.c, src/testdir/test_vim9_import.vim Patch 8.2.4822 问题: Setting ufunc to NULL twice. 解决方案: Set ufunc to NULL in find_exported(). (closes #19275) 文件: src/eval.c, src/vim9script.c Patch 8.2.4823 问题: Concatenating more than 2 strings in a :def function is inefficient. 解决方案: Add a count to the CONCAT instruction. (closes #10276) 文件: src/vim9.h, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, src/proto/vim9instr.pro, src/testdir/test_vim9_disassemble.vim Patch 8.2.4824 问题: Expression is evaluated multiple times. 解决方案: Evaluate expression once and store the result. (closes #10278) 文件: src/map.c Patch 8.2.4825 问题: Can only get a list of mappings. 解决方案: Add the optional {abbr} argument. (Ernie Rael, closes #10277) Rename to maplist(). Rename test file. 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim, src/testdir/test_map_functions.vim, src/testdir/Make_all.mak Patch 8.2.4826 问题: .cshtml files are not recognized. 解决方案: Use html filetype for .cshtml files. (Julien Voisin, closes #10212) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4827 问题: Typo in variable name. (Gabriel Dupras) 解决方案: Rename the variable. 文件: src/map.c Patch 8.2.4828 问题: Fix for unmapping simplified key not fully tested. 解决方案: Add a test case. (closes #10292) 文件: src/map.c, src/testdir/test_mapping.vim Patch 8.2.4829 问题: A key may be simplified to NUL. 解决方案: Use K_ZERO instead. Use macros instead of hard coded values. (closes #10290) 文件: src/getchar.c, src/misc2.c, src/testdir/test_termcodes.vim Patch 8.2.4830 问题: Possible endless loop if there is unused typahead. 解决方案: Only loop when the typeahead changed. 文件: src/channel.c Patch 8.2.4831 问题: Crash when using maparg() and unmapping simplified keys. 解决方案: Do not keep a mapblock pointer. (closes #10294) 文件: src/map.c, src/testdir/test_map_functions.vim Patch 8.2.4832 问题: Passing zero instead of NULL to a pointer argument. 解决方案: Use NULL. (closes #10296) 文件: src/getchar.c, src/term.c Patch 8.2.4833 问题: Failure of mapping not checked for. 解决方案: Check return value of ins_typebuf(). (closes #10299) 文件: src/getchar.c, src/term.c, src/testdir/test_termcodes.vim Patch 8.2.4834 问题: Vim9: some lines not covered by tests. 解决方案: Add a few more tests. Remove dead code. 文件: src/vim9execute.c, src/vim9instr.c, src/vim9.h, src/testdir/test_vim9_expr.vim Patch 8.2.4835 问题: Vim9: some lines not covered by tests. 解决方案: Add a few more tests. Fix disassemble output. 文件: src/vim9execute.c, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4836 问题: Vim9: some lines not covered by tests. 解决方案: Remove dead code. Add disassemble tests. 文件: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_disassemble.vim Patch 8.2.4837 (after patch 8.2.0919) 问题: Modifiers not simplified when timed out or using feedkeys() with 'n" flag. 解决方案: Adjust how mapped flag and timeout are used. (closes #10305) 文件: src/getchar.c, src/testdir/test_paste.vim, src/testdir/test_termcodes.vim Patch 8.2.4838 问题: Checking for absolute path is not trivial. 解决方案: Add isabsolutepath(). (closes #10303) 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/filepath.c, src/proto/filepath.pro, src/testdir/test_functions.vim Patch 8.2.4839 问题: Compiler warning for unused argument. 解决方案: Add "UNUSED". 文件: src/gui_gtk_x11.c Patch 8.2.4840 问题: Heredoc expression evaluated even when skipping. 解决方案: Don't evaluate when "skip" is set. (closes #10306) 文件: src/evalvars.c, src/testdir/test_let.vim Patch 8.2.4841 问题: Empty string considered an error for expand() when 'verbose' is set. (Christian Brabandt) 解决方案: Do not give an error for an empty result. (closes #10307) 文件: src/evalfunc.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/filepath.c, src/testdir/test_expand_func.vim Patch 8.2.4842 (after 8.2.4841) 问题: expand("%:p") is not empty when there is no buffer name. 解决方案: When ignoring errors still return NULL. (closes #10311) 文件: src/ex_docmd.c, src/testdir/test_expand_func.vim Patch 8.2.4843 (after 8.2.4807) 问题: Win32 GUI: Treating CTRL + ALT as AltGr is not backwards compatible. (Axel Bender) 解决方案: Make a difference between left and right menu keys. (closes #10308) 文件: src/gui_w32.c Patch 8.2.4844 问题: <C-S-I> is simplified to <S-Tab>. 解决方案: Do not simplify CTRL if there is also SHIFT. (closes #10313) 文件: src/getchar.c, src/testdir/test_gui.vim Patch 8.2.4845 问题: Duplicate code. 解决方案: Move code below if/else. (closes #10314) 文件: src/misc1.c Patch 8.2.4846 (after 8.2.4844) 问题: Termcodes test fails. 解决方案: use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316) 文件: runtime/doc/cmdline.txt, src/edit.c, src/getchar.c, src/testdir/test_gui.vim Patch 8.2.4847 问题: Crash when using uninitialized function pointer. 解决方案: Check for NULL pointer. (closes #10319, closes #10319) 文件: src/eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4848 问题: Local completion with mappings and simplification not working. 解决方案: Fix local completion <C-N>/<C-P> mappings not ignored if keys are not simplified. (closes #10323) 文件: src/getchar.c, src/testdir/test_popup.vim Patch 8.2.4849 问题: Gleam filetype not detected. 解决方案: Add a pattern for Gleam files. (Mathias Jean Johansen, closes #10326) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4850 问题: Mksession mixes up "tabpages" and "curdir" arguments. 解决方案: Correct logic for storing tabpage in session. (closes #10312) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4851 问题: Compiler warning for uninitialized variable. 解决方案: Use another variable to decide to restore option values. 文件: src/session.c Patch 8.2.4852 问题: ANSI color index to RGB value not correct. 解决方案: Convert the cterm index to ANSI index. (closes #10321, closes #9836) 文件: src/term.c Patch 8.2.4853 问题: CI with FreeBSD is a bit outdated. 解决方案: Use 12.3 instead of 12.1. (closes #10333) 文件: .cirrus.yml Patch 8.2.4854 问题: Array size does not match usage. 解决方案: Make array size 3 instead of 4. (Christian Brabandt, closes #10336) 文件: src/term.c Patch 8.2.4855 问题: Robot files are not recognized. 解决方案: Add patterns for robot files. (Zoe Roux, closes #10339) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4856 问题: MinGW compiler complains about unknown escape sequence. 解决方案: Avoid using a backslash in path. (Christian Brabandt, closes #10337) 文件: .github/workflows/ci.yml Patch 8.2.4857 问题: Yaml indent for multiline is wrong. 解决方案: Adjust patterns. (closes #10328, closes #8740) 文件: runtime/indent/yaml.vim, runtime/indent/testdir/yaml.in, runtime/indent/testdir/yaml.ok Patch 8.2.4858 问题: K_SPECIAL may be escaped twice. 解决方案: Avoid double escaping. (closes #10340) 文件: src/highlight.c, src/misc2.c, src/proto/misc2.pro, src/term.c, src/typval.c, src/testdir/test_eval_stuff.vim, src/testdir/test_feedkeys.vim, src/testdir/test_functions.vim, src/testdir/test_mapping.vim Patch 8.2.4859 问题: wget2 files are not recognized. 解决方案: Add patterns to recognize wget2. (Doug Kearns) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4860 问题: MS-Windows: always uses current directory for executables. 解决方案: Check the NoDefaultCurrentDirectoryInExePath environment variable. (Yasuhiro Matsumoto, closes #10341) 文件: runtime/doc/builtin.txt, src/os_win32.c, src/testdir/test_functions.vim Patch 8.2.4861 问题: It is not easy to restore saved mappings. 解决方案: Make mapset() accept a dict argument. (Ernie Rael, closes #10295) 文件: runtime/doc/builtin.txt, src/errors.h, src/evalfunc.c, src/map.c, src/typval.c, src/proto/typval.pro, src/testdir/test_map_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4862 问题: Vim9: test may fail when run with valgrind. 解决方案: Wait longer for callback if needed. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4863 问题: Accessing freed memory in test without the +channel feature. (Dominique Pellé) 解决方案: Do not generted PUSHCHANNEL or PUSHJOB if they are not implemented. (closes #10350) 文件: src/vim9instr.c, src/errors.h, src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4864 (after 8.2.4863) 问题: Vim9: script test fails. 解决方案: Remove "if" around declaration. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4865 问题: :startinsert right after :stopinsert does not work when popup menu is still visible. 解决方案: Use ins_compl_active() instead of pum_visible(). (closes #10352) 文件: src/edit.c, src/testdir/test_ins_complete.vim Patch 8.2.4866 问题: Duplicate code in "get" functions. 解决方案: Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar() and getbufvar(). (closes #10335) 文件: src/evalvars.c Patch 8.2.4867 问题: Listing of mapping with K_SPECIAL is wrong. 解决方案: Adjust escaping of special characters. (closes #10351) 文件: src/map.c, src/message.c, src/testdir/test_mapping.vim Patch 8.2.4868 问题: When closing help window autocmds triggered for the wrong window. 解决方案: Figure out the new current window earlier. (closes #10348) 文件: src/window.c, src/testdir/test_help.vim Patch 8.2.4869 问题: Expression in command block does not look after NL. 解决方案: Skip over NL to check what follows. (closes #10358) 文件: src/eval.c, src/proto/eval.pro, src/vim9script.c, src/testdir/test_usercommands.vim Patch 8.2.4870 问题: Vim9: expression in :substitute is not compiled. 解决方案: Use an INSTR instruction if possible. (closes #10334) 文件: src/evalfunc.c, src/regexp.c, src/vim9execute.c, src/vim9expr.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4871 问题: Vim9: in :def function no error for using a range with a command that does not accept one. 解决方案: Check for the command to accept a range. (closes #10330) 文件: src/vim9compile.c, src/testdir/test_vim9_script.vim Patch 8.2.4872 问题: Vim9: no error for using an expression only at the script level when followed by an empty line. 解决方案: Do not check the line number but whether something follows. (closes #10357) 文件: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4873 问题: Vim9: using "else" differs from using "endif/if !cond". 解决方案: Leave the block and enter another one. (closes #10320) 文件: src/ex_eval.c, src/testdir/test_vim9_script.vim Patch 8.2.4874 问题: Win32 GUI: horizontal scroll wheel not handled properly. 解决方案: Also handle WM_MOUSEHWHEEL. (closes #10309) 文件: src/gui_w32.c Patch 8.2.4875 问题: MS-Windows: some .exe files are not recognized. 解决方案: Parse APPEXECLINK junctions. (closes #10302) 文件: src/os_mswin.c, src/proto/os_mswin.pro, src/os_win32.c, src/os_win32.h, src/testdir/test_functions.vim Patch 8.2.4876 问题: MS-Windows: Shift-BS results in strange character in powershell. 解决方案: Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279) 文件: src/edit.c, src/keymap.h, src/term.c, src/testdir/shared.vim, src/testdir/test_edit.vim Patch 8.2.4877 问题: MS-Windows: Using Normal colors for termguicolors causes problems. 解决方案: Do not use Normal colors to set sg_gui_fg and sg_gui_bg. (Christian Brabandt, closes #10317, closes #10241) 文件: src/highlight.c Patch 8.2.4878 问题: Valgrind warning for using uninitialized variable. 解决方案: Initialize the type of newtv. 文件: src/strings.c Patch 8.2.4879 问题: Screendump test may fail when using valgrind. 解决方案: Wait longer for the first screendump. 文件: src/testdir/test_vim9_builtin.vim, src/testdir/screendump.vim Patch 8.2.4880 问题: Vim9: misplaced elseif causes invalid memory access. 解决方案: Check cs_idx not to be negative. 文件: src/ex_eval.c Patch 8.2.4881 问题: "P" in Visual mode still changes some registers. 解决方案: Make "P" in Visual mode not change any register. (Shougo Matsushita, closes #10349) 文件: runtime/doc/change.txt, runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c, src/testdir/test_visual.vim Patch 8.2.4882 问题: Cannot make 'breakindent' use a specific column. 解决方案: Add the "column" entry in 'breakindentopt'. (Christian Brabandt, closes #10362, closes #10325) 文件: runtime/doc/options.txt, src/indent.c, src/structs.h, src/testdir/test_breakindent.vim Patch 8.2.4883 问题: String interpolation only works in heredoc. 解决方案: Support interpolated strings. Use syntax for heredoc consistent with strings, similar to C#. (closes #10327) 文件: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/typval.c, src/proto/typval.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/testdir/test_debugger.vim, src/testdir/test_expr.vim, src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4884 问题: Test fails without the job/channel feature. (Dominique Pellé) 解决方案: Add condition. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4885 (after 8.2.4884) 问题: Test fails with the job/channel feature. 解决方案: Move check for job/channel separately. 文件: src/testdir/test_vim9_script.vim Patch 8.2.4886 问题: Vim9: redir in skipped block seen as assignment. 解决方案: Check for valid assignment. 文件: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Patch 8.2.4887 问题: Channel log does not show invoking a timer callback. 解决方案: Add a ch_log() call. 文件: src/time.c Patch 8.2.4888 问题: Line number of lambda ignores line continuation. 解决方案: Use the line number of where the arguments are. Avoid outputting "..." twice. (closes #10364) 文件: src/userfunc.c Patch 8.2.4889 问题: CI only tests with FreeBSD 12. 解决方案: Also test with FreeBSD 13. (closes #10366) 文件: .cirrus.yml Patch 8.2.4890 问题: Inconsistent capitalization in error messages. 解决方案: Make capitalization consistent. (Doug Kearns) 文件: src/errors.h Patch 8.2.4891 问题: Vim help presentation could be better. 解决方案: Add an imported file for extra Vim help support. Show highlight names in the color they have. 文件: Filelist, runtime/import/dist/vimhelp.vim Patch 8.2.4892 问题: Test failures because of changed error messages. 解决方案: Adjust the expected error messages. 文件: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, src/testdir/test_expand.vim, src/testdir/test_tcl.vim, src/testdir/test_vimscript.vim Patch 8.2.4893 (after 8.2.4891) 问题: Distributed import files are not installed. 解决方案: Add rules to Makefile and NSIS. 文件: src/Makefile, nsis/gvim.nsi Patch 8.2.4894 问题: MS-Windows: not using italics. 解决方案: Use italics. Simplify the code. (closes #10359) 文件: src/term.c Patch 8.2.4895 问题: Buffer overflow with invalid command with composing chars. 解决方案: Check that the whole character fits in the buffer. 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.4896 (after 8.2.4869) 问题: Expression in command block does not look after NL when command is typed. 解决方案: Skip over NL also when not in a script. (closes #10358) 文件: src/eval.c, src/testdir/test_usercommands.vim Patch 8.2.4897 问题: Comment inside an expression in lambda ignores the rest of the expression. 解决方案: Truncate the line at the comment. (closes #10367) 文件: src/eval.c, src/testdir/test_lambda.vim Patch 8.2.4898 问题: Coverity complains about pointer usage. 解决方案: Move code for increment/decrement. 文件: src/vim9compile.c Patch 8.2.4899 问题: With latin1 encoding CTRL-W might go before the start of the command line. 解决方案: Check already being at the start of the command line. 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4900 问题: Vim9 expression test fails without the job feature. 解决方案: Add a check for the job feature. (Dominique Pellé, closes #10373) 文件: src/testdir/test_vim9_expr.vim Patch 8.2.4901 问题: NULL pointer access when using invalid pattern. 解决方案: Check for failed regexp program. 文件: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4902 问题: Mouse wheel scrolling is inconsistent. 解决方案: Use the MS-Windows system setting. (closes #10368) 文件: runtime/doc/scroll.txt, src/gui_w32.c, src/mouse.c, src/proto/mouse.pro, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4903 问题: Cannot get the current cmdline completion type and position. 解决方案: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, closes #10344) 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/cmdexpand.c, src/proto/cmdexpand.pro, src/evalfunc.c, src/ex_getln.c, src/proto/ex_getln.pro, src/usercmd.c, src/proto/usercmd.pro, src/testdir/test_cmdline.vim Patch 8.2.4904 问题: codecov includes MS-Windows install files. 解决方案: Ignore dosinst.c and uninstall.c. 文件: .codecov.yml Patch 8.2.4905 问题: codecov includes MS-Windows install header file. 解决方案: Ignore dosinst.h. 文件: .codecov.yml Patch 8.2.4906 问题: MS-Windows: cannot use transparent background. 解决方案: Make transparent background work with 'termguicolors' and NONE background color. (Yasuhiro Matsumoto, closes #10310, closes #7162) 文件: runtime/doc/options.txt, src/os_win32.c, src/term.c Patch 8.2.4907 问题: Some users do not want a line comment always inserted. 解决方案: Add the '/' flag to 'formatoptions' to not repeat the comment leader after a statement when using "o". 文件: runtime/doc/change.txt, src/option.h, src/change.c, src/testdir/test_textformat.vim Patch 8.2.4908 问题: No text formatting for // comment after a statement. 解决方案: format a comment when the 'c' flag is in 'formatoptions'. 文件: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.4909 问题: MODE_ enum entries names are too generic. 解决方案: use CH_MODE_. 文件: src/structs.h, src/channel.c, src/job.c, src/terminal.c Patch 8.2.4910 问题: Imperfect coding. 解决方案: Make code nicer. 文件: src/ex_getln.c Patch 8.2.4911 问题: The mode #defines are not clearly named. 解决方案: Prepend MODE_. Renumber them to put the mapped modes first. 文件: src/vim.h, src/autocmd.c, src/buffer.c, src/change.c, src/charset.c, src/cindent.c, src/clipboard.c, src/debugger.c, src/digraph.c, src/drawline.c, src/drawscreen.c, src/edit.c, src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/fold.c, src/getchar.c, src/globals.h, src/gui.c, src/gui_gtk.c, src/gui_w32.c, src/gui_xim.c, src/indent.c, src/insexpand.c, src/macros.h, src/main.c, src/map.c, src/menu.c, src/message.c, src/misc1.c, src/misc2.c, src/mouse.c, src/netbeans.c, src/normal.c, src/ops.c, src/option.c, src/os_unix.c, src/os_win32.c, src/popupmenu.c, src/search.c, src/tag.c, src/screen.c, src/term.c, src/terminal.c, src/textformat.c, src/window.c Patch 8.2.4912 问题: Using execute() to define a lambda doesn't work. (Ernie Rael) 解决方案: Put the getline function in evalarg. (closes #10375) 文件: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro, src/testdir/test_vim9_func.vim Patch 8.2.4913 问题: Popup_hide() does not always have effect. 解决方案: Add the POPF_HIDDEN_FORCE flag. (closes #10376) 文件: src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popup_prop_not_visible_01a.dump, src/testdir/dumps/Test_popup_prop_not_visible_01b.dump Patch 8.2.4914 问题: String interpolation in :def function may fail. 解决方案: Do not terminate the expression. (closes #10377) 文件: src/vim9compile.c, src/testdir/test_vim9_expr.vim Patch 8.2.4915 问题: Sometimes the cursor is in the wrong position. 解决方案: When the cursor moved to another line, recompute w_botline. (closes #9736) 文件: src/move.c Patch 8.2.4916 (after 8.2.4915) 问题: Mouse in Insert mode test fails. 解决方案: Fix the test and check relevant positions. 文件: src/testdir/test_edit.vim Patch 8.2.4917 问题: Fuzzy expansion of option names is not right. 解决方案: Pass the fuzzy flag down the call chain. (Christian Brabandt, closes #10380, closes #10318) 文件: src/cmdexpand.c, src/option.c, src/proto/option.pro, src/testdir/test_options.vim Patch 8.2.4918 问题: Conceal character from matchadd() displayed too many times. 解决方案: Check the syntax flag. (closes #10381, closes #7268) 文件: src/drawline.c, src/testdir/test_matchadd_conceal.vim Patch 8.2.4919 问题: Can add invalid bytes with :spellgood. 解决方案: Check for a valid word string. 文件: src/mbyte.c, src/spellfile.c, src/errors.h, src/testdir/test_spell_utf8.vim Patch 8.2.4920 (after 8.2.4902) 问题: MS-Windows GUI: unused variables. 解决方案: Delete the variables. (John Marriott) 文件: src/gui_w32.c Patch 8.2.4921 问题: Spell test fails because of new illegal byte check. 解决方案: Remove the test. 文件: src/testdir/test_spell.vim Patch 8.2.4922 (after 8.2.4916) 问题: Mouse test fails on MS-Windows. 解决方案: Set 'mousemodel' to "extend". 文件: src/testdir/test_edit.vim Patch 8.2.4923 问题: Test checks for terminal feature unnecessarily. 解决方案: Remove CheckRunVimInTerminal. (closes #10383) 文件: src/testdir/test_matchadd_conceal.vim Patch 8.2.4924 问题: maparg() may return a string that cannot be reused. 解决方案: use msg_outtrans_special() instead of str2special(). (closes #10384) 文件: src/message.c, src/option.c, src/testdir/test_map_functions.vim, src/testdir/test_mapping.vim, src/testdir/test_options.vim Patch 8.2.4925 问题: Trailing backslash may cause reading past end of line. 解决方案: Check for NUL after backslash. 文件: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.4926 问题: #ifdef for crypt feature around too many lines. 解决方案: Move code outside of #ifdef. (closes #10388) 文件: src/option.c Patch 8.2.4927 问题: Return type of remove() incorrect when using three arguments. 解决方案: Use first argument type when there are three arguments. (closes #10387) 文件: src/evalfunc.c, src/testdir/test_vim9_builtin.vim Patch 8.2.4928 问题: Various white space and cosmetic mistakes. 解决方案: Change spaces to tabs, improve comments. 文件: src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c, src/debugger.c, src/digraph.c, src/edit.c, src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/filepath.c, src/gui.c, src/highlight.c, src/indent.c, src/insexpand.c, src/job.c, src/keymap.h, src/macros.h, src/menu.c, src/misc1.c, src/misc2.c, src/mouse.c, src/move.c, src/normal.c, src/ops.c, src/option.c, src/option.h, src/search.c, src/session.c, src/spellsuggest.c, src/structs.h, src/tag.c, src/term.c, src/terminal.c, src/textformat.c, src/typval.c, src/ui.c, src/userfunc.c, src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/window.c, src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c, src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c, src/os_vms.c, src/os_vms_conf.h Patch 8.2.4929 问题: Off-by-one error in statusline item. 解决方案: Subtrace one less. (closes #10394, closes #5599) 文件: src/buffer.c, src/testdir/test_statusline.vim, src/testdir/dumps/Test_statusline_hl.dump Patch 8.2.4930 问题: Interpolated string expression requires escaping. 解决方案: Do not require escaping in the expression. 文件: runtime/doc/eval.txt, src/typval.c, src/proto/typval.pro, src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, src/vim9instr.c, src/alloc.c, src/proto/alloc.pro, src/testdir/test_expr.vim, src/testdir/test_let.vim Patch 8.2.4931 问题: Crash with sequence of Perl commands. 解决方案: Move PUTBACK to another line. (closes #10386) 文件: src/if_perl.xs Patch 8.2.4932 问题: Not easy to filter the output of maplist(). 解决方案: Add mode_bits to the dictionary. (Ernie Rael, closes #10356) 文件: runtime/doc/builtin.txt, src/map.c, src/testdir/test_map_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4933 问题: A few more capitalization mistakes in error messages. 解决方案: Adjust capitalization. (Doug Kearns) 文件: src/errors.h Patch 8.2.4934 问题: String interpolation fails when not evaluating. 解决方案: Skip the expression when not evaluating. (closes #10398) 文件: src/typval.c, src/evalvars.c, src/proto/evalvars.pro, src/testdir/test_vim9_expr.vim Patch 8.2.4935 问题: With 'foldmethod' "indent" some lines are not included in the fold. (Oleg Koshovetc) 解决方案: Fix it. (Brandon Simmons, closes #10399, closes #3214) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4936 问题: MS-Windows: mouse coordinates for scroll event are wrong. 解决方案: Convert coordinates to the text area coordinates. (closes #10400) 文件: src/gui_w32.c Patch 8.2.4937 (after 8.2.4931) 问题: No test for what 8.2.4931 fixes. 解决方案: Add a test that triggers a valgrind error. 文件: src/testdir/test_perl.vim Patch 8.2.4938 问题: Crash when matching buffer with invalid pattern. 解决方案: Check for NULL regprog. 文件: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4939 问题: matchfuzzypos() with "matchseq" does not have all positions. 解决方案: Also add a position for white space. (closes #10404) 文件: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.4940 问题: Some code is never used. 解决方案: Remove dead code. Add a few more test cases. 文件: src/vim9expr.c, src/proto/vim9expr.pro, src/vim9compile.c, src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim Patch 8.2.4941 问题: '[ and '] marks may be wrong after undo. 解决方案: Adjust the '[ and '] marks if needed. (closes #10407, closes #1281) 文件: src/undo.c, src/testdir/test_undo.vim Patch 8.2.4942 问题: Error when setting 'filetype' in help file again. 解决方案: Deal with text property type already existing. (closes #10409) 文件: runtime/import/dist/vimhelp.vim Patch 8.2.4943 问题: Changing 'switchbuf' may have no effect. 解决方案: Handle 'switchbuf' in didset_string_options(). (Sean Dewar, closes #10406) 文件: src/optionstr.c, src/testdir/test_options.vim Patch 8.2.4944 问题: Text properties are wrong after "cc". (Axel Forsman) 解决方案: Pass the deleted byte count to inserted_bytes(). (closes #10412, closes #7737, closes #5763) 文件: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4945 问题: Inconsistent use of white space. 解决方案: Use Tabs and Spaces consistently. 文件: src/os_amiga.c, src/if_py_both.h, src/os_win32.c, src/os_mswin.c, src/os_vms.c, src/os_vms_conf.h Patch 8.2.4946 问题: Vim9: some code not covered by tests. 解决方案: Add a few more test cases. Remove dead code. 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4947 问题: Text properties not adjusted when accepting spell suggestion. 解决方案: Adjust text properties when text changes. (closes #10414) 文件: src/spell.c, src/spellsuggest.c, src/testdir/test_textprop.vim Patch 8.2.4948 问题: Cannot use Perl heredoc in nested :def function. (Virginia Senioria) 解决方案: Only concatenate heredoc lines when not in a nested function. (closes #10415) 文件: src/userfunc.c, src/testdir/test_vim9_func.vim Patch 8.2.4949 问题: Vim9: some code not covered by tests. 解决方案: Add a few more test cases. Fix double error message. 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4950 问题: Text properties position wrong after shifting text. 解决方案: Adjust the text properties when shifting a block of text. (closes #10418) 文件: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.4951 问题: Smart indenting done when not enabled. 解决方案: Check option values before setting can_si. (closes #10420) 文件: src/indent.c, src/proto/indent.pro, src/change.c, src/edit.c, src/ops.c, src/testdir/test_smartindent.vim Patch 8.2.4952 问题: GUI test will fail if color scheme changes. 解决方案: Reduce the test for now. 文件: src/testdir/test_gui.vim Patch 8.2.4953 问题: With 'smartindent' inserting '}' after completion goes wrong. 解决方案: Check the cursor is in indent. (closes #10420) 文件: src/indent.c, src/testdir/test_smartindent.vim Patch 8.2.4954 问题: Inserting line breaks text property spanning more than one line. 解决方案: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423) 文件: src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.4955 问题: Text property in wrong position after auto-indent. 解决方案: Adjust text property columns. (closes #10422, closes #7719) 文件: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4956 问题: Reading past end of line with "gf" in Visual block mode. 解决方案: Do not include the NUL in the length. 文件: src/normal.c, src/testdir/test_gf.vim Patch 8.2.4957 问题: Text properties in a wrong position after a block change. 解决方案: Adjust the properties columns. (closes #10427) 文件: src/ops.c, src/testdir/test_textprop.vim Patch 8.2.4958 问题: A couple conditions are always true. 解决方案: Remove the conditions. (Goc Dundar, closes #10428) 文件: src/evalfunc.c, src/quickfix.c Patch 8.2.4959 问题: Using NULL regexp program. 解决方案: Check for regexp program becoming NULL in more places. 文件: src/buffer.c, src/testdir/test_buffer.vim Patch 8.2.4960 问题: Text properties that cross line boundary are not correctly updated for a deleted line. 解决方案: Correct computing location of text property entry. (Paul Ollis, closes #10431, closes #10430) 文件: src/memline.c, src/testdir/test_textprop.vim Patch 8.2.4961 问题: Build error with a certain combination of features. 解决方案: Adjust #if. (John Marriott) 文件: src/memline.c Patch 8.2.4962 问题: Files show up in git status. 解决方案: Adjust the list of ignored files. Clean up more test files. (Shane xb Qian, closes #9929) 文件: .gitignore, src/testdir/Makefile Patch 8.2.4963 问题: Expanding path with "/**" may overrun end of buffer. 解决方案: Use vim_snprintf(). 文件: src/filepath.c Patch 8.2.4964 问题: MS-Windows GUI: mouse event test is flaky. 解决方案: Add a short delay after generating a mouse event. 文件: src/testdir/test_gui.vim Patch 8.2.4965 问题: GUI: testing mouse move event depends on screen cell size. 解决方案: Multiply the row and column with the screen cell size. 文件: runtime/doc/testing.txt, src/testing.c, src/testdir/test_gui.vim Patch 8.2.4966 问题: MS-Windows GUI: mouse event test gets extra event. 解决方案: Ignore one move event. 文件: src/testdir/test_gui.vim Patch 8.2.4967 (after 8.2.4966) 问题: MS-Windows GUI: mouse event test sometimes fails. 解决方案: Ignore one move event only if there is an extra event. 文件: src/testdir/test_gui.vim Patch 8.2.4968 问题: Reading past end of the line when C-indenting. 解决方案: Check for NUL. 文件: src/cindent.c, src/testdir/test_cindent.vim Patch 8.2.4969 问题: Changing text in Visual mode may cause invalid memory access. 解决方案: Check the Visual position after making a change. 文件: src/change.c, src/edit.c, src/misc2.c, src/proto/misc2.pro, src/testdir/test_visual.vim Patch 8.2.4970 问题: "eval 123" gives an error, "eval 'abc'" does not. 解决方案: Also give an error when evaluating only a string. (closes #10434) 文件: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Patch 8.2.4971 问题: Vim9: interpolated string seen as range. 解决方案: Recognize an interpolated string at the start of a command line. (closes #10434) 文件: src/ex_docmd.c, src/testdir/test_vim9_expr.vim Patch 8.2.4972 问题: Vim9: compilation fails when using dict member when skipping. 解决方案: Do not generate ISN_USEDICT when skipping. (closes #10433) 文件: src/vim9expr.c, src/testdir/test_vim9_expr.vim Patch 8.2.4973 问题: Vim9: type error for list unpack mentions argument. 解决方案: Mention variable. (close #10435) 文件: src/vim9.h, src/vim9execute.c, src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/testdir/test_vim9_script.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4974 问题: ":so" command may read after end of buffer. 解决方案: Compute length of text properly. 文件: src/scriptfile.c, src/testdir/test_source.vim Patch 8.2.4975 问题: Recursive command line loop may cause a crash. 解决方案: Limit recursion of getcmdline(). 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.4976 问题: Coverity complains about not restoring a saved value. 解决方案: Restore value before handling error. 文件: src/vim9execute.c Patch 8.2.4977 问题: Memory access error when substitute expression changes window. 解决方案: Disallow changing window in substitute expression. 文件: src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.4978 问题: No error if engine selection atom is not at the start. 解决方案: Give an error. (Christian Brabandt, closes #10439) 文件: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim Patch 8.2.4979 问题: Accessing freed memory when line is flushed. 解决方案: Make a copy of the pattern to search for. 文件: src/window.c, src/testdir/test_tagjump.vim Patch 8.2.4980 问题: When 'shortmess' contains 'A' loading a session may still warn for an existing swap file. (Melker Österberg) 解决方案: Keep the 'A' flag to 'shortmess' in the session file. (closes #10443) 文件: src/session.c, src/testdir/test_mksession.vim Patch 8.2.4981 问题: It is not possible to manipulate autocommands. 解决方案: Add functions to add, get and set autocommands. (Yegappan Lakshmanan, closes #10291) 文件: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/autocmd.c, src/evalfunc.c, src/proto/autocmd.pro, src/testdir/test_autocmd.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.4982 问题: Colors in terminal window are not 100% correct. 解决方案: Use g:terminal_ansi_colors as documented. (closes #10429, closes #7227 closes #10347) 文件: src/job.c, src/option.c, src/proto/term.pro, src/terminal.c, src/proto/terminal.pro, src/term.c, src/testdir/test_functions.vim, src/testdir/test_terminal.vim Patch 8.2.4983 (after 8.2.4982) 问题: Colors test fails in the GUI. 解决方案: Reset g:terminal_ansi_colors. 文件: src/testdir/test_functions.vim Patch 8.2.4984 问题: Dragging statusline fails for window with winbar. 解决方案: Fix off-by-one error. (closes #10448) 文件: src/mouse.c, src/testdir/test_winbar.vim Patch 8.2.4985 问题: PVS warns for possible array underrun. 解决方案: Add a check for a positive value. (Goc Dundar, closes #10451) 文件: src/spell.c Patch 8.2.4986 问题: Some github actions are outdated. 解决方案: Update CodeQl to v2, update checkout to v3. (closes #10450) 文件: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml, .github/workflows/coverity.yml Patch 8.2.4987 问题: After deletion a small fold may be closable. 解决方案: Check for a reverse range. (Brandon Simmons, closes #10457) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.4988 问题: Textprop in wrong position when replacing multi-byte chars. 解决方案: Adjust textprop position. (closes #10461) 文件: src/change.c, src/testdir/test_textprop.vim Patch 8.2.4989 问题: Cannot specify a function name for :defcompile. 解决方案: Implement a function name argument for :defcompile. 文件: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_disassemble.vim Patch 8.2.4990 (after 8.2.4989) 问题: Memory leak when :defcompile fails. 解决方案: Free fname when returning early. 文件: src/userfunc.c Patch 8.2.4991 问题: No test for what patch 8.1.0535 fixes. 解决方案: Add a test. (closes #10462) 文件: src/testdir/test_fold.vim Patch 8.2.4992 (after 8.2.4989) 问题: Compiler warning for possibly uninitialized variable. (Tony Mechelynck) 解决方案: Initialize variable in the caller instead of in the function. 文件: src/userfunc.c, src/vim9execute.c Patch 8.2.4993 问题: smart/C/lisp indenting is optional, which makes the code more complex, while it only reduces the executable size a bit. 解决方案: Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP. 文件: runtime/doc/builtin.txt, runtime/doc/indent.txt, runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h, src/buffer.c, src/change.c, src/cindent.c, src/charset.c, src/edit.c, src/evalfunc.c, src/indent.c, src/insexpand.c, src/main.c, src/mouse.c, src/ops.c, src/option.c, src/optionstr.c, src/register.c, src/search.c, src/textformat.c, src/version.c, src/option.h, src/optiondefs.h, src/structs.h, src/globals.h, src/testdir/test_edit.vim Patch 8.2.4994 问题: Tests are using legacy functions. 解决方案: Convert a few tests to use :def functions. 文件: src/testdir/test_cindent.vim Patch 8.2.4995 (after 8.2.4992) 问题: Still a compiler warning for possibly uninitialized variable. (Tony Mechelynck) 解决方案: Initialize variables. 文件: src/vim9execute.c Patch 8.2.4996 (after 8.2.4969) 问题: setbufline() may change Visual selection. (Qiming Zhao) 解决方案: Disable Visual mode when using another buffer. (closes #10466) 文件: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.4997 问题: Python: changing hidden buffer can cause the display to be messed up. 解决方案: Do not mark changed lines when using another buffer. (Paul Ollis, closes #10437, closes #7972) 文件: src/if_py_both.h, src/testdir/test_python3.vim Patch 8.2.4998 问题: Vim9: crash when using multiple funcref(). 解决方案: Check if varargs type is NULL. (closes #10467) 文件: src/vim9type.c, src/testdir/test_vim9_func.vim Patch 8.2.4999 问题: Filetype test table is not properly sorted. 解决方案: Sort by filetype. (Doug Kearns) 文件: src/testdir/test_filetype.vim Patch 8.2.5000 问题: No patch for documentation updates. 解决方案: Update documentation files. 文件: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, runtime/doc/builtin.txt, runtime/doc/change.txt, runtime/doc/channel.txt, runtime/doc/cmdline.txt, runtime/doc/diff.txt, runtime/doc/digraph.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/filetype.txt, runtime/doc/fold.txt, runtime/doc/ft_ada.txt, runtime/doc/ft_ps1.txt, runtime/doc/ft_raku.txt, runtime/doc/ft_rust.txt, runtime/doc/ft_sql.txt, runtime/doc/gui.txt, runtime/doc/gui_w32.txt, runtime/doc/helphelp.txt, runtime/doc/help.txt, runtime/doc/if_cscop.txt, runtime/doc/if_lua.txt, runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, runtime/doc/if_tcl.txt, runtime/doc/indent.txt, runtime/doc/index.txt, runtime/doc/insert.txt, runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt, runtime/doc/message.txt, runtime/doc/motion.txt, runtime/doc/netbeans.txt, runtime/doc/options.txt, runtime/doc/os_dos.txt, runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, runtime/doc/pattern.txt, runtime/doc/pi_netrw.txt, runtime/doc/pi_zip.txt, runtime/doc/popup.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/quickref.txt, runtime/doc/remote.txt, runtime/doc/repeat.txt, runtime/doc/rileft.txt, runtime/doc/scroll.txt, runtime/doc/sign.txt, runtime/doc/spell.txt, runtime/doc/sponsor.txt, runtime/doc/starting.txt, runtime/doc/syntax.txt, runtime/doc/tabpage.txt, runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, runtime/doc/term.txt, runtime/doc/testing.txt, runtime/doc/textprop.txt, runtime/doc/tips.txt, runtime/doc/todo.txt, runtime/doc/uganda.txt, runtime/doc/undo.txt, runtime/doc/usr_02.txt, runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, runtime/doc/usr_06.txt, runtime/doc/usr_08.txt, runtime/doc/usr_09.txt, runtime/doc/usr_12.txt, runtime/doc/usr_20.txt, runtime/doc/usr_29.txt, runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, runtime/doc/usr_45.txt, runtime/doc/usr_46.txt, runtime/doc/usr_50.txt, runtime/doc/usr_51.txt, runtime/doc/usr_52.txt, runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt, runtime/doc/various.txt, runtime/doc/version5.txt, runtime/doc/version6.txt, runtime/doc/version7.txt, runtime/doc/version8.txt, runtime/doc/version9.txt, runtime/doc/vi_diff.txt, runtime/doc/vim9.txt, runtime/doc/visual.txt, runtime/doc/windows.txt, runtime/doc/tags, runtime/doc/Makefile Patch 8.2.5001 问题: Checking translations affects the search pattern history. 解决方案: Use "keeppatterns". (Doug Kearns) 文件: src/po/check.vim Patch 8.2.5002 问题: deletebufline() may change Visual selection. 解决方案: Disable Visual mode when using another buffer. (closes #10469) 文件: src/evalbuffer.c, src/testdir/test_bufline.vim Patch 8.2.5003 问题: Cannot do bitwise shifts. 解决方案: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457) 文件: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/structs.h, src/vim.h, src/vim9execute.c, src/vim9expr.c, src/testdir/test_expr.vim, src/testdir/test_vim9_disassemble.vim, src/testdir/test_vim9_expr.vim Patch 8.2.5004 问题: Right shift on negative number does not work as documented. 解决方案: Use a uvarnumber_T type cast. 文件: runtime/doc/eval.txt, src/eval.c, src/vim9expr.c, src/vim9execute.c, src/charset.c, src/testdir/test_expr.vim Patch 8.2.5005 (after 8.2.5003) 问题: Compiler warning for uninitialized variable. (John Marriott) 解决方案: Initialize the pointer to NULL. 文件: src/vim9expr.vim Patch 8.2.5006 (after 8.2.5003) 问题: Asan warns for undefined behavior. 解决方案: Cast the shifted value to unsigned. 文件: src/eval.c, src/vim9expr.c, src/vim9execute.c Patch 8.2.5007 问题: Spell suggestion may use uninitialized memory. (Zdenek Dohnal) 解决方案: Avoid going over the end of the word. 文件: src/spellsuggest.c, src/testdir/test_spell_utf8.vim Patch 8.2.5008 问题: When 'formatoptions' contains "/" wrongly wrapping a long trailing comment. 解决方案: Pass the OPENLINE_FORMAT flag. 文件: src/change.c, src/vim.h, src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.5009 问题: Fold may not be closable after appending. 解决方案: Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471) 文件: src/fold.c, src/testdir/test_fold.vim Patch 8.2.5010 问题: The terminal debugger uses various global variables. 解决方案: Add a dictionary to hold the terminal debugger preferences. 文件: runtime/doc/terminal.txt, runtime/pack/dist/opt/termdebug/plugin/termdebug.vim Patch 8.2.5011 问题: Replacing an autocommand requires several lines. 解决方案: Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan, closes #10473) 文件: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, src/autocmd.c, src/testdir/test_autocmd.vim Patch 8.2.5012 问题: Cannot select one character inside (). 解决方案: Do not try to extend the area if it is empty. (closes #10472, closes #6616) 文件: src/textobject.c, src/testdir/test_textobjects.vim Patch 8.2.5013 问题: After text formatting the cursor may be in an invalid position. 解决方案: Correct the cursor position after formatting. 文件: src/textformat.c, src/testdir/test_textformat.vim Patch 8.2.5014 问题: Byte offsets are wrong when using text properties. 解决方案: Make sure text properties do not affect the byte counts. (Paul Ollis, closes #10474) 文件: src/memline.c, src/textprop.c, src/testdir/test_textprop.vim Patch 8.2.5015 问题: Hoon and Moonscript files are not recognized. 解决方案: Add filetype patterns. (Goc Dundar, closes #10478) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.5016 问题: Access before start of text with a put command. 解决方案: Check the length is more than zero. 文件: src/register.c, src/testdir/test_put.vim Patch 8.2.5017 问题: Gcc 12.1 warns for uninitialized variable. 解决方案: Initialize the variable. (closes #10476) 文件: src/evalvars.c Patch 8.2.5018 问题: Vim9: some code is not covered by tests. 解决方案: Delete dead code. 文件: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, src/vim9expr.c, Patch 8.2.5019 问题: Cannot get the first screen column of a character. 解决方案: Let virtcol() optionally return a list. (closes #10482, closes #7964) 文件: runtime/doc/builtin.txt, src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_vim9_builtin.vim Patch 8.2.5020 问题: Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'. 解决方案: Save and restore the KeyTyped flag. (closes #10479) 文件: src/gui_xim.c, src/testdir/test_iminsert.vim Patch 8.2.5021 问题: Build fails with normal features and +terminal. (Dominique Pellé) 解决方案: Add #ifdefs. (closes #10484) 文件: src/terminal.c Patch 8.2.5022 问题: 'completefunc'/'omnifunc' error does not end completion. 解决方案: Check if there was an error or exception. (closes #10486, closes #4218) 文件: src/insexpand.c, src/testdir/test_ins_complete.vim Patch 8.2.5023 问题: Substitute overwrites allocated buffer. 解决方案: Disallow undo when in a substitute command. 文件: src/normal.c, src/undo.c, src/testdir/test_substitute.vim Patch 8.2.5024 问题: Using freed memory with "]d". 解决方案: Copy the pattern before searching. 文件: src/normal.c, src/testdir/test_tagjump.vim Patch 8.2.5025 问题: Vim9: a few lines not covered by tests. 解决方案: Add a few tests. 文件: src/vim9script.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_import.vim Patch 8.2.5026 问题: Vim9: a few lines not covered by tests. 解决方案: Delete dead code. Add a few test cases. make "12->func()" work. 文件: src/vim9type.c, src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim Patch 8.2.5027 问题: Error for missing :endif when an exception was thrown. (Dani Dickstein) 解决方案: Do not give an error when aborting. (closes #10490) 文件: src/ex_docmd.c, src/testdir/test_trycatch.vim Patch 8.2.5028 问题: Syntax regexp matching can be slow. 解决方案: Adjust the counters for checking the timeout to check about once per msec. (closes #10487, closes #2712) 文件: src/regexp_bt.c, src/regexp_nfa.c Patch 8.2.5029 问题: "textlock" is always zero. 解决方案: Remove "textlock" and rename "textwinlock" to "textlock". (closes #10489) 文件: runtime/doc/insert.txt, runtime/doc/tags, src/beval.c, src/change.c, src/edit.c, src/errors.h, src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/proto/ex_getln.pro, src/globals.h, src/indent.c, src/insexpand.c, src/map.c, src/register.c, src/undo.c, src/window.c, src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim, src/testdir/test_quickfix.vim Patch 8.2.5030 问题: autocmd_add() can only handle one event and pattern. 解决方案: Support a list of events and patterns. (Yegappan Lakshmanan, closes #10483) 文件: runtime/doc/builtin.txt, src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim Patch 8.2.5031 问题: Cannot easily run the benchmarks. 解决方案: Have "make benchmark" in the src directory work. 文件: src/Makefile, src/testdir/Makefile Patch 8.2.5032 问题: Python 3 test fails without the GUI. 解决方案: Check the balloon_eval feature is available. 文件: src/testdir/test_python3.vim Patch 8.2.5033 (after 8.2.5030) 问题: Build error with +eval but without +quickfix. Warning for uninitialized variable. 解决方案: Adjust #ifdefs. (John Marriott) 文件: src/errors.h, src/autocmd.c Patch 8.2.5034 问题: There is no way to get the byte index from a virtual column. 解决方案: Add virtcol2col(). (Yegappan Lakshmanan, closes #10477, closes #10098) 文件: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, src/move.c, src/proto/move.pro, src/testdir/test_cursor_func.vim Patch 8.2.5035 问题: When splitting a window the changelist position moves. 解决方案: Set the changelist index a bit later. (closes #10493) 文件: src/window.c, src/testdir/test_changelist.vim, src/testdir/test_normal.vim Patch 8.2.5036 (after 8.2.5028) 问题: Using two counters for timeout check in NFA engine. 解决方案: Use only one counter. Tune the counts based on guessing. 文件: src/regexp_nfa.c Patch 8.2.5037 问题: Cursor position may be invalid after "0;" range. 解决方案: Check the cursor position when it was set by ";" in the range. 文件: src/ex_docmd.c, src/testdir/test_excmd.vim Patch 8.2.5038 问题: A finished terminal in a popup window does not show a scrollbar. 解决方案: Show the scrollbar if the terminal job is finished. (closes #10497) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, src/testdir/dumps/Test_popupwin_poptermscroll_3.dump Patch 8.2.5039 问题: Confusing error if first argument of popup_create() is wrong. 解决方案: Give a more informative error. 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/errors.h, src/testdir/dumps/Test_popup_settext_07.dump Patch 8.2.5040 问题: Scrollbar thumb in scrolled popup not visible. 解决方案: Show at least one thumb character. (fixes 10492) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_13.dump Patch 8.2.5041 问题: Cannot close a terminal popup with "NONE" job. 解决方案: Adjust the conditions for whether a job is running. (closes #10498) 文件: src/buffer.c, src/terminal.c, src/proto/terminal.pro, src/undo.c, src/testdir/test_popupwin.vim Patch 8.2.5042 问题: Scrollbar thumb in tall scrolled popup not visible. 解决方案: Show at least one thumb character. (fixes 10492) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_scroll_13.dump Patch 8.2.5043 问题: Can open a cmdline window from a substitute expression. 解决方案: Disallow opening a command line window when text or buffer is locked. 文件: src/buffer.c, src/ex_getln.c, src/proto/ex_getln.pro, src/window.c, src/testdir/test_substitute.vim Patch 8.2.5044 (after 8.2.5043) 问题: Command line test fails. 解决方案: Also beep when cmdline win can't be opened because of locks. Make the test not beep. Make the test pass on MS-Windows. 文件: src/ex_getln.c, src/testdir/test_substitute.vim Patch 8.2.5045 问题: Can escape a terminal popup window when the job is finished. 解决方案: Only check for a finished job where it is relevant. (closes #10253) 文件: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, src/testdir/dumps/Test_popupwin_poptermscroll_3.dump, src/testdir/dumps/Test_popupwin_poptermscroll_4.dump Patch 8.2.5046 问题: vim_regsub() can overwrite the destination. 解决方案: Pass the destination length, give an error when it doesn't fit. 文件: src/regexp.h, src/regexp.c, src/proto/regexp.pro, src/eval.c, src/ex_cmds.c Patch 8.2.5047 问题: CurSearch highlight is often wrong. 解决方案: Remember the last highlighted position and redraw when needed. 文件: src/globals.h, src/match.c, src/drawscreen.c, src/change.c, src/testdir/test_search.vim, src/testdir/dumps/Test_hlsearch_cursearch_changed_1.dump Patch 8.2.5048 问题: When using XIM the gui test may fail. 解决方案: Only use --not-a-term when not using XIM. 文件: src/testdir/test_gui.vim Patch 8.2.5049 问题: Insufficient tests for autocommands. 解决方案: Add a few more tests. (Yegappan Lakshmanan, closes #10507) 文件: src/autocmd.c, src/testdir/gen_opt_test.vim, src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim Patch 8.2.5050 问题: Using freed memory when searching for pattern in path. 解决方案: Make a copy of the line. 文件: src/search.c, src/testdir/test_tagjump.vim Patch 8.2.5051 问题: Check for autocmd_add() event argument is confusing. 解决方案: Make the code more straightforward. 文件: src/autocmd.c Patch 8.2.5052 问题: CI checkout step title is a bit cryptic. 解决方案: Add a better title. (closes #10509) 文件: .github/workflows/ci.yml, .github/workflows/coverity.yml, .github/workflows/codeql-analysis.yml Patch 8.2.5053 问题: Cannot have a comment halfway an expression in an autocmd command block. 解决方案: When skipping over the NL also skip over comments. (closes #10519) 文件: src/eval.c, src/testdir/test_autocmd.vim Patch 8.2.5054 问题: No good filetype for conf files similar to dosini. 解决方案: Add the confini filetype. (closes #10518) 文件: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.5055 问题: Statusline is not updated when terminal title changes. 解决方案: Redraw the status line when the title changes. (issue #10425) 文件: src/terminal.c Patch 8.2.5056 问题: The channel log only contains some of the raw terminal output. 解决方案: Add the "o" flag to log all terminal output. Use it for "--log". 文件: runtime/doc/channel.txt, runtime/doc/starting.txt, src/main.c, src/channel.c, src/vim.h, src/term.c, src/edit.c, src/normal.c, src/optionstr.c Patch 8.2.5057 问题: Using gettimeofday() for timeout is very inefficient. 解决方案: Set a platform dependent timer. (Paul Ollis, closes #10505) 文件: src/auto/configure, src/config.h.in, src/configure.ac, src/drawscreen.c, src/errors.h, src/evalfunc.c, src/ex_cmds.c, src/ex_getln.c, src/match.c, src/os_mac.h, src/os_macosx.m, src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro, src/proto/os_win32.pro, src/proto/regexp.pro, src/quickfix.c, src/regexp.c, src/regexp.h, src/regexp_bt.c, src/regexp_nfa.c, src/screen.c, src/search.c, src/structs.h, src/syntax.c, src/testdir/test_hlsearch.vim, src/testdir/test_search.vim, src/testdir/test_syntax.vim Patch 8.2.5058 问题: input() does not handle composing characters properly. 解决方案: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). (closes #10527) 文件: src/getchar.c, src/testdir/test_functions.vim Patch 8.2.5059 问题: Autoconf 2.71 produces many obsolete warnings. 解决方案: Replace obsolete macros with non-obsolete ones, where the functionality does not change. (issue #10528) 文件: src/configure.ac, src/auto/configure Patch 8.2.5060 (after 8.2.5059) 问题: Running configure fails. 解决方案: Remove line break. 文件: src/configure.ac, src/auto/configure Patch 8.2.5061 问题: C89 requires signal handlers to return void. 解决方案: Drop RETSIGTYPE and hard-code a void return value. 文件: src/configure.ac, src/auto/configure, src/if_cscope.c, src/os_unix.c, src/pty.c, src/os_mac.h, src/os_vms_conf.h, src/config.h.in, src/osdef1.h.in Patch 8.2.5062 问题: Coverity warns for dead code. 解决方案: Remove the dead code. 文件: src/os_unix.c, src/match.c Patch 8.2.5063 问题: Error for a command may go over the end of IObuff. 解决方案: Truncate the message. 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.5064 问题: No test for what 8.1.0052 fixes. 解决方案: Add a test. (closes #10531) 文件: src/getchar.c, src/testdir/test_mapping.vim Patch 8.2.5065 问题: Wrong return type for main() in tee.c. 解决方案: Use "int" instead of "void". Remove unused variable. 文件: src/tee/tee.c Patch 8.2.5066 问题: Can specify multispace listchars only for whole line. 解决方案: Add "leadmultispace". (Christian Brabandt, closes #10496) 文件: runtime/doc/options.txt, src/drawline.c, src/message.c, src/screen.c, src/structs.h, src/window.c, src/testdir/test_listchars.vim Patch 8.2.5067 问题: Timer_create is not available on every Mac system. (Hisashi T Fujinaka) 解决方案: Adjust #ifdef. 文件: src/os_unix.c Patch 8.2.5068 问题: Gcc 12.1 warning when building tee. 解决方案: Change type to size_t. (John Marriott) 文件: src/tee/tee.c Patch 8.2.5069 问题: Various warnings from clang on MS-Windows. 解决方案: Fix the code to avoid the warnings. (Yegappan Lakshmanan, closes #10538) 文件: src/dosinst.c, src/fileio.c, src/gui_w32.c, src/os_mswin.c, src/os_win32.c Patch 8.2.5070 问题: Unnecessary code. 解决方案: Remove code that isn't needed. (closes #10534) 文件: src/message.c, src/screen.c Patch 8.2.5071 问题: With some Mac OS version clockid_t is redefined. 解决方案: Adjust #ifdefs. (Ozaki Kiichi, closes #10549) 文件: src/os_mac.h Patch 8.2.5072 问题: Using uninitialized value and freed memory in spell command. 解决方案: Initialize "attr". Check for empty line early. 文件: src/spell.c, src/testdir/test_spell_utf8.vim Patch 8.2.5073 问题: Clang on MS-Windows produces warnings. 解决方案: Avoid the warnings. (Yegappan Lakshmanan, closes #10546) 文件: src/dosinst.c, src/dosinst.h, src/gui_dwrite.cpp, src/gui_w32.c, src/iscygpty.c, src/libvterm/src/vterm_internal.h, src/mbyte.c, src/os_win32.c, src/os_win32.h, src/term.c, src/xdiff/xinclude.h Patch 8.2.5074 问题: Spell test fails on MS-Windows. 解决方案: Do not change 'encoding' 文件: src/testdir/test_spell_utf8.vim Patch 8.2.5075 问题: Clang gives an out of bounds warning. 解决方案: adjust conditional expression (John Marriott) 文件: src/ui.c Patch 8.2.5076 问题: Unnecessary code. 解决方案: Remove code and replace with function call. (closes #10552) 文件: src/drawline.c, src/getchar.c Patch 8.2.5077 问题: Various warnings from clang on MS-Windows. 解决方案: Avoid the warnings. (Yegappan Lakshmanan, closes #10553) 文件: src/dosinst.c, src/dosinst.h, src/filepath.c, src/gui_w32.c, src/misc1.c, src/os_win32.c Patch 8.2.5078 问题: Substitute test has a one second delay. 解决方案: Use ":silent!". Add another test case. (closes #10558) 文件: src/testdir/test_substitute.vim Patch 8.2.5079 问题: DirChanged autocommand may use freed memory. (Shane-XB Qian) 解决方案: Free the memory later. (closes #10555) 文件: src/ex_docmd.c, src/testdir/test_autocmd.vim Patch 8.2.5080 问题: When indenting gets out of hand it is hard to stop. 解决方案: When line gets too long set got_int. 文件: src/indent.c Patch 8.2.5081 问题: Autocmd test fails on MS-Windows. 解决方案: Set shellslash to get forward slashes. 文件: src/testdir/test_autocmd.vim Patch 8.2.5082 (after 8.2.5080) 问题: Retab test fails. 解决方案: Disable the test for now. 文件: src/testdir/test_retab.vim Patch 8.2.5083 问题: Autocmd test still fails on MS-Windows. 解决方案: Change backward to forward slashes. 文件: src/testdir/test_autocmd.vim Patch 8.2.5084 问题: When the GUI shows a dialog tests get stuck. 解决方案: Add the --gui-dialog-file argument. 文件: runtime/doc/starting.txt, src/Make_mvc.mak, src/gui.c, src/main.c, src/message.c, src/os_mswin.c, src/proto/gui.pro, src/proto/main.pro, src/structs.h, src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, src/testdir/Makefile, src/testdir/runtest.vim, src/testdir/shared.vim Patch 8.2.5085 问题: Gcc gives warning for signed/unsigned difference. 解决方案: Use a different pointer type. (John Marriott) 文件: src/os_mswin.c Patch 8.2.5086 问题: CI runs on Windows 2019. 解决方案: Switch to Windows 2022. (closes #10566) 文件: .github/workflows/ci.yml Patch 8.2.5087 问题: Cannot build with clang on MS-Windows. 解决方案: Add support for building with clang. (Yegappan Lakshmanan, closes #10557) 文件: src/GvimExt/Make_ming.mak, src/INSTALLpc.txt, src/Make_cyg_ming.mak Patch 8.2.5088 问题: Value of cmod_verbose is a bit complicated to use. 解决方案: Use zero for not set, value + 1 when set. (closes #10564) 文件: src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/structs.h Patch 8.2.5089 问题: Some functions return a different value on failure. 解决方案: Initialize the return value earlier. (Yegappan Lakshmanan, closes #10568) 文件: src/autocmd.c, src/dict.c, src/evalfunc.c, src/list.c Patch 8.2.5090 问题: MS-Windows: vim.def is no longer used. 解决方案: Delete vim.def. (Ken Takata, closes #10569) 文件: Filelist, Makefile, src/vim.def Patch 8.2.5091 问题: Terminal test fails with some shell commands. 解决方案: Disable setting the window title. (closes #10530) 文件: src/testdir/test_terminal.vim Patch 8.2.5092 问题: Using "'<,'>" in Ex mode may compare unrelated pointers. 解决方案: Set eap->cmd to "+" only later. 文件: src/ex_docmd.c Patch 8.2.5093 问题: Error message for unknown command may mention the command twice. (Malcolm Rowe) 解决方案: Add the did_append_cmd flag. (closes #10570) 文件: src/ex_docmd.c Patch 8.2.5094 问题: MS-Windows GUI: empty command may cause a dialog. 解决方案: Delete the dialog file. Improve the message. 文件: src/testdir/runtest.vim, src/testdir/test_ex_mode.vim Patch 8.2.5095 问题: Terminal test still fails with some shell commands. 解决方案: Disable setting the window title in the Vim instance running in a terminal window. (closes #10530) 文件: src/testdir/test_terminal.vim Patch 8.2.5096 (after 8.2.5095) 问题: Terminal test still fails with some shell commands. 解决方案: Add missing "call". (closes #10530) 文件: src/testdir/test_terminal.vim Patch 8.2.5097 问题: Using uninitialized memory when using 'listchars'. 解决方案: Use the length returned by mb_char2bytes(). (closes #10576) 文件: src/message.c Patch 8.2.5098 问题: Spelldump test sometimes hangs. 解决方案: Catch the problem of the spell file not being found to avoid hanging in the download dialog. 文件: src/testdir/test_spell.vim Patch 8.2.5099 问题: Some terminal tests are not retried. 解决方案: Mark terminal tests as flaky. 文件: src/testdir/test_terminal.vim Patch 8.2.5100 问题: Memory usage tests are not retried. 解决方案: Mark memory usage tests as flaky. 文件: src/testdir/test_memory_usage.vim Patch 8.2.5101 问题: MS-Windows with MinGW: $CC may be "cc" instead of "gcc". 解决方案: Set $CC if it is not matching "clang". (Yegappan Lakshmanan, closes #10578) 文件: src/INSTALLpc.txt, src/Make_cyg_ming.mak Patch 8.2.5102 问题: Interrupt not caught in test. 解决方案: Consider an exception thrown in the current try/catch when got_int is set. Also catch early exit when not using try/catch. 文件: src/indent.c, src/testing.c, src/testdir/test_retab.vim, src/testdir/runtest.vim Patch 8.2.5103 问题: Build fails with small features. 解决方案: Add #ifdef. Skip test on MS-Windows. 文件: src/indent.c, src/testdir/test_retab.vim Patch 8.2.5104 (after 8.2.5103) 问题: Test hangs on MS-Windows. 解决方案: Skip another test on MS-Windows. 文件: src/testdir/test_retab.vim Patch 8.2.5105 (after 8.2.5104) 问题: Test still hangs on MS-Windows. 解决方案: Skip "nocatch" test the right way. 文件: src/testdir/test_retab.vim Patch 8.2.5106 问题: Default cmdwin mappings are re-mappable. 解决方案: Make the default mappings not re-mappable. (closes #10580) Use symbols for the first do_map() argument. 文件: src/vim.h, src/ex_getln.c, src/map.c, src/proto/map.pro, src/digraph.c, src/netbeans.c Patch 8.2.5107 问题: Some callers of rettv_list_alloc() check for not OK. (Christ van Willegen) 解决方案: Use "==" instead of "!=" when checking the return value. 文件: src/evalbuffer.c, src/channel.c, src/cmdexpand.c, src/evalfunc.c, src/evalwindow.c, src/insexpand.c, src/job.c, src/list.c, src/map.c, src/menu.c, src/mouse.c, src/move.c, src/sign.c, src/textprop.c, src/term.c, src/time.c Patch 8.2.5108 问题: Retab test disabled because it hangs on MS-Windows. 解决方案: Also set got_int at the other place an overlong text is detected. 文件: src/indent.c, src/testdir/test_retab.vim Patch 8.2.5109 问题: Mode not updated after CTRL-O CTRL-C in Insert mode. 解决方案: Set redraw_mode and use it. (closes #10581) 文件: src/main.c, src/normal.c, src/testdir/test_normal.vim, src/testdir/dumps/Test_mode_updated_1.dump Patch 8.2.5110 问题: Icon filetype not recognized from the first line. 解决方案: Add a check for the first line. (Doug Kearns) 文件: runtime/autoload/dist/script.vim, src/testdir/test_filetype.vim Patch 8.2.5111 问题: No test for --gui-dialog-file. 解决方案: Add a test. 文件: src/testdir/test_gui.vim Patch 8.2.5112 (after 8.2.5111) 问题: Gui test hangs on MS-Windows. 解决方案: Use "!start" to start Vim. 文件: src/testdir/test_gui.vim Patch 8.2.5113 问题: Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel Dupras) 解决方案: Delete the timer befor forking. (closes #10584) 文件: src/os_unix.c, src/proto/os_unix.pro, src/gui.c Patch 8.2.5114 问题: Time limit on searchpair() does not work properly. 解决方案: Set the time limit once instead of for each regexp. (closes #10562) 文件: src/search.c, src/evalfunc.c, src/testdir/test_search.vim Patch 8.2.5115 问题: Search timeout is overrun with some patterns. 解决方案: Check for timeout in more places. Make the flag volatile and atomic. Use assert_inrange() to see what happened. 文件: src/regexp_nfa.c, src/regexp_bt.c, src/regexp.c, src/os_unix.c, src/proto/os_unix.pro, src/testdir/test_search.vim Patch 8.2.5116 问题: "limit" option of matchfuzzy() not always respected. 解决方案: Remove "else". (Kazuyuki Miyagi, closes #10586) 文件: runtime/doc/builtin.txt, src/search.c, src/testdir/test_matchfuzzy.vim Patch 8.2.5117 问题: Crash when calling a Lua callback from a :def function. (Bohdan Makohin) 解决方案: Handle FC_CFUNC in call_user_func_check(). (closes #10587) 文件: src/userfunc.c, src/testdir/test_lua.vim Patch 8.2.5118 问题: MS-Windows: sending a message to another Vim may hang if that Vim is halted. 解决方案: Add a timeout to serverSendToVim(). (Ken Takata, closes #10585) 文件: runtime/pack/dist/opt/editexisting/plugin/editexisting.vim, src/os_mswin.c Patch 8.2.5119 问题: CI uses cache v2. 解决方案: Use cache v3. (closes #10588) 文件: .github/workflows/ci.yml Patch 8.2.5120 问题: Searching for quotes may go over the end of the line. 解决方案: Check for running into the NUL. 文件: src/textobject.c Patch 8.2.5121 问题: Interrupt test sometimes fails. 解决方案: Use a different file name. 文件: src/testdir/test_interrupt.vim Patch 8.2.5122 问题: Lisp indenting my run over the end of the line. 解决方案: Check for NUL earlier. 文件: src/indent.c, src/testdir/test_indent.vim Patch 8.2.5123 问题: Using invalid index when looking for spell suggestions. 解决方案: Do not decrement the index when it is zero. 文件: src/spellsuggest.c, src/testdir/test_spell.vim Patch 8.2.5124 问题: When syntax timeout test fails it does not show the time. 解决方案: Use assert_inrange(). 文件: src/testdir/test_syntax.vim Patch 8.2.5125 问题: MS-Windows: warnings from MinGW compiler. 解决方案: Use "volatile". (Yasuhiro Matsumoto, closes #10589) Initialize variable. 文件: src/os_win32.c, src/proto/os_win32.pro, src/map.c Patch 8.2.5126 问题: Substitute may overrun destination buffer. 解决方案: Disallow switching buffers in a substitute expression. 文件: src/ex_docmd.c, src/testdir/test_substitute.vim Patch 8.2.5127 问题: Using assert_true() does not show value on failure. 解决方案: Use assert_inrange(). (closes #10593) 文件: src/testdir/test_channel.vim, src/testdir/test_hlsearch.vim Patch 8.2.5128 问题: Syntax highlighting disabled when using synID() in searchpair() skip expression and it times out. (Jaehwang Jung) 解决方案: Add the redrawtime_limit_set flag. (closes #10562) 文件: src/globals.h, src/drawscreen.c, src/syntax.c Patch 8.2.5129 问题: Timeout handling is not optimal. 解决方案: Avoid setting timeout_flag twice. Adjust the pointer when stopping the regexp timeout. Adjust variable name. 文件: src/os_unix.c, src/os_win32.c, src/regexp.c Patch 8.2.5130 问题: Edit test for mode message fails when using valgrind. 解决方案: Use WaitForAssert(). Run beep test later. 文件: src/testdir/test_edit.vim Patch 8.2.5131 问题: Timeout implementation is not optimal. 解决方案: Further improvements for timeouts. Add a test for searchpair() timeout. (partly by Paul Ollis) 文件: src/configure.ac, src/auto/configure, src/testdir/test_hlsearch.vim, src/testdir/test_search.vim Patch 8.2.5132 问题: :mkview test doesn't test much. 解决方案: Save the view with the folds closed. (James McCoy, closes #10596) 文件: src/testdir/test_mksession.vim Patch 8.2.5133 问题: MacOS: build fails. 解决方案: Remove "#if 0" from timer_delete(). 文件: src/os_macosx.m Patch 8.2.5134 问题: Function has confusing name. 解决方案: Rename tgetent_error() to invoke_tgetent(). 文件: src/term.c Patch 8.2.5135 问题: Running configure gives warnings for main() return type. 解决方案: Specify "int" return type. Avoid a few more warnings. 文件: src/configure.ac, src/auto/configure Patch 8.2.5136 问题: Debugger test fails when run with valgrind. 解决方案: Wait longer when using valgrind. 文件: src/testdir/shared.vim, src/testdir/test_debugger.vim, src/testdir/test_search.vim Patch 8.2.5137 问题: Cannot build without the +channel feature. (Dominique Pellé) 解决方案: Add #ifdef around ch_log() calls. (closes #10598) 文件: src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c Patch 8.2.5138 问题: Various small issues. 解决方案: Various small improvements. 文件: src/filepath.c, src/job.c, src/mark.c, src/move.c, src/popupwin.c, src/testdir/test_filetype.vim Patch 8.2.5139 问题: TIME_WITH_SYS_TIME is no longer supported by autoconf. 解决方案: Always include time.h. 文件: src/os_unix.h Patch 8.2.5140 问题: Seachpair timeout test is flaky. 解决方案: Mark the test as flaky so it is retried. 文件: src/testdir/test_search.vim Patch 8.2.5141 问题: Using "volatile int" in a signal handler might be wrong. 解决方案: Use "volatile sig_atomic_t". 文件: src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c, src/proto/os_win32.pro, src/regexp.c, Patch 8.2.5142 问题: Startup test fails if there is a status bar at the top of the screen. (Ernie Rael) 解决方案: Use a larger vertical offset in the test. 文件: src/testdir/test_startup.vim Patch 8.2.5143 问题: Some tests fail when using valgrind. Spurious leak reports. 解决方案: Use WaitForAssert(). Avoid failing fork/exec. Skip tests where a job is killed when running valgrind. 文件: src/testdir/test_iminsert.vim, src/testdir/test_popup.vim, src/testdir/test_cscope.vim, src/testdir/test_channel.vim Patch 8.2.5144 问题: With 'lazyredraw' set completion menu may be displayed wrong. 解决方案: When the popup menu is visible do not insert a screen line. (closes #10601) 文件: src/screen.c Patch 8.2.5145 问题: Exit test causes spurious valgrind reports. 解决方案: Skip test. Add CheckNotValgrind. 文件: src/testdir/test_exit.vim, src/testdir/check.vim, src/testdir/test_channel.vim Patch 8.2.5146 问题: Memory leak when substitute expression nests. 解决方案: Use an array of expression results. 文件: src/alloc.c, src/regexp.c, src/proto/regexp.pro, src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim Patch 8.2.5147 问题: Flaky test always fails on retry. 解决方案: Delete the created function. 文件: src/testdir/test_search.vim Patch 8.2.5148 问题: Invalid memory access when using an expression on the command line. 解决方案: Make sure the position does not go negative. 文件: src/ex_getln.c, src/testdir/test_cmdline.vim Patch 8.2.5149 (after 8.2.5148) 问题: Cannot build without the +eval feature. (Tony Mechelynck) 解决方案: Add #ifdefs. 文件: src/ex_getln.c Patch 8.2.5150 问题: Read past the end of the first line with ":0;'{". 解决方案: When on line zero check the column is valid for line one. 文件: src/ex_docmd.c, src/testdir/test_cmdline.vim Patch 8.2.5151 问题: Reading beyond the end of the line with lisp indenting. 解决方案: Avoid going over the NUL at the end of the line. 文件: src/indent.c, src/testdir/test_lispwords.vim Patch 8.2.5152 问题: search() gets stuck with "c" and skip evaluates to true. 解决方案: Reset the SEARCH_START option. (closes #10608) 文件: src/evalfunc.c, src/testdir/test_syntax.vim Patch 8.2.5153 问题: "make uninstall" does not remove colors/lists. 解决方案: Add a line to the Makefile. (closes #10609) 文件: src/Makefile Patch 8.2.5154 问题: Still mentioning version8, some cosmetic issues. 解决方案: Prefer mentioning version9, cosmetic improvements. 文件: src/version.c, src/if_tcl.c, src/regexp.c, src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile Patch 8.2.5155 问题: In diff mode windows may get out of sync. (Gary Johnson) 解决方案: Avoid that the other window scrolls for 'cursorbind'. 文件: src/move.c, src/testdir/test_diffmode.vim, src/testdir/dumps/Test_diff_scroll_1.dump, src/testdir/dumps/Test_diff_scroll_2.dump Patch 8.2.5156 问题: Search timeout test often fails with FreeBSD. 解决方案: Double the maximum time. 文件: src/testdir/test_search.vim Patch 8.2.5157 问题: MS-Windows GUI: CTRL-key combinations do not always work. 解决方案: Handle special key combinations better. (closes #10613, closes #10602, closes #10579) 文件: src/gui_w32.c Patch 8.2.5158 问题: TSTP and INT signal tests are not run with valgrind. 解决方案: Sleep a bit longer. (closes #10614) 文件: src/testdir/test_signals.vim Patch 8.2.5159 (after 8.2.5157) 问题: Fix for CTRL-key combinations causes more problems than it solves. 解决方案: Roll back the change. 文件: src/gui_w32.c Patch 8.2.5160 问题: Accessing invalid memory after changing terminal size. 解决方案: Adjust cmdline_row and msg_row to the value of Rows. 文件: src/term.c Patch 8.2.5161 问题: Might still access invalid memory. 解决方案: Add extra check for negative value. 文件: src/message.c Patch 8.2.5162 问题: Reading before the start of the line with BS in Replace mode. 解决方案: Check the cursor column is more than zero. 文件: src/edit.c Patch 8.2.5163 问题: Crash when deleting buffers in diff mode. 解决方案: Recompute diffs later. Skip window without a valid buffer. 文件: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.5164 问题: Invalid memory access after diff buffer manipulations. 解决方案: Use zero offset when change removes all lines in a diff block. 文件: src/diff.c, src/testdir/test_diffmode.vim Patch 8.2.5165 问题: Import test fails because 'diffexpr' isn't reset. 解决方案: Reset 'diffexpr'. 文件: src/testdir/test_vim9_import.vim Patch 8.2.5166 问题: Test for DiffUpdated fails. 解决方案: Also accept a count of two. 文件: src/testdir/test_diffmode.vim Patch 8.2.5167 问题: get(Fn, 'name') on funcref returns special byte code. 解决方案: Use the printable name. 文件: src/evalfunc.c, src/testdir/test_getvar.vim Patch 8.2.5168 问题: Cannot build with Python 3.11. 解决方案: Adjust define for _PyObject_TypeCheck. (Zdenek Dohnal, closes #10627) 文件: src/if_python3.c Patch 8.2.5169 问题: Nested :source may use NULL pointer. 解决方案: Do not use the NULL pointer. 文件: src/eval.c, src/testdir/test_vimscript.vim Patch 8.2.5170 问题: Tiny issues. 解决方案: Tiny improvements. 文件: src/misc1.c, src/screen.c, src/vim.h Patch 8.2.5171 问题: Dependencies and proto files are outdated. 解决方案: Update dependencies and proto files. Avoid errors. 文件: src/Makefile, src/gui_w32.c, src/os_mswin.c, src/proto/buffer.pro, src/proto/cmdexpand.pro, src/proto/getchar.pro, src/proto/help.pro, src/proto/mbyte.pro, src/proto/option.pro, src/proto/screen.pro, src/proto/syntax.pro, src/proto/textformat.pro, src/proto/textobject.pro, src/proto/time.pro, src/proto/gui_x11.pro, src/proto/if_tcl.pro, src/proto/os_mswin.pro Patch 8.2.5172 问题: "make menu" still uses legacy script. 解决方案: make menu generation script use Vim9 script, fix errors. 文件: runtime/makemenu.vim vim:tw=78:ts=8:noet:ft=help:norl: