From 1ff963e15c85fa0fb2c27164dcff8e794c20e8ec Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Wed, 4 Feb 2026 15:07:40 +0000 Subject: [PATCH] runtime(doc): Update version9.txt with numbered patches Signed-off-by: Christian Brabandt --- runtime/doc/version9.txt | 10491 ++++++++++++++++++++++++++++++++++++- 1 file changed, 10490 insertions(+), 1 deletion(-) diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 48200b9024..52d086a870 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.1. Last change: 2026 Jan 07 +*version9.txt* For Vim version 9.1. Last change: 2026 Feb 04 VIM REFERENCE MANUAL by Bram Moolenaar @@ -41971,5 +41971,10494 @@ The list of patches that got included since 9.1.0. This includes all the new features, but does not include runtime file changes (syntax, indent, ftplugin, documentation, etc.) +Note: authorship and the list of changed files is left out and only visible +through `git log` for each commit. + +Patch 9.1.0001 +Problem: When closing the current window (or when moving it to a tabpage), + the previous window may refer to the new current window (`winnr() == + winnr('#')`) if that window is selected as the new current window. +Solution: Set `prevwin = NULL` when switching away from an invalid `curwin` + and the target window was the `prevwin`. (Sean Dewar) + +Patch 9.1.0002 +Problem: a closing fold expression may unexpectedly start a new fold when it + should end a fold (reported by Shota Nozaki) +Solution: if a fold hasn't started yet, do not immediately start a new fold + with level 1 (Shota Nozaki) + +Patch 9.1.0003 +Problem: Cannot build against Ruby 33 dynamically +Solution: Ruby 33 removed transient heap, so do not use rb_ary_transient + anymore, NoMethodError format changed, so update test for expected + error message (Isao Sato) + +Patch 9.1.0004 +Problem: reloading colorscheme when not changing 'background' +Solution: Check, if the background option value actually changed, + if not, return early. + +Patch 9.1.0005 +Problem: OpenVMS build does not support python3 and xterm_save +Solution: Enable python3 + xterm_save feature, fix style issues + (Zoltan Arpadffy) + +Patch 9.1.0006 +Problem: is*() and to*() function may be unsafe +Solution: Add SAFE_* macros and start using those instead + (Keith Thompson) + +Patch 9.1.0007 +Problem: can select empty inner text blocks + (laurentalacoque) +Solution: make selecting empty inner text blocks an error textobjects: Make + selecting inner empty blocks an error + +Patch 9.1.0008 +Problem: NSIS installer includes syntax test dumps + (Yegappan Lakshmanan) +Solution: Exclude syntax/testdir when creating the NSIS installer + +Patch 9.1.0009 +Problem: Cannot easily get the list of matches +Solution: Add the matchstrlist() and matchbufline() Vim script functions + (Yegappan Lakshmanan) + +Patch 9.1.0010 +Problem: Keymap completion is not available +Solution: Add keymap completion (Doug Kearns) + +Patch 9.1.0011 +Problem: regexp cannot match combining chars in collection +Solution: Check for combining characters in regex collections for the + NFA and BT Regex Engine + +Patch 9.1.0012 +Problem: regression with empty inner blocks introduced + (after v9.1.0007) +Solution: Set correct cursor position, Check for visual mode + being active (Maxim Kim) + +Patch 9.1.0013 +Problem: Modula2 filetype support lacking +Solution: Improve the Modula-2 runtime support, add additional modula2 + dialects, add compiler plugin, update syntax highlighting, + include syntax tests, update Makefiles (Doug Kearns) + +Patch 9.1.0014 +Problem: incorrect use of W_WINROW in edit.c +Solution: compare against curwin->w_height instead Remove incorrect use of + W_WINROW + +Patch 9.1.0015 +Problem: i_CTRL-R- no longer works in replace mode +Solution: delete characters in replace mode before putting, add a test, add a + bit warning into the documentation, that i_CTRL-R-P/O is not + supported in Replace mode for now + +Patch 9.1.0016 +Problem: default diff highlighting is too noisy +Solution: Link diff highlighting groups to new Added/Removed/Changed, revert + previous change (Romain Lafourcade) + +Patch 9.1.0017 +Problem: use-after-free in eval1_emsg() when an empty line follows a lambda + (by @yu3s) +Solution: only set evalarg->eval_using_cmdline = FALSE when the *arg pointer + is not null + +Patch 9.1.0018 +Problem: use of #if instead of #ifdef +Solution: use correct form of #ifdef + +Patch 9.1.0019 +Problem: cmdline may disappear when changing 'cmdheight' + (after Patch 9.0.0190, @markonm) +Solution: always re-calculate the old_p_ch value, not only + when cmdline_row was higher than expected + +Patch 9.1.0020 +Problem: Vim9: cannot compile all methods in a class +Solution: Support compiling all the methods in a class using :defcompile + (Yegappan Lakshmanan) + +Patch 9.1.0021 +Problem: i_CTRL-R- doesn't work for multibyte chars in Replace mode, + Coverity complains missing return value for u_save_cursor() +Solution: Use mb_charlen() and del_chars() instead, handle failure mode + for u_save_cursor() correctly (@zeertzjq) + +Patch 9.1.0022 +Problem: Coverity complains about improper use of negative value +Solution: Add a condition to validate that keytyped is larger or equal + to 0 + +Patch 9.1.0023 +Problem: xxd: few problems with EBCDIC for z/OS (MVS) +Solution: Fix xxd build and support ASCII and UTF-8 on z/OS (MVS) + natively, add MVS guard checks with __CHARSET_LIB, + support $LIBS in the Makefile (Igor Todorovski) + +Patch 9.1.0024 +Problem: z/OS (MVS) support can be improved +Solution: set UTF-8 as the default encoding for z/OS + +Patch 9.1.0025 +Problem: A few typos in tests and justify.vim +Solution: fix them + +Patch 9.1.0026 +Problem: win32: Windows default font lacking (@clach04) +Solution: Improve default font (Ken Takata) + +Patch 9.1.0027 +Problem: Vim is missing a foreach() func +Solution: Implement foreach({expr1}, {expr2}) function, which applies {expr2} + for each item in {expr1} without changing it (Ernie Rael) + +Patch 9.1.0028 +Problem: win32: Ctrl-D cannot be used to close a pipe +Solution: Properly detect Ctrl-D when reading from a pipe + (GuyBrush) + +Patch 9.1.0029 +Problem: Cannot act on various terminal response codes +Solution: Add the TerminalResponseAll autocommand + (Danek Duvall) + +Patch 9.1.0030 +Problem: Cannot use terminal alternate fonts (PMunch) +Solution: Support terminal alternate fonts using CSI SGR 10-20 and t_CF code + (PMunch) + +Patch 9.1.0031 +Problem: Link Error on Windows +Solution: Add ifdef HAVE_TGETENT for term_strings_not_set() + +Patch 9.1.0032 +Problem: MS-Windows installer misses keymaps (Maxim Kim) +Solution: Include keymaps in the installer archive (Ken Takata) + +Patch 9.1.0033 +Problem: Insert mode not stopped if an autocommand modifies a hidden + buffer while closing a prompt buffer. +Solution: Don't set b_prompt_insert if stop_insert_mode is already set. + (zeertzjq) + +Patch 9.1.0034 +Problem: Window may unexpectedly scroll when 'scrollbind' is set + and setting a buffer-local option using setbufvar() (Boris Staletic) +Solution: Save and restore the windows topline before opening the + popup window. + +Patch 9.1.0035 +Problem: i_CTRL-] triggers InsertCharPre +Solution: Return if CTRL-] is received. InsertCharPre is supposed to be only + used for chars to be inserted but i_CTRL-] triggers expansion and is + not inserted into the buffer (altermo) + +Patch 9.1.0036 +Problem: MS-Windows: Warning about unused variable + (after 9.1.0030, John Marriott) +Solution: Adjust #ifdef and test for HAVE_TGETENT (John Marriott) + +Patch 9.1.0037 +Problem: Calling get_breakindent_win() repeatedly when computing virtual + column, and get_breakindent_win() does a STRCMP() on the whole line + since Patch 9.0.0016. +Solution: Cache the result, since the line doesn't change. + (zeertzjq) + +Patch 9.1.0038 +Problem: Unnecessary loop in getvcol(). +Solution: Compare next char position with pos->col directly (zeertzjq). + +Patch 9.1.0039 +Problem: too vague errors for 'listchars'/'fillchars' +Solution: Include the field name in error message (zeertzjq). + +Patch 9.1.0040 +Problem: Modifying a hidden buffer still interferes with prompt buffer mode + changes. +Solution: Save and restore b_prompt_insert (zeertzjq). + +Patch 9.1.0041 +Problem: xxd -i may generate incorrect C statements (Kuratius) +Solution: xxd: Make size type returned by -i option compatible with C standard + by using type size_t instead of unsigned int (Kuratius) + +Patch 9.1.0042 +Problem: Missing test for Chuck filetype after (Christian Clason) +Solution: Add a filetype test + +Patch 9.1.0043 +Problem: ml_get: invalid lnum when :s replaces visual selection (@ropery) +Solution: substitute may decrement the number of lines in a buffer, so + validate, that the bottom lines of the visual selection + stays within the max buffer line + +Patch 9.1.0044 +Problem: po Makefiles can be improved +Solution: Improve the style of the Makefiles, update Makefile variables, + update documentation (RestorerZ) + +Patch 9.1.0045 +Problem: --remote-silent applies the wildignore option to each argument, + which may result in "E479: No match" (hebaronson) +Solution: temporarily reset 'wildignore' setting when building the :drop + command + +Patch 9.1.0046 +Problem: :drop does not re-use empty buffer (Rocco Mao) +Solution: Make :drop re-use an empty buffer (Rocco Mao) + +Patch 9.1.0047 +Problem: Things that temporarily change/restore curwin/buf (e.g: win_execute, + some autocmds) may break assumptions that curwin/buf is the cmdwin + when "cmdwin_type != 0", causing issues. +Solution: Expose the cmdwin's real win/buf and check that instead. Also try to + ensure these variables are NULL if "cmdwin_type == 0", allowing them + to be used directly in most cases without checking cmdwin_type. + (Sean Dewar). + +Patch 9.1.0048 +Problem: Autocmds triggered from opening the cmdwin (in win_split and + do_ecmd) can cause issues such as E199, as the current checks + are insufficient. +Solution: Commands executed from the cmdwin apply to the old curwin/buf, so + they should be kept in a "suspended" state; abort if they've + changed. Also abort if cmdwin/buf was tampered with, and check that + curwin is correct. Try to clean up the cmdwin buffer (only if hidden + and non-current to simplify things; the same approach is used when + closing cmdwin normally), and add a beep. (Sean Dewar) + +Patch 9.1.0049 +Problem: E95 is possible if a buffer called "[Command Line]" already exists + when opening the cmdwin. This can also happen if the cmdwin's buffer + could not be deleted when closing. +Solution: Un-name the cmdwin buffer, and give it a special name instead, + similar to what's done for quickfix buffers and for unnamed prompt + and scratch buffers. As a result, BufFilePre/Post are no longer + fired when opening the cmdwin. Add a "command" key to the dictionary + returned by getbufinfo() to differentiate the cmdwin buffer instead. + (Sean Dewar) + +Patch 9.1.0050 +Problem: Win32 Keyboard handling is sub-optimal and has many issues with + international keyboards (risa2000) (after v8.2.4807) +Solution: soft-rollback the change, allow the user to select a suitable + key-translation strategy (Anton Sharonov) + +Patch 9.1.0051 +Problem: MS-Windows: Key event test fail (after 9.1.0050) +Solution: Catch Interrupt and return Ctrl-C + +Patch 9.1.0052 +Problem: Patch 9.1.0041 causes regressions for users (Gleb + Fotengauer-Malinovskiy) +Solution: Revert 9.1.0041 and restore old behaviour + +Patch 9.1.0053 +Problem: MS-Windows: Key event test still fails +Solution: Catch more interrupts (after 9.1.0051) + +Patch 9.1.0054 +Problem: 'linebreak' may still apply to leading whitespace (VanaIgr) +Solution: Compare pointers instead of virtual columns (zeertzjq). + +Patch 9.1.0055 +Problem: formatting long lines is slow (kawaii-Code) +Solution: optimize gq (internal_format) for long lines (kawaii-Code) + +Patch 9.1.0056 +Problem: Incorrect number of trailing spaces inserted for multibyte + characters when pasting a blockwise register in blockwise visual + mode (VanaIgr) +Solution: Skip over trailing UTF-8 bytes when computing the number of trailing + spaces (VanaIgr) + +Patch 9.1.0057 +Problem: MS-Windows: Key event test still fails +Solution: Skip testing CTRL-C, since it causes an Interrupt which causes a + test failure (after 9.1.0053) + +Patch 9.1.0058 +Problem: Cannot map Super Keys in GTK UI (Casey Tucker) +Solution: Enable Super Key mappings in GTK using (Casey Tucker) + +Patch 9.1.0059 +Problem: No event is triggered before creating a window +Solution: Add the WinNewPre event (Sergey Vlasov). + +Patch 9.1.0060 +Problem: Recorded register cannot be translated using keytrans() when it + involves character search (iddqd505) +Solution: Record a K_IGNORE instead of a K_NOP (zeertzjq). + +Patch 9.1.0061 +Problem: UX of visual highlighting can be improved +Solution: Improve readibility of visual highlighting, by setting better + foreground and background colors + +Patch 9.1.0062 +Problem: Internal error when :luado/perldo/pydo etc delete lines +Solution: Test that the line is still valid line number (zeertzjq). + +Patch 9.1.0063 +Problem: GTK code can be improved +Solution: Improve GTK code for initial Wayland support (lilydjwg). + +Patch 9.1.0064 +Problem: No Wayland support +Solution: Add Wayland UI support (lilydjwg). + +Patch 9.1.0065 +Problem: Segfault with CompleteChanged autocommand (markonm) +Solution: Test match->cp_prev for being NULL before accessing it + +Patch 9.1.0066 +Problem: gcc complains about use of uninitialized var (Tony Mechelynck, after + 9.1.0064) +Solution: initialize button to silence gcc + +Patch 9.1.0067 +Problem: gcc still complains about use of uninitialized var (Tony Mechelynck, + after 9.1.0064/9.1.0066) +Solution: This time init the correct variable + +Patch 9.1.0068 +Problem: Visual highlighting can still be improved +Solution: Update Visual highlighting for 8 color terminals, use uniform grey + highlighting for dark and light bg (Maxim Kim) + +Patch 9.1.0069 +Problem: ScreenLines may not be correctly initialized, causing hang + (Olaf Seibert, after 9.0.0220) +Solution: always initialize ScreneLines when allocating a screen (Olaf + Seibert) + +Patch 9.1.0070 +Problem: CI: testsuite not run on M1 Mac +Solution: Make it run on gh runners for M1, disable failing tests for now, + until we figure the problem with the failings tests out (rhysd) + +Patch 9.1.0071 +Problem: Need a diff() Vim script function +Solution: Add the diff() Vim script function using the xdiff internal diff + library, add support for "unified" and "indices" mode (Yegappan + Lakshmanan). + +Patch 9.1.0072 +Problem: Not able to build without FEAT_DIFF (John Marriott, after 9.1.0071) +Solution: Adjust #ifdefs (Yegappan Lakshmanan) + +Patch 9.1.0073 +Problem: Looping over modifier_keys_table[] unnecessarily with only + MOD_MASK_ALT or MOD_MASK_CMD, as modifier_keys_table[] only contains + MOD_MASK_SHIFT and MOD_MASK_CTRL, and the loop won't do anything. +Solution: Remove MOD_MASK_ALT and MOD_MASK_CMD from the condition (zeertzjq). + +Patch 9.1.0074 +Problem: did_set_breakat() should be in optionstr.c as 'breakat' is a string + option. +Solution: Move did_set_breakat() to optionstr.c (zeertzjq). + +Patch 9.1.0075 +Problem: insert completion not correct when adding new leader +Solution: Reset compl_curr_match to compl_shown_match (glepnir). + +Patch 9.1.0076 +Problem: luau config file not detected (lopy) +Solution: Detect it as jsonc (lopy) + +Patch 9.1.0077 +Problem: The call to redraw_for_cursorline() in nv_mousescroll() is + unnecessary because redraw_for_cursorline() only sets redraw type to + UPD_VALID, and all code paths in do_mousescroll() already set redraw + type to at least UPD_VALID. +Solution: Remove call to redraw_for_cursorline() in nv_mousescroll() + (zeertzjq). + +Patch 9.1.0078 +Problem: GTK3: using wrong style for pre-edit area +Solution: remove the widget name, adjust css (lilydjwg). + +Patch 9.1.0079 +Problem: LineNrAbove and LineNrBelow background wrong on wrapped lines. +Solution: Update number column also for wrapped part of a line (zeertzjq). + +Patch 9.1.0080 +Problem: unexpected error for modifying final list using += operator + (Ernie Rael) +Solution: Allow List value modification of a final variable using += + operator (Yegappan Lakshmanan) + +Patch 9.1.0081 +Problem: X11 mouse-scrolling stutters (Ron Aaron, after 9.1.0064) +Solution: Handle GDK_SCROLL_SMOOTH fractional distance events + (lilydjwg) + +Patch 9.1.0082 +Problem: Redrawing can be improved when deleting lines with 'cursorline'. +Solution: Use smarter invalidation and adjustment. Remove unnecessary + UPD_VALID as it is already set at the top of the loop. Make the + test for #4862 fail without the fix (zeertzjq). + +Patch 9.1.0083 +Problem: Redrawing can be improved when inserting/deleting lines with + 'number'. +Solution: Only redraw the number column of lines below changed lines. Add a + test as this wasn't previously tested (zeertzjq). + +Patch 9.1.0084 +Problem: Visual hl wrong when it ends before multibyte 'showbreak' (lacygoil) +Solution: Use vcol_sbr instead of adding n_extra (zeertzjq). + +Patch 9.1.0085 +Problem: X11 scroll size changes after accessing clipboard (Ernie Rael) +Solution: use GDK_SCROLL_MASK for X11 and GDK_SMOOTH_SCROLL_MASK for + Wayland (lilydjwg). + +Patch 9.1.0086 +Problem: Problem when scrolling using slow touchpads scroll event +Solution: Better ways to determine if a smooth scroll has ended (when + available) (lilydjwg). + +Patch 9.1.0087 +Problem: Restore lastused_tabpage too early in do_arg_all() function it + will change later in the function. +Solution: Restore lastused_tabpage a bit later, when being done with + tabpages (glepnir). + +Patch 9.1.0088 +Problem: TextChanged not triggered for :norm! commands (machakann, after + v9.0.2031) +Solution: Only reset curbuf->b_last_changedtick if TextChangedI was triggered + in insert mode (and not blocked) + +Patch 9.1.0089 +Problem: qsort() comparison functions should be transitive +Solution: Do not subtract values, but rather use explicit comparisons + Improve qsort() comparison functions + +Patch 9.1.0090 +Problem: Assigning wrong colors when parsing terminal OSC response +Solution: Correctly assign Green and Blue from the terminal response + (Maxim Kim) + +Patch 9.1.0091 +Problem: Syntax test fails when run with non C locale +Solution: Run syntax tests with C locale, clean up Xtestscript file, + strip environment variables from GetVimCommand() (h-east). + +Patch 9.1.0092 +Problem: Compiler warning for missing type in scroll_event() (chdiza) +Solution: Declare display_type explicitly as integer + +Patch 9.1.0093 +Problem: Still a qsort() comparison function fuzzy_match_item_compare() + that returns result of subtraction (after 9.1.0089). +Solution: Use an explicit comparison instead of subtraction (zeertzjq). + +Patch 9.1.0094 +Problem: xxd: buffer-overflow when writing color output +Solution: properly account for the color escape sequences and adjust LLEN + macro (Goffredo Baroncelli) + +Patch 9.1.0095 +Problem: tests: test_restricted() fails (after: v9.1.0091) +Solution: Add a space before the pipecmd and the actual Vim command to run + +Patch 9.1.0096 +Problem: diff() function uses 'diffexpr' (rickhowe) +Solution: Make diff() always use internal diff(), add support for unified diff + context length, sort diff() options in help (Yegappan Lakshmanan) + +Patch 9.1.0097 +Problem: 'breakindent' behaves inconsistently with 'list' and splits. +Solution: Use 'listchars' from the correct window and handle caching properly. + Move cheaper comparisons to the top (zeertzjq). + +Patch 9.1.0098 +Problem: CompletionChanged not triggered when new leader added causing + no matching item in the completion menu +Solution: When completion is active but no items matched still trigger + CompletChanged event (glepnir). + +Patch 9.1.0099 +Problem: Not able to use diff() with 'diffexpr' (rickhowe, after v9.1.0096) +Solution: Use a default context length of 0, update diff() help text, + add a test for using diff() with 'diffexpr' (Yegappan Lakshmanan). + +Patch 9.1.0100 +Problem: When undoing with 'spell', redrawWinline() is called after + changed_lines(), while later win_update() sets redraw type to + UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are + still valid. +Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting + lines after parts of window has pending redraw, i.e., when + changed_lines() is called after redrawWinline() (zeertzjq). + +Patch 9.1.0101 +Problem: upper-case of ß should be U+1E9E (CAPITAL LETTER SHARP S) + (fenuks) +Solution: Make gU, ~ and g~ convert the U+00DF LATIN SMALL LETTER SHARP S (ß) + to U+1E9E LATIN CAPITAL LETTER SHARP S (ẞ), update tests + (glepnir) + +Patch 9.1.0102 +Problem: settabvar() may change the last accessed tabpage. +Solution: Save and restore lastused_tabpage (zeertzjq). + +Patch 9.1.0103 +Problem: 'breakindentopt' "min" works incorrectly with 'signcolumn'. +Solution: Use win_col_off() and win_col_off2() (zeertzjq). + +Patch 9.1.0104 +Problem: Linking fails with -lto because of PERL_CFLAGS (Zoltan Toth) +Solution: Filter out -flto argument from Perl CFLAGS. + +Patch 9.1.0105 +Problem: Style: typos found +Solution: correct them (zeertzjq). + +Patch 9.1.0106 +Problem: Visual highlight hard to read with 'termguicolors' (Maxim Kim) +Solution: Set Visual GUI foreground to black (with background=light) + and lightgrey (with background=dark) (Maxim Kim). + +Patch 9.1.0107 +Problem: CI: Fix MacOS-14 tests (after 9.1.0070) +Solution: Re-enable sound tests by granting Mic access, disable + Test_diff_screen because of buggy MacOS diff (non GNU version), + re-enable Test_term_gettitle() (Yee Cheng Chin) + +Patch 9.1.0108 +Problem: filetype: no support for dtso files +Solution: Add detection for *.dtso files as dts file type (Markus + Schneider-Pargmann) + +Patch 9.1.0109 +Problem: filetype: no support for its files +Solution: Add detection for *.its files as dts file type (Brandon Maier) + +Patch 9.1.0110 +Problem: No support for Config.in filetype +Solution: filetype: add 'Config.in' filetype detection + +Patch 9.1.0111 +Problem: filetype: no support for bats files +Solution: Add .bats filetype support + +Patch 9.1.0112 +Problem: When the quickfix buffer has been modified an autocommand may + invalidate the undo stack (kawarimidoll) +Solution: When clearing the quickfix buffer, also wipe the undo stack + +Patch 9.1.0113 +Problem: duplicate code when cleaning undo stack +Solution: refactor undo cleanup into a single public function + +Patch 9.1.0114 +Problem: Setting some options changes curswant unnecessarily. +Solution: Add a P_HLONLY flag that prevents changing curswant (zeertzjq). + +Patch 9.1.0115 +Problem: Using freed memory with full tag stack and user data + (Konstantin Khlebnikov) +Solution: Clear the user data pointer of the newest entry (zeertzjq, + Konstantin Khlebnikov). + +Patch 9.1.0116 +Problem: win_split_ins has no check for E36 when moving an existing + window +Solution: check for room and fix the issues in f_win_splitmove() + (Sean Dewar) + +Patch 9.1.0117 +Problem: win_splitmove fires WinNewPre and possibly WinNew when moving + windows, even though no new windows are created. +Solution: Don't fire WinNew and WinNewPre when inserting an existing window, + even if it isn't the current window. Improve the accuracy of related + documentation. (Sean Dewar) + +Patch 9.1.0118 +Problem: saving and restoring all frames to split-move is overkill now + that WinNewPre is not fired when split-moving. +Solution: defer the flattening of frames until win_split_ins begins + reorganising them, and attempt to restore the layout by undoing our + changes. (Sean Dewar) + +Patch 9.1.0119 +Problem: can switch windows while textlocked via f_win_gotoid and + f_win_splitmove (which also allows switching in the cmdwin). +Solution: Check text_or_buf_locked in f_win_splitmove() (Sean Dewar) + +Patch 9.1.0120 +Problem: hard to get visual region using Vim script +Solution: Add getregion() Vim script function (Shougo Matsushita, Jakub + Łuczyński) + +Patch 9.1.0121 +Problem: infinite loop in win_update with 'smoothscroll' set when + window width is equal to textoff, or signed integer overflow + if smaller. +Solution: Don't revalidate wp->w_skipcol in that case, as no buffer text + is being shown. (Sean Dewar) + +Patch 9.1.0122 +Problem: Some minor issues with the getregion() function +Solution: Fix examples in the help, use OP_NOP op_type and MBLOCK + as motion_type in f_getreg(), update vim syntax to for getregion() + (Maxim Kim) + +Patch 9.1.0123 +Problem: MS-Windows: system() may deadlock when calling binaries that + expect stdin +Solution: Ignore the SHELL_EXPAND flag (GuyBrush) + +Patch 9.1.0124 +Problem: Virtual text with text_align 'right'/'below' wasn't being used when + a non-virtual text property overlaps with the end of the line. This + was because the non-virtual text property had a higher priority, + preventing the virtual text from being used. +Solution: Fix the sorting of text properties so virtual text properties have a + higher priority than non-virtual text properties (Dylan + Thacker-Smith). + +Patch 9.1.0125 +Problem: unused init of text_prop_idxs in win_line +Solution: Remove it, fix typo (Dylan Thacker-Smith). + +Patch 9.1.0126 +Problem: Internal error when passing mark in another buffer to getregion(). +Solution: Don't allow marks in another buffer (zeertzjq) + +Patch 9.1.0127 +Problem: Naming a non-pointer variable "oap" is strange. +Solution: Rename it to "oa". Also prevent using freed memory in case of memory + allocation failure (zeertzjq). + +Patch 9.1.0128 +Problem: win_gotoid() checks for textlock and other things when switching + to a window that is already current (after v9.1.0119) +Solution: return early with success when attempting to switch to curwin + (Sean Dewar) + +Patch 9.1.0129 +Problem: Virtual text with text_wrap 'wrap' was effectively being truncated + by a break conditional on the EOL list character being added to the + screen line. (BigPeet) +Solution: Remove the condition that was leading to the early break and instead + fix a similar but incorrectly written outer condition that checks if + there is more to add at the end of the screen line. (Dylan + Thacker-Smith) + +Patch 9.1.0130 +Problem: heap-use-after-free in win_splitmove if Enter/Leave autocommands + from win_split_ins immediately closes "wp". +Solution: check that "wp" is valid after win_split_ins (Sean Dewar). + +Patch 9.1.0131 +Problem: buffer-completion code too complicated and does not always find all + matches (irisjae) +Solution: do not try to anchor pattern to beginning of line or + directory-separator, always return all matches + +Patch 9.1.0132 +Problem: using "C" and 've=all' set, doesn't include composing chars when + changing a line, keeps the composing chars for whatever is typed + afterwards. +Solution: Use mb_head_off() and mb_ptr2len() instead of mb_tail_off(). + (zeertzjq) + +Patch 9.1.0133 +Problem: font ligatures don't render correctly in the Win32 GUI-version of + gvim even when set rop=type:directx is used. Setting guiligatures + also doesn't make any difference. This leads to broken font + ligatures when the cursor passes through them. It does not recover + from this, and they remain broken until you re-render the whole + buffer (e.g. by using Ctrl+L). +Solution: The problem is that we only re-draw the current and previous + character in gui_undraw_cursor() and only have the special case for + GTK when it comes to rendering ligatures. So let's enable + gui_adjust_undraw_cursor_for_ligatures() to also happen for Win32 + GUI if guiligatures is setup correctly (all this does is expand the + range of gui_undraw_cursor() with ligature characters). + +Patch 9.1.0134 +Problem: Test_term_gettitle() is flaky on MacOS 14 and Github runners +Solution: Skip the test on Github CI + +Patch 9.1.0135 +Problem: Insufficient testing for 'delcombine'. +Solution: Add test for both Normal and Insert modes without Arabic (zeertzjq). + +Patch 9.1.0136 +Problem: Vim9: need more test for exists() +Solution: Add test for exists() with class/objct variables and methods + (Yegappan Lakshmanan) + +Patch 9.1.0137 +Problem: in cmdline mode doesn't delete composing chars +Solution: Use mb_head_off() and mb_ptr2len() (zeertzjq). + +Patch 9.1.0138 +Problem: too many STRLEN calls when getting a memline +Solution: Optimize calls to STRLEN(), add a few functions in memline.c + that return the byte length instead of relying on STRLEN() (John + Marriott). + +Patch 9.1.0139 +Problem: MS-Windows: ligatures map cleared on startup +Solution: Don't clear the ligatures_map, if the guiligatures option has + already been set (Erik S. V. Jansson) + +Patch 9.1.0140 +Problem: The cursor screen row was incorrectly being calculated when the + cursor follows a 1 character text_align 'below' virtual text line, + resulting in the cursor being shown on the wrong line. This was + caused by a cell size of 2 instead of 1 being used for the EOL + character, which propagated to the calculation of space for putting + the 'below' virtual text on its own line. (rickhowe) +Solution: Fix the size used for the EOL character in calculating the cursor's + screen position (Dylan Thacker-Smith). + +Patch 9.1.0141 +Problem: Put in Visual mode wrong if it replaces fold marker. +Solution: Temporarily disable folding during put in Visual mode (zeertzjq). + +Patch 9.1.0142 +Problem: getregion() can be improved (after v9.1.120) +Solution: change getregion() implementation to use pos as lists and one + optional {opt} dictionary (Shougo Matsushita) + +Patch 9.1.0143 +Problem: [security]: autocmd cause use-after-free in set_curbuf() + (kawarimidoll) +Solution: check side-effect of BufLeave autocommand, when the number + of windows changed, close windows containing buffers that will + be wiped, if curbuf changed unexpectedly make sure b_nwindows + is decremented otherwise it cannot be wiped + +Patch 9.1.0144 +Problem: getregion() needs more tests +Solution: Run the getregion() test in both the legacy and Vim9 contexts + (Yegappan Lakshmanan) + +Patch 9.1.0145 +Problem: the amount of available space (v:echospace) on the command line is + not correct when showcmdloc is drawn into the statusline or tabline. +Solution: only add SHOWCMD_COLS to the shown command column when 'showcmdloc' + is set to last (Sam-programs) + +Patch 9.1.0146 +Problem: v:echospace wrong after setting invalid value to 'showcmdloc'. +Solution: Only call comp_col() if value is valid (zeertzjq). + +Patch 9.1.0147 +Problem: Cannot keep a buffer focused in a window (Amit Levy) +Solution: Add the 'winfixbuf' window-local option (Colin Kennedy). + +Patch 9.1.0148 +Problem: Vim9: can't call internal methods with objects +Solution: Add support for empty(), len() and string() function calls for + objects (Yegappan Lakshmanan) + +Patch 9.1.0149 +Problem: qf_goto_win_with_qfl_file may check if prevwin has 'winfixbuf' + set without checking if it's valid first. +Solution: Reverse the condition. Add a test, a modeline, and a missing + CheckFeature. (Searn Dewar) + +Patch 9.1.0150 +Problem: several minor 'winfixbuf' issues exist, mostly relating to the + quickfix list +Solution: address them and adjust tests. Retab and reflow a few things too. + (Sean Dewar) + +Patch 9.1.0151 +Problem: ml_get_buf_len() does not consider text properties (zeertzj) +Solution: Store text length excluding text properties length + in addition in the memline + +Patch 9.1.0152 +Problem: Coverity complains about ignoring return value of win_split() + (after v9.1.150) +Solution: Check if win_split() failed, add winfixbuf.res to Makefile + +Patch 9.1.0153 +Problem: Text properties corrupted with fo+=aw and backspace +Solution: Allocate line and move text properties (zeertzjq). + +Patch 9.1.0154 +Problem: shm=F not respected when reloading buffer with 'autoread' +Solution: Check SHM_FILEINFO in buf_check_timestamp() (Shougo Matsushita). + +Patch 9.1.0155 +Problem: can only call getregion() for current buffer +Solution: Allow to retrieve selections from different buffers (Shougo + Matsushita). + +Patch 9.1.0156 +Problem: may not be clear why failing to split causes an ":Xdo" command to + abort if 'wfb' is set. +Solution: Do not return immediately if win_split fails, so E1513 is still + given. Expect both errors in the test. Also fix tests to pass CI + (Sean Dewar). + +Patch 9.1.0157 +Problem: Duplicate assignment in f_getregion(). +Solution: Remove the duplicate assignment. Also improve getregion() docs + wording and fix an unrelated typo (zeertzjq). + +Patch 9.1.0158 +Problem: 'shortmess' "F" flag doesn't work properly with 'autoread' + (after 9.1.0154) +Solution: Hide the file info message instead of the warning dialog + (zeertzjq) + +Patch 9.1.0159 +Problem: Crash in WinClosed after BufUnload closes other windows +Solution: Don't trigger WinClosed if the buffer is NULL (zeertzjq). + + +Patch 9.1.0160 +Problem: Add support for using a class type of itself in an object method + (thinca) +Solution: Vim9: Add support for using a class type of itself in an + object method (Yegappan Lakshmanan) + +Patch 9.1.0161 +Problem: expand() removes a slash after an environment variable that ends + with a colon on Windows. +Solution: Check the correct char for a colon (zeertzjq) + +Patch 9.1.0162 +Problem: Problem with writing extended attributes on failure +Solution: Change return type to ssize_t and check listxattr's return + value correctly on failure (Paul Tagliamonte) + +Patch 9.1.0163 +Problem: Calling STRLEN() to compute ml_line_textlen when not needed. +Solution: Use 0 when STRLEN() will be required and call STRLEN() later. + (zeertzjq) + +Patch 9.1.0164 +Problem: Internal error or crash when passing invalid position to + getregion(). +Solution: Give an error for invalid position (zeertzjq). + +Patch 9.1.0165 +Problem: Vim9: Importing an autoload imported script fails + (Song-Tianxiang) +Solution: Return the script ID in this case (Yegappan Lakshmanan). + +Patch 9.1.0166 +Problem: Internal error with blockwise getregion() in another buffer +Solution: Also change curwin->w_buffer when changing curbuf (zeertzjq). + +Patch 9.1.0167 +Problem: Changing buffer in another window using win_execute() causes + it to show matchparen (after 9.0.0969). +Solution: Delay highlighting with SafeState in BufWinEnter (zeertzjq). + +Patch 9.1.0168 +Problem: too many STRLEN() calls +Solution: Make use of ml_get_len() calls instead (John Marriott). + +Patch 9.1.0169 +Problem: current window number returned by tabpagewinnr may be outdated when + called from win_execute for the original tabpage. +Solution: update the original tabpage's tp_curwin in switch_win; use + {un}use_tabpage instead. Don't do it in restore_win to ensure + tp_curwin of the temporarily visited tabpage is unchanged from + switch_win visiting it, as before. (Sean Dewar) + +Patch 9.1.0170 +Problem: more places exist where curwin == prevwin, and it may even be + expected in some cases. +Solution: revert v9.1.0001, but document that it's possible instead. + (Sean Dewar) + +Patch 9.1.0171 +Problem: small improvements can be made to split-move related functions. +Solution: apply them (Sean Dewar): + +Patch 9.1.0172 +Problem: More code can use ml_get_buf_len() instead of STRLEN(). +Solution: Change more STRLEN() calls to ml_get_buf_len(). Also do not + set ml_line_textlen in ml_replace_len() if "has_props" is set, + because "len_arg" also includes the size of text properties in + that case (zeertzjq). + +Patch 9.1.0173 +Problem: msgfmt ver. 0.22 forcibly converts text to UTF-8 +Solution: use '--no-convert' if msgfmt supports it. Add a configure + check for the msgfmt version (RestorerZ). + +Patch 9.1.0174 +Problem: 'cursorline' and 'wincolor' highlight missing with concealed and + wrapped lines. +Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols. + (zeertzjq) + +Patch 9.1.0175 +Problem: winframe functions incorrectly recompute window positions if + the altframe wasn't adjacent to the closed frame, which is + possible if adjacent windows had 'winfix{width,height}' set. +Solution: recompute for windows within the parent of the altframe and + closed frame. Skip this (as before) if the altframe was + top/left, but only if adjacent to the closed frame, as + positions won't change in that case. Also correct the return + value documentation for win_screenpos. (Sean Dewar) + +Patch 9.1.0176 +Problem: Cursor column wrong with 'virtualedit' and conceal. +Solution: Correct cursor column at end of line if never reached (zeertzjq). + +Patch 9.1.0177 +Problem: Coverity reports dead code. +Solution: Remove the dead code. Also fix a mistake in ml_get_pos_len() + and update some comments (zeertzjq). + +Patch 9.1.0178 +Problem: E1513 might be confusing (Christoph Thoma) +Solution: Reword error message, fix test to not depend on the actual message. + +Patch 9.1.0179 +Problem: 'wincolor' highlight missing with "below" virtual text. +Solution: Subtract n_attr_skip from n_attr. Combine 'wincolor' with other + highlights when 'nowrap' is set (zeertzjq). + +Patch 9.1.0180 +Problem: Cursor pos wrong when double-width chars are concealed. +Solution: Advance one more virtual column for a double-width char. Run some + tests with both 'wrap' and 'nowrap' (zeertzjq). + +Patch 9.1.0181 +Problem: no overflow check for string formatting +Solution: Check message formatting function for overflow (Chris van Willegen). + +Patch 9.1.0182 +Problem: Can define function with invalid name inside 'formatexpr'. +Solution: Use goto instead of checking for did_emsg later (zeertzjq). + +Patch 9.1.0183 +Problem: Wrong display or screenpos() result when toggling diff mode. +Solution: Reset w_skipcol when disabling 'wrap'. Reset w_leftcol when + enabling 'wrap' (zeertzjq). + +Patch 9.1.0184 +Problem: Cursor position wrong when clicking with conceal and wrap. +Solution: Use the virtual column of the last char for ScreenCols[] in + boguscols. Remove use of MAXCOL in ScreenCols[]. Rename + third argument of wlv_screen_line() to "clear_end" as that's + clearer what it does (zeertzjq). + +Patch 9.1.0185 +Problem: 'wincolor' highlight missing with 'rightleft', "below" virtual + text and 'nowrap'. +Solution: Handle 'rightleft' in draw_screen_line() (zeertzjq). + +Patch 9.1.0186 +Problem: Wrong cursor position when clicking after end of line with + 'rightleft', 'virtualedit' and conceal. +Solution: Set values in ScreenCols[] also with SLF_RIGHTLEFT. Also fix + off-by-one cursor position with 'colorcolumn' (zeertzjq). + +Patch 9.1.0187 +Problem: Dafny files are not recognized. +Solution: Recognize *.dfy files as filetype "dafny" (zeertzjq). + +Patch 9.1.0188 +Problem: Vento files are not recognized. +Solution: Recognize *.vto files as filetype "vento" (wrapperup) + +Patch 9.1.0189 +Problem: Memory leak with "above" virtual text and 'relativenumber'. +Solution: Free "text_props" and "text_prop_idxs" before returning. + Also fix off-by-one error causing line number to be drawn + beyond end of window (zeertzjq). + +Patch 9.1.0190 +Problem: complete_info() returns wrong order of items (after v9.0.2018) +Solution: Revert Patch v9.0.2018 (Girish Palya) + +Patch 9.1.0191 +Problem: Installer does not remove all files +Solution: Update installer and delete all files on uninstall update Sodium + library dependency, update Readme (RestorerZ) + +Patch 9.1.0192 +Problem: :drop tries to :rewind the argumentlist, which results in E37 + (after v9.1.0046) +Solution: Instead of calling ex_rewind(), call open_buffer() only when + re-using the initial empty buffer + +Patch 9.1.0193 +Problem: May leak memory in completion when ga_grow() fails. +Solution: Free "wca" when ga_grow() fails (zeertzjq). + +Patch 9.1.0194 +Problem: gcc complains about uninitialized var (Tony Mechelynck) +Solution: Initialize to NULL + +Patch 9.1.0195 +Problem: memleak with ex_drop(), NULL dereference (zeertzjq) +Solution: Revert back to ex_rewind(), use curbuf instead of buf + +Patch 9.1.0196 +Problem: filetype: support for gnuplot files is lacking +Solution: Also detect *.gnuplot files (RobbiZ98). + +Patch 9.1.0197 +Problem: Vim9: problem evaluating negated boolean logic (lxhillwind) +Solution: Don't clear the first value on short circuit evaluation + (Yegappan Lakshmanan) + +Patch 9.1.0198 +Problem: Vim9: compound operators broken for lambdas in an object + (girishji) +Solution: When using an object from the outer scope, use the LOADOUTER + instruction to load the object (Yegappan Lakshmanan). + +Patch 9.1.0199 +Problem: Not enough tests for the slice() function. +Solution: Test with multibyte chars, and in both Legacy and Vim9 script. + Update docs to be clearer about how it treats composing chars + (zeertzjq). + +Patch 9.1.0200 +Problem: `gj`/`gk` was updating the desired cursor virtual column to + the outer virtual text, even though the actual cursor position + was moved to not be on the virtual text, leading the need to + do an extra `gj`/`gk` to move past each virtual text line (rickhowe). +Solution: Exclude the outer virtual text when getting the line length + for moving the cursor with `gj`/`gk`, so that no extra movement is + needed to skip over virtual text lines (Dylan Thacker-Smith). + +Patch 9.1.0201 +Problem: `gM` would include outer virtual text and its padding when + getting the line length used to calculate the middle of the + line, putting the cursor much closer to virtual text lines. +Solution: Exclude outer virtual text in getting the line length for + `gM`, so that virtual text doesn't influence where the cursor + is moved to (Dylan Thacker-Smith). + +Patch 9.1.0202 +Problem: leaking memory in add_user() (LuMingYinDetect) +Solution: Free user_copy pointer instead of the user ptr + +Patch 9.1.0203 +Problem: build-error on GNU HURD +Solution: Define _XOPEN_SOURCE like for Android and Cygwin + (James McCoy) + +Patch 9.1.0204 +Problem: Backspace inserts spaces with virtual text and 'smarttab'. +Solution: Ignore virtual text and wrapping when backspacing (zeertzjq). + +Patch 9.1.0205 +Problem: Cannot use modifiers before :-Ntabmove. +Solution: Check backwards from the command instead of checking from the start + of the command line. Slightly adjust docs to make them more + consistent (zeertzjq). + +Patch 9.1.0206 +Problem: unused display_text_first boolean var in win_line() +Solution: Remove unused display_text_first boolean variable + (Dylan Thacker-Smith) + +Patch 9.1.0207 +Problem: No autocommand when writing session file +Solution: Add SessionWritePost autocommand (Colin Kennedy). + +Patch 9.1.0208 +Problem: winfixbuf does not allow to re-edit current buffer + (Tim Pope, after v9.1.0147) +Solution: Explicitly allow :e even when 'winfixbuf' is set, + since it just re-loads the current buffer (Colin Kennedy). + +Patch 9.1.0209 +Problem: leaking memory in exe_newdict() on error (LuMingYinDetect) +Solution: free allocated dict if GA_GROW_FALIS() + +Patch 9.1.0210 +Problem: Motif: leaking memory when mui_mch_dialog() fails (LuMingYinDetect) +Solution: When allocating the label using the XmStringCreateLtoR() + function fails, before returning also free the allocated + buttons pointer. + +Patch 9.1.0211 +Problem: Page-wise scrolling with Ctrl-F/Ctrl-B implements it's own logic to + change the topline and cursor. In doing so, skipcol is not handled + properly for 'smoothscroll', and virtual lines. +Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying backward + compatible as much as possible. + +Patch 9.1.0212 +Problem: CI: MS-Windows fails in test_winfixbuf (after v9.1.208) +Solution: Skip Ms-Windows for now, fix style + +Patch 9.1.0213 +Problem: CI: MS-Windows fails in test_winfixbuf (after v9.1.208) +Solution: Instead of skipping the test, write the file so it exists on disk, + to verify that MS-Windows short filename expansion is successful. + (Sean Dewar) + +Patch 9.1.0214 +Problem: Duplicate condition in win_lbr_chartabsize(). +Solution: Remove the duplicate condition, as it's already checked above. + (zeertzjq) + +Patch 9.1.0215 +Problem: Page-wise scrolling with Ctrl-D/Ctrl-U implements + it's own logic to change the topline and cursor. + More logic than necessary for scrolling with Ctrl-F/Ctrl-B + was removed in Patch 9.1.0211. +Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while + staying backward compatible as much as possible. + Restore some of the logic that determined how many lines will + be scrolled (Luuk van Baal) + +Patch 9.1.0216 +Problem: Error on exit with EXITFREE and 'winfixbuf'. +Solution: Handle DT_FREE before checking for 'winfixbuf' (zeertzjq). + +Patch 9.1.0217 +Problem: regexp: verymagic cannot match before/after a mark +Solution: Correctly check for the very magic check (Julio B) + +Patch 9.1.0218 +Problem: Unnecessary multiplications in backspace code, as "col / ts * ts" is + the same as "col - col % ts". +Solution: Change "col / ts * ts" to "col - col % ts". Adjust the loop + and the comments ins_bs() to be easier to understand. Update + tests to reset 'smarttab' properly (zeertzjq). + +Patch 9.1.0219 +Problem: No enum support +Solution: Implement enums for Vim9 script (Yegappan Lakshmanan) + +Patch 9.1.0220 +Problem: Typos in code and tests. +Solution: Fix typos (zeertzjq). + +Patch 9.1.0221 +Problem: The if branch to set `text_prop_follows` was both checking if + it was at the end of the buffer text line or if it was at the + end of the screen line, but the former being true skipped + a guard condition in the latter to only consider 'below' + virtual text to follow. `text_prop_follows` being improperly + set caused it to skip a conditional block to break at the end + as well as one to move `ptr` to the end of the text line, + while repeated for each following line of the window. +Solution: Move the check for whether 'below' virtual text should follow + so it is also used when at the end of the buffer text line. + (Dylan Thacker-Smith) + +Patch 9.1.0222 +Problem: When a line is truncated just before 'after'/'right' virtual + text and the line also has 'below' virtual text, then the + 'below' virtual text would not be displayed, depending on the + order these text properties were added. +Solution: In the loop to make text properties active, skip instead of + break for 'after'/'right' virtual text properties that are + ignored due to truncation, so following 'below' text properties can + still be made active. Similarly, a loop is needed to determine if a + text property follows at the end of the screen. (Dylan + Thacker-Smith) + +Patch 9.1.0223 +Problem: There are two dense conditions with duplication that needs to + be kept in sync between the while loop break condition and the + condition to skip certain text properties. +Solution: Refactor the loop by moving while loop conditions into the body of + the while loop so they can be shared with skip conditions. `break` + and an `active` variable are used to handle the outcome of these + merged conditions (Dylan Thacker-Smith). + +Patch 9.1.0224 +Problem: If a line has "right" & "below" virtual text properties, where the + "below" property may be stored first due to lack of ordering between + them, then the line height is calculated to be 1 more and causes the + cursor to far over the line. +Solution: Remove some unnecessary setting of a `next_right_goes_below = TRUE` + flag for "below" and "above" text properties. (Dylan Thacker-Smith) + +Patch 9.1.0225 +Problem: test_matchparen not run in CI +Solution: add test_matchparen.res to NEW_TESTS_RES in Makefile, update changed + highlighting dump from v9.1.61 + +Patch 9.1.0226 +Problem: Not able to assign enum values to an enum static variable + (zzzyxwvut) +Solution: Make it work (Yegappan Lakshmanan) + +Patch 9.1.0227 +Problem: Recording may still be wrong in Select mode (after 8.2.3993). +Solution: Make sure a character isn't split between two buffer blocks + (zeertzjq). + +Patch 9.1.0228 +Problem: Two unrelated things are tested by a single test. +Solution: Split it into two, restoring the old Test_brace_single_line(). + Add missing cleanup to some tests (zeertzjq). + +Patch 9.1.0229 +Problem: Error E877 is not translated (RestorerZ) +Solution: Declare the error with N_ to mark it as translatable, add _() + around the error message in regexp_nfa.c + +Patch 9.1.0230 +Problem: TextChanged autocommand not triggered under some circumstances + (Sergey Vlasov) +Solution: Trigger TextChanged when TextChangedI has not been triggered + +Patch 9.1.0231 +Problem: Filetype may be undetected when a SwapExists autocommand sets + filetype in another buffer. +Solution: Make filetype detection state buffer-specific. Also fix a + similar problem for 'modified' (zeertzjq). + +Patch 9.1.0232 +Problem: Conceal test fails when rightleft feature is disabled. +Solution: Skip test if rightleft feature is missing (Julio B). + +Patch 9.1.0233 +Problem: Vim9: string() output of enum is problematic +Solution: Make string() output for an enum consistent with that of a + regular object (Yegappan Lakshmanan). + +Patch 9.1.0234 +Problem: filetype: support for Intel HEX files is lacking +Solution: Add more file extensions that are typical for Intel HEX files + (Wu, Zhenyu) + +Patch 9.1.0235 +Problem: filetype: supertux files are not recognized +Solution: Supertux uses lisp to store hotkeys in config and game stage + information, so add a pattern for supertux files (Wu, Zhenyu). + +Patch 9.1.0236 +Problem: filetype: texlua files are not recognized +Solution: Add '*.tlu' pattern for texlua files (Wu, Zhenyu) + +Patch 9.1.0237 +Problem: filetype: mplstyle files are not recognized +Solution: Detect '*.mplstyle' files as yaml (Wu, Zhenyu) + +Patch 9.1.0238 +Problem: filetype: jupyterlab and sublime config are not recognized +Solution: Detect jupyterlab and sublime config files as json (Wu, Zhenyu). + +Patch 9.1.0239 +Problem: filetype: gnuplot history files are not recognised +Solution: detect .gnuplot_history files as gnuplot (Wu, Zhenyu). + +Patch 9.1.0240 +Problem: filetype: some python tools config files are not recognized +Solution: Detect config files for setuptools, pudb, coverage as dosini + (Wu, Zhenyu) + +Patch 9.1.0241 +Problem: filetype: mysql history files are not recognized +Solution: Detect .mysql_history as mysql (Wu, Zhenyu). + +Patch 9.1.0242 +Problem: filetype: octave history files are not recognized +Solution: Detect octave/history files as octave (Wu, Zhenyu). + +Patch 9.1.0243 +Problem: filetype: netrw history file is not recognized +Solution: Detect .netrwhist as vim files (Wu, Zhenyu). + +Patch 9.1.0244 +Problem: filetype: bash history files are not recognized +Solution: detect .bash-history and .bash_history files as bash (Wu, Zhenyu). + +Patch 9.1.0245 +Problem: filetype: zsh theme, history and zunit files are not + recognized. +Solution: Detect '.zsh_history', '*.zsh-theme' and '*.zunit' as zsh + (Wu, Zhenyu) + +Patch 9.1.0246 +Problem: filetype: fontconfig files are not recognized +Solution: detect 'fonts.conf' as xml (Wu, Zhenyu). + +Patch 9.1.0247 +Problem: filetype: bundle config files are not recognized +Solution: Detect '*/.bundle/config' as yaml (Wu, Zhenyu). + +Patch 9.1.0248 +Problem: filetype: yarn lock files are not recognized +Solution: Detect 'yarn.lock' files as yaml (Wu, Zhenyu). + +Patch 9.1.0249 +Problem: filetype: rock_manifest and config.ld files are not recognized +Solution: Detect 'rock_manifest' and 'config.ld' as lua (Wu, Zhenyu). + +Patch 9.1.0250 +Problem: filetype: ldscripts cannot be recognized +Solution: Detect '*/ldscripts/*' as ld (Wu, Zhenyu). + +Patch 9.1.0251 +Problem: Filetype test fails. +Solution: Move detection by name before detection by extension. + Improve TextChanged test and remove wrong test and fix + a typo in a comment (zeertzjq). + +Patch 9.1.0252 +Problem: Vim9: segfault with static in super class (Ernie Rael) +Solution: When initializing lhs, use the correct class where a class + variable is defined (Yegappan Lakshmanan) + +Patch 9.1.0253 +Problem: filetype: typespec files are not recognized +Solution: Detect '*.tsp' files as typespec (Hilmar Wiegand) + +Patch 9.1.0254 +Problem: [security]: Heap buffer overflow when calling complete_add() + in the first call of 'completefunc' +Solution: Call check_cursor() after calling 'completefunc' (zeertzjq). + +Patch 9.1.0255 +Problem: Vim9: no indication of script nr in stack trace of classes +Solution: Prefix the class name with the script name in the stack trace. + (Ernie Rael) + +Patch 9.1.0256 +Problem: Finding autocmd events is inefficient +Solution: Use binary search to find events, cache last found events, + avoid use of strlen(), add SessionWritePost autocmd, fix + test_codestyle and avoid endless loop (John Marriott). + +Patch 9.1.0257 +Problem: Vim9: :call may not find imported class members (mityu) +Solution: Set the typval of an imported lval variable correctly + (Yegappan Lakshmanan) + +Patch 9.1.0258 +Problem: Support for 'smoothscroll' in (half-)page scrolling + broke backward compatibility and can be made to work better. + (after v9.1.215) +Solution: Restore the previous cursor and end-of-buffer behavior for + half-page scrolling and improve 'smoothscroll' support. + (Luuk van Baal) + +Patch 9.1.0259 +Problem: Normal mode TextChanged isn't tested properly. +Solution: Combine Test_Changed_ChangedI() and Test_Changed_ChangedI_2() + and also run it on Windows. Fix a typo in main.c (zeertzjq). + +Patch 9.1.0260 +Problem: "zb" does not reveal filler lines at the start of a buffer. + Scrolled cursor position with 'smoothscroll' is unpredictable, + and may reset skipcol later if it is not visible (after v9.1.258) +Solution: Replace confusing for loop that reaches final control value too + early with while loop. Set "w_curswant" accordingly so cursor + will be placed in visible part of topline (Luuk van Baal). + +Patch 9.1.0261 +Problem: Vim9: protected class and funcrefs accessible outside the class + (Aliaksei Budavei) +Solution: Check if class and object funcrefs are protected + (Yegappan Lakshmanan) + +Patch 9.1.0262 +Problem: Test for TextChanged is flaky with ASAN. +Solution: Wait for the file to be non-empty (zeertzjq). + +Patch 9.1.0263 +Problem: Vim9: Problem with lambda blocks in enums and classes + (Aliaksei Budavei) +Solution: Support evaluating lambda blocks from a string, skip over + comments (Yegappan Lakshmanan) + +Patch 9.1.0264 +Problem: libgpm may delete some signal handlers +Solution: Restore these signal handlers after calling gpm (Julio B). + +Patch 9.1.0265 +Problem: console dialog cannot save unnamed buffers +Solution: Set bufname before save (glepnir). Define dialog_con_gui + to test for GUI+Console dialog support, use it to skip + the test when the GUI feature has been defined. + +Patch 9.1.0266 +Problem: filetype: earthfile files are not recognized +Solution: Detect 'Earthfile' as earthfile (Gaëtan Lehmann). + +Patch 9.1.0267 +Problem: File name entered in GUI dialog is ignored (after v9.1.0265) +Solution: Only set file name to "Untitled" if GUI dialog didn't set it. + (zeertzjq) + +Patch 9.1.0268 +Problem: Two tests in test_filechanged.vim are slow. +Solution: Sleep for shorter if the +nanotime feature is available (zeertzjq). + +Patch 9.1.0269 +Problem: Test for TextChanged is still flaky with ASAN. +Solution: Don't index the result of readfile() (zeertzjq). + +Patch 9.1.0270 +Small fixes to a few issues: +Problem: Vim9: funcref pointer pt leaks, when function is not found +Solution: Free funcref pointer in case of error ( +Problem: memory leak of crypt state pointer allocation fails +Solution: free crypt state pointer properly ( +Problem: Vim9: Leaking memory when compiling dict fails +Solution: Free the memory in case of error ( +Problem: Coverity complains about derefencing obj_members pointer + (after v9.1.0261) +Solution: Verify that obj_members ptr is non-null before accessing it + +Patch 9.1.0271 +Problem: CI sound test aborts with undefined variable +Solution: initialize g:result in test_sound.vim + +Patch 9.1.0272 +Problem: Autocommand may change currect directory after :tcd and :lcd. +Solution: Also clear tp_localdir and w_localdir when using aucmd_win. + (zeertzjq) + +Patch 9.1.0273 +Problem: filetype: keymap files are not recognized +Solution: Detect '*.keymap' files as Device Tree Files (0xadk). + +Patch 9.1.0274 +Problem: MS-Windows: a few compiler warnings +Solution: Change variable types to resolve compiler warnings (Mike Williams) + +Patch 9.1.0275 +Problem: filetype: R history files are not recognized +Solution: Detect '.Rhistory' files as r filetype (Wu, Zhenyu). + +Patch 9.1.0276 +Problem: No pandoc syntax support +Solution: Add pandoc syntax and compiler plugins (Wu, Zhenyu, Konfekt). + +Patch 9.1.0277 +Problem: Cannot highlight the Command-line +Solution: Add the MsgArea highlighting group (Shougo Matsushita). + +Patch 9.1.0278 +Problem: filetype: zathurarc files not recognized +Solution: Detect '.zathurarc' files as zathurarc filetype, + add zathurarc filetype (Wu, Zhenyu) + +Patch 9.1.0279 +Problem: filetype: roc files are not recognized +Solution: Detect '*.roc' files as roc filetype, + add a basic filetype plugin (nat-418) + +Patch 9.1.0280 +Problem: Logic to make sure cursor is in visible part of the screen after + scrolling the text with 'smoothscroll' is scattered, asymmetric + and contains bugs. +Solution: Adjust and create helper function for 'smoothscroll' cursor logic. + (Luuk van Baal) + +Patch 9.1.0281 +Problem: CI: fails Test_compiler_completion +Solution: Add pandoc compiler + +Patch 9.1.0282 +Problem: Finding highlighting attributes is inefficient +Solution: Use binary search to find highlighting attributes and color + names (John Marriott) + +Patch 9.1.0282 +Problem: Wrong doc style for pandoc syntax description, + Test_diff_eob_halfpage() may fail depending on screen size, using + braces in highlight.c when not necessary +Solution: Fix pandoc documentation, make sure the window for the test has 7 + lines, remove the braces. + +Patch 9.1.0284 +Problem: make testclean is not able to delete failed screendumps. +Solution: Remove the "failed" directory when necessary (Julio B). + +Patch 9.1.0285 +Problem: Problems with cursor position when scrolling half a page. +Solution: Rework the cursor logic. (Luuk van Baal) + +Patch 9.1.0286 +Problem: Vim9: E1027 with defcompile for abstract methods with + non-void return types, but still compiles it (zzzyxwvut) +Solution: Don't compile abstract methods (Yegappan Lakshmanan). + +Patch 9.1.0287 +Problem: Vim9: comment may be treated as heredoc start (Ernie Rael). +Solution: Use skip_var_list() instead of find_name_end() (zeertzjq). + +Patch 9.1.0288 +Problem: MS-Windows: compiler warning for size_t to int conversion + (after v9.1.0282) +Solution: Use size_t instead of int in highlight_set_termgui_attr + (Mike Williams). + +Patch 9.1.0289 +Problem: filetype: some TeX files are not recognized +Solution: Add more patterns for TeX files and inspect a few more files for + being TeX files (Wu, Zhenyu). + +Patch 9.1.0290 +Problem: filetype: xilinx files are not recognized +Solution: Add a few xilinx specific file patterns, inspect lpr files for being + xml/pascal (Wu, Zhenyu) + +Patch 9.1.0291 +Problem: filetype: libreoffice config files are not recognized +Solution: Detect Libreoffice config fils as xml/dosini (Wu, Zhenyu). + +Patch 9.1.0292 +Problem: filetype: XDG mimeapps.list file is not recognized +Solution: Detect mimeapps.list as dosini filetype (Wu, Zhenyu). + +Patch 9.1.0293 +Problem: filetype: lxqt config files are not recognized +Solution: Detect {lxqt,screengrab}/*.conf files as dosini, + fix failing filetype test for */tex/latex/**.cfg (Wu, Zhenyu). + +Patch 9.1.0294 +Problem: plines_m_win() does not take into account it's "limit_winheight" + argument for filler lines below the last line of the buffer. + (after v9.1.0280) +Solution: Check window height when "limit_winheight" is TRUE (Luuk van Baal). + +Patch 9.1.0295 +Problem: filetype: pip config files are not recognized +Solution: detect pip.conf as dosini filetype (Wu, Zhenyu). + +Patch 9.1.0296 +Problem: Regex engines do not handle case-folding well +Solution: Correctly calculate byte length of characters to skip + +Patch 9.1.0297 +Problem: Patch 9.1.0296 causes too many issues (Tony Mechelynck, @chdiza, CI) +Solution: Back out the change for now + +Patch 9.1.0298 +Problem: MS-Windows: GETTEXT_PATH hard-coded in src/po/Make_mvc.mak +Solution: Add IFNDEF/ENDIF around the definition of GETTEXT_PATH + (Cthulhux) + +Patch 9.1.0299 +Problem: Vim9: return type not set for a lambda assigned to script var + (Ernie Rael) +Solution: Correctly determine the return type (Yegappan Lakshmanan). + +Patch 9.1.0300 +Problem: Missing test for what Patch v9.1.0285 fixes +Solution: Add a test for cursor movement at buffer boundaries (Luuk van Baal). + +Patch 9.1.0301 +Problem: Vim9: heredoc start may be recognized in string. +Solution: Don't skip to closing bracket for invalid list assignment. + (zeertzjq) + +Patch 9.1.0302 +Problem: filetype: blueprint files are not recognized +Solution: Detect '*.bp' files as blueprint files, add a minimal filetype + plugin (Bruno Belanyi) + +Patch 9.1.0303 +Problem: filetype: some protocol buffer files not recognized +Solution: Detect '*.textproto', '*.textpb', '*.txtpb' as pbtxt files + (Bruno Belanyi) + +Patch 9.1.0304 +Problem: filetype: cgdb config file is not recognized +Solution: Detect cgdbrc files as cgdbrc filetype (Wu, Zhenyu). + +Patch 9.1.0305 +Problem: filetype: some history files are not recognized +Solution: Add some history patterns to filetype.vim (Wu, Zhenyu). + +Patch 9.1.0306 +Problem: filetype: x11vnc config file is not recognized +Solution: Detect '.x11vncrc' as conf filetype (Wu, Zhenyu). + +Patch 9.1.0307 +Problem: filetype: texdoc config files is not recognized +Solution: Detect 'texdoc.cnf' as conf filetype (Wu, Zhenyu). + +Patch 9.1.0308 +Problem: configure: msgfmt hardcoded (after v9.1.0173) +Solution: use $MSGFMT instead of msgfmt in configure script, + regenerate the configure script (Vladimír Marek). + +Patch 9.1.0309 +Problem: crash when 'textwidth' > MAX_INT (after vv9.1.0055) + (Zoltan Balogh) +Solution: limit textwidth to MAX_INT + +Patch 9.1.0310 +Problem: Filler lines not checked properly in get_scroll_overlap(). +Solution: Add missing parentheses (zeertzjq). + +Patch 9.1.0311 +Problem: Some config files are not recognized +Solution: Add some patterns for chktex, ripgreprc and ctags config files. + +Patch 9.1.0312 +Problem: heredocs are not supported for :commands (@balki) +Solution: Add heredoc support (Yegappan Lakshmanan). + +Patch 9.1.0313 +Problem: Crash when using heredoc with comment in command block. +Solution: Handle a newline more like the end of the line, fix coverity + warning (zeertzjq). + +Patch 9.1.0314 +Problem: Vim9: Can define a class in a function (Doug Kearns) +Solution: Give an error for a class defined in a function, slightly reword + some public error messages (Yegappan Lakshmanan). + +Patch 9.1.0315 +Problem: filetype: a few more dosini files are not recognized +Solution: Detect wakatime, reply config files, flatpak, nfs config files + and a few more python tools as dosini (or toml) (Wu, Zhenyu). + +Patch 9.1.0316 +Problem: filetype: some sh and confini files not recognized +Solution: Detect neofetch, '.xprofile', XDG-User-Dirs files, paru and makepkg + config files (Wu, Zhenyu). + +Patch 9.1.0317 +Problem: filetype: matplotlibrc files are not recognized +Solution: Detect 'matplotlibrc' file as yaml filetype (Wu, Zhenyu). + +Patch 9.1.0318 +Problem: filetype: translate shell config files are not recognized +Solution: Detect 'init.trans', 'translate-shell' and '.trans' files as + clojure (Wu, Zhenyu) + +Patch 9.1.0319 +Problem: Using heredoc in string not tested with :execute. +Solution: Test with both :execute and execute() (zeertzjq). + +Patch 9.1.0320 +Problem: Wrong cursor position after using setcellwidths(). +Solution: Invalidate cursor position in addition to redrawing (zeertzjq). + +Patch 9.1.0321 +Problem: When used terminal with XON/XOFF flow control, vim tries to + still make CTRL-S mapping available, which results in severe + screen corruption, especially on large redraws, and even + spurious inputs (John Tsiombikas) +Solution: Disallow CTRL-S mapping if such terminal is recognized. + Don't remove IXON from the bitmask inversion (Anton Sharonov). + +Patch 9.1.0322 +Problem: filetype: some mail tools not recognized +Solution: Detect '.mbsncrc' as conf, '.msmtprc' as msmtp and '.notmuch-config' + as ini filetype (Shane-XB-Qian) + +Patch 9.1.0323 +Problem: filetype: cabal config files may not be recognized +Solution: Change filetype pattern to '*/{,.}cabal/config' (Wu Zhenyu). + +Patch 9.1.0324 +Problem: filetype: some json files are not recognized +Solution: Detect '.jscsrc' and '.vsconfig' as jsonc filetype (Wu, Zhenyu). + +Patch 9.1.0325 +Problem: filetype: CMakeCache.txt files not recognized +Solution: Detect 'CMakeCache.txt' files as cmakecache filetype, include basic + syntax script for cmakecache (Wu, Zhenyu, @bfrg) + +Patch 9.1.0326 +Problem: filetype: some requirements files are not recognized +Solution: Detect '*-requirements.txt', 'constraints.txt', 'requirements.in', + 'requirements/*.txt' and 'requires/*.txt' as requirements filetype, + include pip compiler, include requirements filetype and syntax + plugin (Wu, Zhenyu, @raimon49). + +Patch 9.1.0327 +Problem: No support for using $XDG_CONFIG_HOME +Solution: optionally source $XDG_CONFIG_HOME/vim/vimrc (Luca Saccarola). + +Patch 9.1.0328 +Problem: CI fails with t_?? test +Solution: use assert_match instead of assert_equal and test only until t_xo, + depending on system there may be several more termcap codes coming + +Patch 9.1.0329 +Problem: String interpolation fails for Dict type +Solution: Support Dict data type properly, also support :put =Dict + (without having to convert it to string() first) + (Yegappan Lakshmanan). + +Patch 9.1.0330 +Problem: v9.1.0327 contains an unrelated change +Solution: Revert back $USR_VIMRC_FILE to $HOME instead of ~ + +Patch 9.1.0331 +Problem: make install does not install all files (Nick Jensen) +Solution: Adjust the Makefile rule to install and uninstall cargo and + rust directories (Matt Hammerly) + +Patch 9.1.0332 +Problem: tests: some assert_equal() calls have wrong order of args +Solution: Correct the order (zeertzjq). + +Patch 9.1.0333 +Problem: tests: test_xdg fails on the appimage repo +Solution: compare only the last 30 right characters of $MYVIMRC + +Patch 9.1.0334 +Problem: No test for highlight behavior with 'ambiwidth'. +Solution: Add a screendump test for 'ambiwidth' with 'cursorline'. + (zeertzjq) + +Patch 9.1.0335 +Problem: String interpolation fails for List type +Solution: use implicit string(list) for string interpolation and :put = + (Yegappan Lakshmanan) + +Patch 9.1.0336 +Problem: tests: typo in test_xdg +Solution: fix typo (Diego Viola) + +Patch 9.1.0337 +Problem: Missing entry for XDG vimrc file in :version +Solution: Add 4th user vimrc entry to :version output (Diego Viola) + +Patch 9.1.0338 +Problem: Vim9: import through symlinks not correctly handled +Solution: Check for script being a symlink but only once (Ernie Rael) + +Patch 9.1.0339 +Problem: tests: xdg test uses screen dumps +Solution: Convert screen dump to normal test (Yegappan Lakshmanan) + +Patch 9.1.0340 +Problem: Error with matchaddpos() and empty list (@rickhow) +Solution: Return early for an empty list + +Patch 9.1.0341 +Problem: a few memory leaks are found (LuMingYinDetect) +Solution: properly free the memory + +Patch 9.1.0342 +Problem: tests: test_taglist fails when 'helplang' contains non-english +Solution: Allow 1 or 2 tagfiles for now (Julio B) + +Patch 9.1.0343 +Problem: 'showcmd' is wrong for partial mapping with multibyte char, + and isn't very readable with modifyOtherKeys. +Solution: Decode multibyte char and merge modifiers into the char. + (zeertzjq) + +Patch 9.1.0344 +Problem: Cursor wrong after using setcellwidth() in terminal (mikoto2000) +Solution: output additional spaces, so the behaviour matches the GUI + (mikoto2000) + +Patch 9.1.0345 +Problem: gvimrc not sourced from XDG_CONFIG_HOME (after v9.1.0327) +Solution: Also try to source from ~/.config/vim/gvimrc and + $XDG_CONFIG_HOME/vim/gvimrc (Maxim Kim) + +Patch 9.1.0346 +Problem: Patch v9.1.0338 fixed sourcing a script with import +Solution: Add test `import './file.vim' and verify it works with `:source` + so it does not regress (Ernie Rael) + +Patch 9.1.0347 +Problem: A few typos in test_xdg when testing gvimrc +Solution: Fix them (Diego Viola) + +Patch 9.1.0348 +Problem: X11 does not ignore smooth scroll event (laniakea64) +Solution: Correctly ignore unwanted smooth scroll events on X11 (lilydjwg) + +Patch 9.1.0349 +Problem: Vim9: need static type for typealias +Solution: Refactor the typval2type() function and add a static type for + typealias (Yegappan Lakshmanan) + +Patch 9.1.0350 +Problem: tests: test_vim9_dissamble may fail +Solution: Instead of hard-coding the lambda number, accept just any number + (Julio B) + +Patch 9.1.0351 +Problem: No test that completing a partial mapping clears 'showcmd'. +Solution: Complete partial mappings in Test_showcmd_part_map() instead + of using :echo. Adjust some comments (zeertzjq). + +Patch 9.1.0352 +Problem: Finding cmd modifiers and cmdline-specials is inefficient +Solution: Use binary search to find ex command modifiers and + cmdline-special characters and reduce the number of strlen() + (John Marriott) + +Patch 9.1.0353 +Problem: tests: Test_autoload_import_relative_compiled fails on Windows +Solution: Disable on Windows for now, add missing :bw for clean-up (Ernie Rael) + +Patch 9.1.0354 +Problem: runtime(uci): No support for uci file types (Wu, Zhenyu) +Solution: include basic uci ftplugin and syntax plugins (Colin Caine) + +Patch 9.1.0355 +Problem: filetype: flake.lock files are not recognized +Solution: Detect 'flake.lock' as json filetype (Riley Bruins) + +Patch 9.1.0356 +Problem: MS-Windows: --remote may change working directory when + 'shellslash' is set +Solution: normalize directory separators on MS-Windows + +Patch 9.1.0357 +Problem: Page scrolling does not always place the cursor at the top or + bottom of the window (Mathias Rav) +Solution: Place the cursor at the top or bottom of the window (Luuk van Baal) + +Patch 9.1.0358 +Problem: wrong drawing in GUI with setcellwidth() (after v9.1.0344) +Solution: move gui.in_use condition (h-east). + +Patch 9.1.0359 +Problem: MS-Windows: Relative import in a script sourced from a buffer + doesn't work (Ernie Rael) +Solution: Set a filename, so that we are not trying to use + script-relative filename (Yegappan Lakshmanan) + +Patch 9.1.0360 +Problem: Vim9: does not handle autoloaded variables well +Solution: Better handle script-level exported variable references from + autoload files (Ernie Rael). + +Patch 9.1.0361 +Problem: Vim9: vim9type.c is too complicated +Solution: Refactor a few functions in vim9type.c (Yegappan Lakshmanan) + +Patch 9.1.0362 +Problem: expanding rc config files does not work well + (Michał Sieroń, after v9.1.0327) +Solution: initialize chartab option, required to expand + evironment variables + +Patch 9.1.0363 +Problem: tests: test_winfixbuf is a bit slow +Solution: use defer if possible, reset hidden option, use --not-a-term + when starting Vim using system() (Yegappan Lakshmanan) + +Patch 9.1.0364 +Problem: tests: test_vim9_builtin is a bit slow +Solution: source tests from a buffer instead of writing and sourcing a file + (Yegappan Lakshmanan) + +Patch 9.1.0365 +Problem: Crash when typing many keys with D- modifier (after 9.1.0227). +Solution: Don't treat a 0x80 byte inside a special sequence as the start + of a special sequence (zeertzjq). + +Patch 9.1.0366 +Problem: filetype: ondir files are not recognized +Solution: Detect '.ondirrc' as ondir filetype (Jon Parise) + +Patch 9.1.0367 +Problem: compile_def_function is too long +Solution: Move out the code to compile the body of a function + (Yegappan Lakshmanan) + +Patch 9.1.0368 +Problem: MS-Windows: Hard to define the Vim Patchlevel with leading + zeroes for the installer +Solution: re-define VIM_VERSION_PatchLEVEL_STR with leading zeroes, + interpret Patchlevel as decimal in Make_mvc.mak (RestorerZ) + +Patch 9.1.0369 +Problem: Vim9: problem when importing autoloaded scripts +Solution: In `:def` handle storing to vim9 autoload export (Ernie Rael) + +Patch 9.1.0370 +Problem: MS-Windows: Patch number is zero in installer (jonathan-b-wiebe) +Solution: Set VIM_VERSION_PatchLEVEL, fix a few typos in the installer + (RestorerZ) + +Patch 9.1.0371 +Problem: Vim9: compile_def_function() still too long +Solution: Refactor the code into separate functions (Yegappan Lakshmanan). + +Patch 9.1.0372 +Problem: Calling CLEAR_FIELD() on the same struct twice. +Solution: Remove the second CLEAR_FIELD(). Move the assignment of + cookie.sourceing_lnum (zeertzjq). + +Patch 9.1.0373 +Problem: ops.c code uses too many strlen() calls +Solution: Refactor code and remove more strlen() calls (John Marriott). + +Patch 9.1.0374 +Problem: When :edit an existing buffer, line('w$') may return a wrong result. +Solution: Reset w_valid in curwin_init() (Jaehwang Jung) + +Patch 9.1.0375 +Problem: tests: 1-second delay after Test_BufEnter_botline() + (after v9.1.0374) +Solution: Wipe the created buffers (zeertzjq). + +Patch 9.1.0376 +Problem: Vim9: Trailing commands after class/enum keywords ignored +Solution: Remove EX_TRLBAR keyword from command definition + (Yegappan Lakshmanan) + +Patch 9.1.0377 +Problem: formatting text wrong when 'breakindent' is set (Gary Johnson) +Solution: Temporarily disable 'breakindent' option when formatting text, so + that the breakindent is not wrongly taken into account for the line + length + +Patch 9.1.0378 +Problem: Vim9: no comments allowed after class vars + (Christian Robinson, after 9.1.376) +Solution: Allow trailing comments after class vars (Yegappan Lakshmanan). + +Patch 9.1.0379 +Problem: There are a few typos +Solution: Fix them (zeertzjq). + +Patch 9.1.0380 +Problem: Calculating line height for unnecessary amount of lines with + half-page scrolling (zhscn, after 9.1.0280) +Solution: Replace "limit_winheight" argument with higher resolution + "max" argument to which to limit the calculated line height + in plines_m_win() to (Luuk van Baal). + +Patch 9.1.0381 +Problem: cbuffer and similar quickfix and locationlist commands don't + accept a range, even so it is documented they should + (ilan-schemoul, after 8.1.1241) +Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER + +Patch 9.1.0382 +Problem: Kbuild files are not recognized. +Solution: Detect Kbuild files as make files (Bruno Belanyi). + +Patch 9.1.0383 +Problem: filetype: .out files recognized as tex files +Solution: Do not set an explicit filetype until it is clear what this + should be (shane.xb.qian) + +Patch 9.1.0384 +Problem: tests: vt420 terminfo entry may not be found (Shane-XB-Qian) +Solution: check existence of terminfo vt420 and infocmp command + +Patch 9.1.0385 +Problem: Vim9: crash with null_class and null_object (Aliaksei Budavei) +Solution: Handle null_class and null_object correctly (Yegappan Lakshmanan). + +Patch 9.1.0386 +Problem: filetype: stylus files not recognized +Solution: Detect '*.styl' and '*.stylus' as stylus filetype, + include indent, filetype and syntax plugin (Philip H) + +Patch 9.1.0387 +Problem: Vim9: null value tests not sufficient +Solution: Add a more comprehensive test for null values (Yegappan Lakshmanan). + +Patch 9.1.0388 +Problem: cursor() and getregion() don't handle v:maxcol well. +Solution: Add special handling for v:maxcol like setpos() does (zeertzjq). + +Patch 9.1.0389 +Problem: filetype: templ files are not recognized +Solution: Detect '*.templ' files as filetype templ (Tristan Knight). + +Patch 9.1.0390 +Problem: filetype: inko files are not recognized +Solution: Detect '*.inko' as ink filetype (Yorick Peterse). + +Patch 9.1.0391 +Problem: Vim9: could improve testing (Ernie Rael) +Solution: Support defcompile for test_override() to improve testing + (Yegappan Lakshmanan) + +Patch 9.1.0392 +Problem: tests: Vim9 debug tests may be flaky (Shane-XB-Qian) +Solution: Give a few more lines so that line-wrapping won't + cause a hit-enter prompt + +Patch 9.1.0393 +Problem: 'viewdir' not respecting $XDG_CONFIG_HOME (Danilo Rezende, + after v9.1.327) +Solution: adjust 'viewdir' option when enabling XDG config mode + +Patch 9.1.0394 +Problem: Cannot get a list of positions describing a region + (Justin M. Keyes, after v9.1.0120) +Solution: Add the getregionpos() function (Shougo Matsushita) + +Patch 9.1.0395 +Problem: regionpos may leak memory on error, coverity + complains about dereferencing Null pointer +Solution: free all list pointers (after v9.1.394), + return early if buflist_findnr() returns NULL + +Patch 9.1.0396 +Problem: jj files are not recognized +Solution: recognize '*.jjdescription' files as jj filetype (Gregory Anders) + +Patch 9.1.0397 +Problem: Wrong display with 'smoothscroll' when changing quickfix list. +Solution: Reset w_skipcol when replacing quickfix list (zeertzjq). + +Patch 9.1.0398 +Problem: Vim9: imported vars are not properly type checked +Solution: Check the imported variable type properly (Yegappan Lakshmanan). + +Patch 9.1.0399 +Problem: block_editing errors out when using del (@Jamarley) +Solution: Change ins_len from size_t to int and properly check that it doesn't + become negative + +Patch 9.1.0400 +Problem: Vim9: confusing error message for unknown type (Doug Kearns) +Solution: For an unknown type, display only the type name in the error + message (Yegappan Lakshmanan). + +Patch 9.1.0401 +Problem: filetype: zsh module files are not recognized +Solution: Detect '*.mdh' and '*.epro' as C filetype, '*.mdd' as zsh + filetype, determine zsh-modules '*.pro' from from it's content + (Wu, Zhenyu) + +Patch 9.1.0402 +Problem: filetype: mdd files detected as zsh filetype +Solution: detect '*.mdd' files as sh filetype, add links to reference + documentation (Wu, Zhenyu) + +Patch 9.1.0403 +Problem: Vim9: not able to import file from start dir (Danielle McLean) +Solution: Allow to import from start directory (Yegappan Lakshmanan). + +Patch 9.1.0404 +Problem: [security] xxd: buffer-overflow with specific flags +Solution: Correctly calculate the required buffer space (Lennard Hofmann). + +Patch 9.1.0405 +Problem: tests: xxd buffer overflow fails on 32-bit +Solution: Skip test on 32-bit architecture + +Patch 9.1.0406 +Problem: Divide by zero with getmousepos() and 'smoothscroll'. +Solution: Don't compute skip_lines when width1 is zero (zeertzjq). + +Patch 9.1.0407 +Problem: No scrolling happens with half-page scrolling with line + filling entire window when 'smoothscroll' is disabled. + (Mathias Rav, after v9.1.0285) +Solution: Adjust amount to move cursor by so that it is moved the same + number of lines as was scrolled, even when scrolling different + number of lines than requested with 'nosmoothscroll'. + +Patch 9.1.0408 +Problem: configure fails on Fedora when including perl (chesheer-smile) +Solution: Filter out -spec= from $LIBS and $LDFLAGS to avoid + linking relocation errors for unrelated autoconf tests. + +Patch 9.1.0409 +Problem: too many strlen() calls in the regexp engine +Solution: refactor code to retrieve strlen differently, make use + of bsearch() for getting the character class (John Marriott). + +Patch 9.1.0410 +Problem: warning about uninitialized variable (Tony Mechelynck, after + v9.1.0409) +Solution: initialize variable (John Marriott) + +Patch 9.1.0411 +Problem: too long functions in eval.c +Solution: refactor functions (Yegappan Lakshmanan) + +Patch 9.1.0412 +Problem: typo in regexp_bt.c in DEBUG code, causing compile error (@kfleong7, + after v9.1.0409) +Solution: Replace bulen by buflen + +Patch 9.1.0413 +Problem: smoothscroll may cause infinite loop, with very narrow windows + (Jaehwang Jung, after v9.1.0280) +Solution: Check for width1 being negative, verify that win_linetabsize does + not overflow + +Patch 9.1.0414 +Problem: Unable to leave long line with 'smoothscroll' and 'scrolloff'. + Corrupted screen near the end of a long line with 'scrolloff'. + (Ernie Rael, after 9.1.0280) +Solution: Only correct cursor in case scroll_cursor_bot() was not itself + called to make the cursor visible. Avoid adjusting for + 'scrolloff' beyond the text line height (Luuk van Baal) + +Patch 9.1.0415 +Problem: Some functions are not tested +Solution: Add a few more tests, fix a few minor problems (Yegappan Lakshmanan) + +Patch 9.1.0416 +Problem: some screen dump tests can be improved (after 9.1.0414) +Solution: Make sure screen state changes properly and is captured in the + screen dumps (Luuk van Baal) + +Patch 9.1.0417 +Problem: if_py: find_module has been removed in Python 3.12.0a7 (@Ghost-LZW) +Solution: Do not include find_module for Python >= 3.12.0a7 + +Patch 9.1.0418 +Problem: Cannot move to previous/next rare word (Colin Kennedy) +Solution: Add the ]r and [r motions (Christ van Willegen) + +Patch 9.1.0419 +Problem: eval.c not sufficiently tested +Solution: Add a few more additional tests for eval.c (Yegappan Lakshmanan). + +Patch 9.1.0420 +Problem: :browse oldfiles prompts even with single entry +Solution: Do not prompt, but edit the file directly, also when using :filter + /pat/ browse oldfiles + +Patch 9.1.0421 +Problem: filetype: hyprlang files are not recognized +Solution: Recognize 'hypr{land,paper,idle,lock}.conf' files + as 'hyprlang' filetype, add hyprlang ftplugin (Riley Bruins) + +Patch 9.1.0422 +Problem: function echo_string_core() is too long +Solution: Refactor into several smaller functions (Yegappan Lakshmanan). + +Patch 9.1.0423 +Problem: getregionpos() wrong with blockwise mode and multibyte. +Solution: Use textcol and textlen instead of start_vcol and end_vcol. + Handle coladd properly (zeertzjq). + +Patch 9.1.0424 +Problem: filetype: slint files are not recognized +Solution: Detect '*.slint' files as slint filetype, include basic sling + filetype plugin (Riley Bruins) + +Patch 9.1.0425 +Problem: filetype: purescript files are not recognized +Solution: Recognize '*.purs' files as purescript filetype, include basic + purescript filetype plugin (Riley Bruins) + +Patch 9.1.0426 +Problem: too many strlen() calls in search.c +Solution: Refactor code and remove more strlen() calls, + use explicit variable to remember strlen (John Marriott) + +Patch 9.1.0427 +Problem: tests: some issues with termdebug mapping test +Solution: Use assert_{true,false} if suitable, change + order of expected and actual arguments in assert() calls. + (Ken Takata) + +Patch 9.1.0428 +Problem: Tag guessing leaves wrong search history with very short names + (after 9.1.0426). +Solution: Use the correct variable for pattern length (zeertzjq). + +Patch 9.1.0429 +Problem: Coverity complains about eval.c refactor (after v9.1.0422) +Solution: Check that buf is not used un-initialized, add explicit conditions + for save and restore of copyID + +Patch 9.1.0430 +Problem: getregionpos() doesn't handle one char selection. +Solution: Handle startspaces differently when is_oneChar is set. + Also add a test for an exclusive charwise selection with + multibyte chars (zeertzjq) + +Patch 9.1.0431 +Problem: eval.c is too long +Solution: Move garbage collection code to new gc.c file (Yegappan Lakshmanan). + +Patch 9.1.0432 +Problem: Ancient XPM preprocessor hack may cause build errors. +Solution: Simplify XPM includes and get rid of complicated #ifdef magic + (Drew Vogel). + +Patch 9.1.0433 +Problem: Wrong yanking with exclusive selection and virtualedit=all, + and integer overflow when using getregion() on it. +Solution: Set coladd when decreasing column and 'virtualedit' is active. + Add more tests for getregion() with 'virtualedit' (zeertzjq). + +Patch 9.1.0434 +Problem: make errors trying to access autoload/zig +Solution: Remove autoload/zig from Makefile, adjust Filelist (Derek Schrock). + +Patch 9.1.0435 +Problem: filetype: cygport files are not recognized +Solution: Recognize '*.cygport' files as sh filetype (Ken Takata). + +Patch 9.1.0436 +Problem: Crash when using '?' as separator for :s and pattern contains + escaped '?'s (after 9.1.0409). +Solution: Always compute startplen. (zeertzjq). + +Patch 9.1.0437 +Problem: Motif requires non-const char pointer for XPM data shared with + GTK (Tony Mechelynck, after v9.1.0432) +Solution: Cast non-const to const char pointer for GTK (Drew Vogel). + +Patch 9.1.0438 +Problem: Wrong Ex command executed when :g uses '?' as delimiter and + pattern contains escaped '?'. +Solution: Don't use "*newp" when it's not allocated (zeertzjq). + +Patch 9.1.0439 +Problem: Cannot filter the history +Solution: Implement :filter :history + +Patch 9.1.0440 +Problem: function get_lval() is too long +Solution: factor out the get_lval_subscript() function (Yegappan Lakshmanan). + +Patch 9.1.0441 +Problem: getregionpos() can't properly indicate positions beyond eol. +Solution: Add an "eol" flag that enables handling positions beyond end + of line like getpos() does (zeertzjq). + +Patch 9.1.0442 +Problem: hare runtime files outdated +Solution: runtime(hare): update hare.vim to match upstream (Amelia Clarke). + +Patch 9.1.0443 +Problem: Can't use a blockwise selection with a width for getregion(). +Solution: Add support for blockwise selection with width like the return + value of getregtype() or the "regtype" value of TextYankPost + (zeertzjq). + +Patch 9.1.0444 +Problem: Not enough tests for getregion() with multibyte chars. +Solution: Add a few more tests (zeertzjq). + +Patch 9.1.0445 +Problem: Coverity warning after 9.1.0440 +Solution: Fix Coverity warning, add a test and reduce the calls to clear_tv() + (Yegappan Lakshmanan). + +Patch 9.1.0446 +Problem: getregionpos() behaves inconsistently for a partly-selected + multibyte char. +Solution: Always use column of the first byte for a partly-selected + multibyte char (zeertzjq). + +Patch 9.1.0447 +Problem: completion may be wrong when deleting all chars +Solution: Reset compl_shown_match + +Patch 9.1.0448 +Problem: compiler warning in eval.c (after v9.1.0429) +Solution: Refactor code (Yegappan Lakshmanan) + +Patch 9.1.0449 +Problem: MS-Windows: Compiler warnings +Solution: Resolve size_t to int warnings + +Patch 9.1.0450 +Problem: eval.c code too complex +Solution: Refactor eval6() and eval9() functions into several smaller + functions (Yegappan Lakshmanan) + +Patch 9.1.0451 +Problem: No test for escaping '<' with shellescape() +Solution: Add a test. Use memcpy() in code to make it easier to + understand. Fix a typo (zeertzjq). + +Patch 9.1.0452 +Problem: Configure checks for libelf unnecessarily +Solution: Remove configure check (youcai) + +Patch 9.1.0453 +Problem: filetype: rasi files are not recognized +Solution: Regonize '*.rasi' files as rasi filetype, include a filetype and + syntax plugin (Pierrick Guillaume) + +Patch 9.1.0454 +Problem: minor issues in test_filetype with rasi test (after 9.1.0453) +Solution: Re-sort test_filetype, fix wrong syntax.txt help tags + +Patch 9.1.0455 +Problem: MS-Windows: compiler warning for size_t to int conversion +Solution: Add a few type casts to resolve warning on Windows (Mike Williams). + +Patch 9.1.0456 +Problem: Left shift is incorrect with vartabstop and shiftwidth=0 +Solution: Make tabstop_at() function aware of shift direction + (Gary Johnson) + +Patch 9.1.0457 +Problem: tests: test_gui fails on Wayland (after: 9.1.0064, Gary Johnson) +Solution: Drop the "empty($WAYLAND_DISPLAY)" condition in the test + +Patch 9.1.0458 +Problem: Coverity complains about division by zero +Solution: Check explicitly for sw_val being zero + Shouldn't happen, since tabstop value should always be larger than + zero. So just add this as a safety measure. + +Patch 9.1.0459 +Problem: Vim9: import autoload does not work with symlink (Olivier Dormond) +Solution: Set sn_autoload_prefix in check_script_symlink (nwounkn) + +Patch 9.1.0460 +Problem: filetype: lintstagedrc files are not recognized +Solution: Recognize '.lintstagedrc' files as json filetype (İlyas Akın). + +Patch 9.1.0461 +Problem: too many strlen() calls in drawline.c +Solution: Refactor code to avoid strlen() (John Marriott). + +Patch 9.1.0462 +Problem: eval5() and eval7 are too complex +Solution: Refactor eval5() and eval7() in eval.c (Yegappan Lakshmanan). + +Patch 9.1.0463 +Problem: no fuzzy-matching support for insert-completion +Solution: Enable insert-mode completion with fuzzy-matching + using :set completopt+=fuzzy (glepnir). + +Patch 9.1.0464 +Problem: No whitespace padding in commentstring option in ftplugins +Solution: Change default to include whitespace padding, update + existing filetype plugins with the new default value (Riley Bruins) + +Patch 9.1.0465 +Problem: missing filecopy() function +Solution: Implement filecopy() Vim script function (Shougo Matsushita). + +Patch 9.1.0466 +Problem: Missing comments for fuzzy completion (after 9.1.0463) +Solution: Add more comments, adjust indentation slightly (glepnir). + +Patch 9.1.0467 +Problem: typos in some comments (after v9.1.0466) +Solution: Fix comments (zeertzjq). + +Patch 9.1.0468 +Problem: GvimExt does not consult HKEY_CURRENT_USER +Solution: Make GvimExt first consult HKEY_CURRENT_USER and then fall + back to HKEY_LOCAL_MACHINE to find gvim (David Wagner) + +Patch 9.1.0469 +Problem: Cannot have buffer-local value for 'completeopt' (Nick Jensen). +Solution: Make 'completeopt' global-local (zeertzjq). + +Patch 9.1.0470 +Problem: tests: Test_ColonEight_MultiByte() fails on MS-Windows +Solution: Mark test as flaky + +Patch 9.1.0471 +Problem: Crash when using autocmd_get() after removing event inside + autocmd (Sergey Vlasov) +Solution: Check that the pattern is NULL (zeertzjq). + +Patch 9.1.0472 +Problem: Inconsistencies between functions for option flags. +Solution: Consistently use "unsigned int" as return type and rename + get_bkc_value() to get_bkc_flags() (zeertzjq). + +Patch 9.1.0473 +Problem: term_start() does not clear vertical modifier +Solution: Clear the flag after splitting the window (Yegappan Lakshmanan). + +Patch 9.1.0474 +Problem: CI: Test_ColonEight() fails on github runners (Ken Takata) +Solution: Run the test for files on the C: drive, where dos shortnames + are still enabled, refactor the tests to use a single setup + function for the preparation. + +Patch 9.1.0475 +Problem: cmod_split modifier is always reset in term_start() +Solution: Only clear the WSP_VERT flag, if it is not already in + cmdmod.cmod_split (Yegappan Lakshmanan). + +Patch 9.1.0476 +Problem: Cannot see matched text in popup menu +Solution: Introduce 2 new highlighting groups: PmenuMatch and + PmenuMatchSel (glepnir). + +Patch 9.1.0477 +Problem: block_editing errors out when using + (Ali Rizvi-Santiago, after v9.1.0274) +Solution: Change ins_len from size_t to int so that the test + if ins_len is negative actually works properly. + +Patch 9.1.0478 +Problem: Potential deref of NULL pointer in fuzzy_match_str_with_pos() + on cleanup (after v9.1.0476) +Solution: Only free the pointer if it is non-NULL (glepnir). + +Patch 9.1.0479 +Problem: fuzzy_match_str_with_pos() does unnecessary list operations. +Solution: Use fuzzy_match() directly (zeertzjq). + +Patch 9.1.0480 +Problem: fuzzy string matching executed when not needed +Solution: When no leader is available, can skip fuzzy logic, so return + early (glepnir). + +Patch 9.1.0481 +Problem: Vim9: term_getjob() throws an exception on error +Solution: Return null_job instead, when there is no job (Ernie Rael). + +Patch 9.1.0482 +Problem: termdebug plugin needs more love +Solution: start with some more Vim9 refactoring to improve maintenance and + readability (Ubaldo Tiberi). + +Patch 9.1.0483 +Problem: glob() not sufficiently tested +Solution: Add more tests for directory containing [] chars. + +Patch 9.1.0484 +Problem: Sorting of completeopt+=fuzzy is not stable. +Solution: Compare original indexes when scores are the same (zeertzjq). + +Patch 9.1.0485 +Problem: Matched text shouldn't be highlighted in "kind" and "menu". +Solution: Pass hlf_T instead of the attribute. Fix indent (zeertzjq). + +Patch 9.1.0486 +Problem: filetype: Snakemake files are not recognized +Solution: Detect '*.smk' and Snakefile files as snakemake filetype + (Riley Bruins) + +Patch 9.1.0487 +Problem: completed item not update on fuzzy completion +Solution: Reset compl_shown_match when at original match position (glepnir). + +Patch 9.1.0488 +Problem: Wrong padding for pum "kind" with 'rightleft'. +Solution: Fix off-by-one error (zeertzjq). + +Patch 9.1.0489 +Problem: default completion may break with fuzzy +Solution: Check that completion_match_array is not null (glepnir). + +Patch 9.1.0490 +Problem: minor style problems with Patch 9.1.0487 +Solution: use shown_compl instead of after_first_compl variable (glepnir). + +Patch 9.1.0491 +Problem: Cmdline pum doesn't work properly with 'rightleft'. +Solution: Don't use curwin->w_p_rl in cmdline mode in pum_redraw(). Use + a static variable since pum_may_redraw() may be called in any + mode. Also correct position of other popups with 'rightleft' + (zeertzjq). + +Patch 9.1.0492 +Problem: Vim-script files may not be recognised +Solution: Add shebang line detection (Doug Kearns) + +Patch 9.1.0493 +Problem: Test for Patch 9.1.0489 doesn't fail without the fix. +Solution: Use "!" flag of feedkeys() so that ex_normal_busy is not set + and ins_compl_check_keys() is not skipped (zeertzjq). + +Patch 9.1.0494 +Problem: Wrong matched text highlighted in pum with 'rightleft'. +Solution: Match using the original text instead of the reversed text + (zeertzjq). + +Patch 9.1.0495 +Problem: Matched text isn't highlighted in cmdline pum. +Solution: Use cmdline completion pattern in cmdline mode (zeertzjq). + +Patch 9.1.0496 +Problem: matched text is highlighted case-sensitively +Solution: Use MB_STRNICMP, update highlighting when the base changes (glepnir) + +Patch 9.1.0497 +Problem: termdebug can be further improved +Solution: Refactor save/restore, update docs, add a new save/restore test + (Ubaldo Tiberi). + +Patch 9.1.0498 +Problem: getcmdcompltype() interferes with cmdline completion. +Solution: Don't set expand context when it's already set (zeertzjq). + +Patch 9.1.0499 +Problem: MS-Windows: doesn't handle symlinks properly (Timothy Madden) +Solution: Implement lstat() on MS-Windows (LemonBoy). + +Patch 9.1.0500 +Problem: cannot switch buffer in a popup (Yggdroot) +Solution: Add popup_setbuf() function. + +Patch 9.1.0501 +Problem: too complicated mapping restore in termdebug +Solution: Simplify unmapping logic, add a few more tests (Ubaldo Tiberi). + +Patch 9.1.0502 +Problem: MS-Windows: too much legacy code +Solution: Clean up old code (Ken Takata). + +Patch 9.1.0503 +Problem: cannot use fuzzy keyword completion (Maxim Kim) +Solution: Add the "fuzzycollect" value for the 'completeopt' + setting, to gather matches using fuzzy logic (glepnir). + +Patch 9.1.0504 +Problem: inner-tag textobject confused about ">" in attributes +Solution: Skip over quoted '>' when determining the start position + +Patch 9.1.0505 +Problem: filetype: Faust files are not recognized +Solution: Detect '*.lib' files as Faust filetype, add detection for + '*.dsp' files (Faust or Make), remove '*.lib' from Cobol + filetype (PowerUser64) + +Patch 9.1.0506 +Problem: filetype: .envrc & .prettierignore not recognized +Solution: Detect '.envrc' as shell and '.prettierignore' as gitignore + filetype (Tyler Miller) + +Patch 9.1.0507 +Problem: hard to detect cursor movement in the command line +Solution: Add the CursorMovedC autocommand (Shougo Matsushita). + +Patch 9.1.0508 +Problem: termdebug plugin can be further improved +Solution: Add sanity-check, timeout config, change vars to bool + update docs, add more tests (Ubaldo Tiberi). + +Patch 9.1.0509 +Problem: not possible to translate Vim script messages (RestorerZ) +Solution: Implement bindtextdomain() and gettext() to support Vim script + message translations (Christ van Willegen). + +Patch 9.1.0510 +Problem: CI: test_gettext fails on MacOS14 + MSVC Win (after v9.1.0509) +Solution: Skip the test for now. + +Patch 9.1.0511 +Problem: CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507) +Solution: Remove the premature triggering. Also don't trigger when + cursor didn't move (zeertzjq). + +Patch 9.1.0512 +Problem: Mode message for spell completion doesn't match allowed keys + (Kyle Kovacs) +Solution: Show "^S" instead of "s" (zeertzjq). + +Patch 9.1.0513 +Problem: Vim9: segfault with object comparisons +Solution: Increment recusive_cnt before calling typval_compare_object() + (Ernie Rael) + +Patch 9.1.0514 +Problem: Vim9: issue with comparing objects recursively (Yinzuo Jiang) +Solution: only set recursive == TRUE, when called from tv_equal(), not + from typeval_compare_object(), refactor code into object_equal() + function (LemonBoy). + +Patch 9.1.0515 +Problem: Vim9: segfault in object_equal() +Solution: Test for object pointer being NULL, before dereferencing them + (Ernie Rael). + +Patch 9.1.0516 +Problem: need more tests for nested dicts and list comparision +Solution: Add tests for comparing deeply nested List/Dict values + (Yegappan Lakshmanan). + +Patch 9.1.0517 +Problem: MS-Windows: too long lines in Make_mvc.mak +Solution: Wrap long lines in Make_mvc.mak (Ken Takata). + +Patch 9.1.0518 +Problem: initialize the random buffer can be improved +Solution: Refactor init_srand() function, move machine-specific parts to + os_mswin and os_unix, implement a fallback for Windows 10 and + later (LemonBoy). + +Patch 9.1.0519 +Problem: MS-Windows: libvterm compilation can be optimized +Solution: Enable batch inference for libvterm (Ken Takata). + +Patch 9.1.0520 +Problem: Vim9: incorrect type checking for modifying lists +Solution: Correctly assign the member declared types and generate + typechecks, add disassembly test (LemonBoy). + +Patch 9.1.0521 +Problem: if_py: _PyObject_CallFunction_SizeT is dropped in Python 3.13 +Solution: define PyObject_CallFunction for Python >= 3.13 (Yaakov Selkowitz). + +Patch 9.1.0522 +Problem: Vim9: string(object) hangs for recursive references +Solution: Handle recursive objects specifically, add a hang test and a + compare test (Ernie Rael) + +Patch 9.1.0523 +Problem: Vim9: cannot downcast an object (Ernie Rael) +Solution: Fix class downcasting issue (LemonBoy). + +Patch 9.1.0524 +Problem: the recursive parameter in the *_equal functions can be removed +Solution: Remove the recursive parameter in dict_equal(), list_equal() + object_equal and tv_equal(). Use a comparison of the static + var recursive_cnt == 0 to determine whether or not tv_equal() + has been called recursively (Yinzuo Jiang). + +Patch 9.1.0525 +Problem: Right release selects immediately when pum is truncated. +Solution: Use pum_height instead of pum_size when checking click row. + Don't place it above mouse row when there is more space below. + (zeertzjq) + +Patch 9.1.0526 +Problem: Cursor is moved to bottom of window trying to pagescroll when + already at the start of the buffer (Asheq Imran, after v9.1.0357) +Solution: Don't move cursor when buffer content did not move (Luuk van Baal). + +Patch 9.1.0527 +Problem: inconsistent parameter in Makefiles for Vim executable +Solution: consistently use $VIMPROG across all Makefiles (RestorerZ). + +Patch 9.1.0528 +Problem: spell completion message still wrong in translations + (after 9.1.0512) +Solution: Update translation files with the new message (Kyle Kovacs). + +Patch 9.1.0529 +Problem: silent! causes following try/catch to not work (Malcolm Rowe) +Solution: consider emsg_silent in handle_did_throw() and do not abort + evaluation flow for :silent! (LemonBoy). + +Patch 9.1.0530 +Problem: xxd: MSVC warning about non-ASCII character +Solution: Specify source-charset:utf-8 in Makefile (Ken Takata). + +Patch 9.1.0531 +Problem: resource leak in mch_get_random() (after v9.1.0518) +Solution: close file descriptor after reading successfully from /dev/urandom + +Patch 9.1.0532 +Problem: filetype: Cedar files not recognized +Solution: Detect '*.cedar' files as cedar filetype (Riley Bruins). + +Patch 9.1.0533 +Problem: Vim9: need more tests for nested objects equality +Solution: Add more tests (Ernie Rael). + +Patch 9.1.0534 +Problem: completion wrong with fuzzy when cycling back to original + (Quan Nguyen) +Solution: Reset show_match_ok when cp_score is zero (glepnir). + +Patch 9.1.0535 +Problem: newline escape wrong in ex mode (Konrad Schwarz) +Solution: Partly revert Patch 7.3.014, remove backslash in front of a + newline when not in prompt mode in ex line mode (Mohamed Akram). + +Patch 9.1.0536 +Problem: filetype: zone files are not recognized (rpdprd) +Solution: Detect '*.zone' files as bindzone filetype. + +Patch 9.1.0537 +Problem: signed number detection for CTRL-X/A can be improved (Chris Patuzzo) +Solution: Add the new "blank" value for the 'nrformat' setting. This will make + Vim assume a signed number only if there is a blank in front of the + sign (distobs). + +Patch 9.1.0538 +Problem: not possible to assign priority when defining a sign + (Mathias Fußenegger) +Solution: Add the priority argument for the :sign-define ex command and + the sign_define() function (LemonBoy). + +Patch 9.1.0539 +Problem: Not enough tests for what v9.1.0535 fixed +Solution: Add another test for ex-mode. + +Patch 9.1.0540 +Problem: Unused assignment in sign_define_cmd() +Solution: Remove the assignment. Also document the "priority" flag of + sign_define() (zeertzjq). + +Patch 9.1.0541 +Problem: failing test with Vim configured without channel +Solution: In the test Test_null_values() verify that the 'channel' and + 'job' feature is present in Vim. (Dominique Pellé). + +Patch 9.1.0542 +Problem: Vim9: confusing string() output for object functions +Solution: improve the output for object functions (Ernie Rael). + +Patch 9.1.0543 +Problem: Behavior of CursorMovedC is strange. +Solution: Also trigger when the cmdline has changed (zeertzjq). + +Patch 9.1.0544 +Problem: filetype: ldapconf files are not recognized +Solution: Detect '.ldaprc', 'ldap.conf' and 'ldaprc' files as ldapconf + filetype, include a simple ldapconf ftplugin file (Riley Bruins). + +Patch 9.1.0545 +Problem: MSVC conversion warning (LemonBoy, after 9.1.0522) +Solution: Use size_t instead of int, fix style of casts (Ernie Rael). + +Patch 9.1.0546 +Problem: vim-tiny fails on CTRL-X/CTRL-A (Rob Foehl, after 9.1.0172) +Solution: Move #ifdefs, so that after changing the line in del_bytes, + the cached textlen value is invalidated. + +Patch 9.1.0547 +Problem: No way to get the arity of a Vim function (Austin Ziegler) +Solution: Enhance get() Vim script function to return the function + argument info using get(func, "arity") (LemonBoy). + +Patch 9.1.0548 +Problem: it's not possible to get a unique id for some vars +Solution: Add the id() Vim script function, which returns a unique + identifier for object, dict, list, job, blob or channel + variables (Ernie Rael). + +Patch 9.1.0549 +Problem: fuzzycollect regex based completion not working as expected +Solution: Revert Patch v9.1.0503 (glepnir). + +Patch 9.1.0550 +Problem: filetype: antlr4 files are not recognized +Solution: Detect '*.g4' as antlr4 filetype, include a simple antlr4 + syntax and filetype plugin (Yinzuo Jiang). + +Patch 9.1.0551 +Problem: filetype: htmlangular files are not properly detected +Solution: Use the new htmlangular filetype for angular files, because + since angular v17, those are no longer valid HTML files + (Dennis van den Berg). + +Patch 9.1.0552 +Problem: No test for antlr4 filetype (after 9.1.0550) +Solution: Add a simple filename test. + +Patch 9.1.0553 +Problem: filetype: *.mcmeta files are not recognized +Solution: Detect '*.mcmeta' files as json filetype (Tomodachi94). + +Patch 9.1.0554 +Problem: :bw leaves jumplist and tagstack data around (Paul "Joey" Clark) +Solution: Wipe jumplist and tagstack references to the wiped buffer + (LemonBoy). + +Patch 9.1.0555 +Problem: filetype: angular ft detection is still problematic (after 9.1.0551) +Solution: Detect htmlangular filetype only by inspecting the content, + do not try to determine it from a generic name like + '*.component.html'. + +Patch 9.1.0556 +Problem: :bwipe doesn't remove file from jumplist and tagstack of other + tabpages. Time complexity of mark_forget_file() is O(n^2) when + removing all entries (after v9.1.0554) +Solution: Use FOR_ALL_TAB_WINDOWS(). Start the loops over the arrays + from the end instead of the start (zeertzjq). + +Patch 9.1.0557 +Problem: moving in the buffer list doesn't work as documented + (SenileFelineS) +Solution: Skip non-help buffers, when run from normal buffers, else + only move from help buffers to the next help buffer (LemonBoy). + +Patch 9.1.0558 +Problem: filetype: prolog detection can be improved +Solution: Improved the Prolog file detection regex and added tests for + all cases (igna_martinoli). + +Patch 9.1.0559 +Problem: translation of vim scripts can be improved (after v9.1.0509) +Solution: improve documentation, add tests, include missing + libraries for the Windows CI (RestorerZ). + +Patch 9.1.0560 +Problem: bindtextdomain() does not indicate an error (after v9.1.509) +Solution: return false on failure (OOM) (Chris van Willegen). + +Patch 9.1.0561 +Problem: netbeans: variable used un-initialized (Coverity) (after v9.1.0557) +Solution: Properly initialize exarg_T struct for use with netbeans + The actual exarg.cmdidx doesn't really matter, but let's use + something, that is not affected by the recent changes (going through + the buffer list) and use CMD_USER. + +Patch 9.1.0562 +Problem: tests: inconsistency in test_findfile.vim, it saves and restores + 'shellslash', but doesn't actually set it +Solution: Set shellslash explicitly (zeertzjq). + +Patch 9.1.0563 +Problem: Cannot process any Key event. +Solution: Add the KeyInputPre autocmd (Shougo Matsushita). + +Patch 9.1.0564 +Problem: id() can be made faster +Solution: don't use printf(), use clever shift of pointer (Ernie Rael). + +Patch 9.1.0565 +Problem: Stop directory doesn't work properly in 'tags' (Jesse Pavel). +Solution: Also move the stop directory forward by one byte (zeertzjq). + +Patch 9.1.0566 +Problem: Stop directory in findfile() doesn't work properly without a + trailing slash. +Solution: Always use fnamencmp(), not fnamecmp(). + +Patch 9.1.0567 +Problem: Cannot use relative paths as findfile() stop directories. +Solution: Change a relative path to an absolute path (zeertzjq). + +Patch 9.1.0568 +Problem: Cannot expand paths from 'cdpath' setting (Daniel Hahler) +Solution: Implement 'cdpath' completion, add the new 'dir_in_path' + completion type (LemonBoy). + +Patch 9.1.0569 +Problem: fnamemodify() treats ".." and "../" differently. +Solution: Expand ".." properly like how "/.." is treated in 8.2.3388 + (zeertzjq). + +Patch 9.1.0570 +Problem: tests: test_gettext_make can be improved (after v9.1.0559) +Solution: Improve the test (Ken Takata). + +Patch 9.1.0571 +Problem: tests: Test_gui_lowlevel_keyevent is flaky +Solution: Mark as flaky (Ken Takata). + +Patch 9.1.0572 +Problem: cannot specify tab page closing behaviour (Gianluca Pacchiella). +Solution: Add the 'tabclose' option (LemonBoy). + +Patch 9.1.0573 +Problem: ex: no implicit print for single addresses +Solution: Explicitly print even during single addresses, as requested by POSIX + (Mohamed Akram) + +Patch 9.1.0574 +Problem: ex: wrong handling of commands after bar +Solution: for :append, :insert and :change use the text after the bar as input + for those commands. This is what POSIX requests (Mohamed Akram). + +Patch 9.1.0575 +Problem: Wrong comments in alt_tabpage() (after v9.1.0572) +Solution: Correct the comments (zeertzjq). + +Patch 9.1.0576 +Problem: tests: still an issue with test_gettext_make (after v9.1.0570) +Solution: Compare the getenv() output against v:null to verify + that $GETTEXT_PATH was set or not (Ken Takata). + +Patch 9.1.0577 +Problem: Unnecessary checks for v:sizeoflong in test_put.vim. They are + no longer necessary as Patch 8.2.3661 has changed the count to + be within 32-bit integer limit. +Solution: Remove the checks (zeertzjq). + +Patch 9.1.0578 +Problem: no tests for :Tohtml +Solution: Add two basic tests (Yinzuo Jiang). + +Patch 9.1.0579 +Problem: Ex command is still executed after giving E1247. +Solution: Indicate the error properly and set cmd to NULL (zeertzjq). + +Patch 9.1.0580 +Problem: An :lmap mapping for a printable keypad key is not applied + when typing it in Select mode. +Solution: Change keypad key to ASCII after setting vgetc_char (zeertzjq). + +Patch 9.1.0581 +Problem: style: Various lines are indented inconsistently +Solution: Retab these lines and correct some comments (zeertzjq). + +Patch 9.1.0582 +Problem: Printed line no longer overwrites colon when pressing Enter in + Ex mode (after 9.1.0573). +Solution: Restore the behavior of pressing Enter in Ex mode (zeertzjq). + +Patch 9.1.0583 +Problem: filetype: *.pdf_tex files are not recognized +Solution: Detect '*.pdf_tex' files as tex filetype (Jonas Dujava). + +Patch 9.1.0584 +Problem: Warning about redeclaring f_id() non-static +Solution: Declare f_id() static (John Marriott). + +Patch 9.1.0585 +Problem: tests: test_cpoptions leaves swapfiles around +Solution: Use :bw! instead of :close! + +Patch 9.1.0586 +Problem: ocaml runtime files are outdated +Solution: Sync those files with the upstream repo, detect a few more ocaml + files (Yinzuo Jiang). + +Patch 9.1.0587 +Problem: tests: Test_gui_lowlevel_keyevent is still flaky (after v9.1.0571) +Solution: Skip generating key event for Ctrl-C, remove the test_is_flaky + variable again (Ken Takata). + +Patch 9.1.0588 +Problem: The maze program no longer compiles on newer clang +Solution: Use ANSI C function definition for main() (Mohamed Akram). + +Patch 9.1.0589 +Problem: vi: d{motion} and cw command work differently than expected +Solution: add new cpo-z flag to make the behaviour configurable + +Patch 9.1.0590 +Problem: Vim9: crash when accessing getregionpos() return value. +Solution: Correct the return type (zeertzjq). + +Patch 9.1.0591 +Problem: filetype: *.wl files are not recognized +Solution: Detect '*.wl' files as Mathematica package files (Jonas Dujava). + +Patch 9.1.0592 +Problem: filetype: Mediawiki files are not recognized +Solution: detect "*.mw" and "*.wiki" as mediawiki filetype, + include basic syntax and filetype plugins (AvidSeeker). + +Patch 9.1.0593 +Problem: filetype: Asymptote files are not recognized +Solution: detect '*.asy' files as asy filetype, include ftplugin and syntax + plugin (AvidSeeker). + +Patch 9.1.0594 +Problem: Unnecessary redraw when setting 'winfixbuf'. +Solution: Remove P_RWIN flag (zeertzjq). + +Patch 9.1.0595 +Problem: make errors out with the po Makefile + (yanivshlom, after v9.1.0558) +Solution: Set variables differently (RestorerZ). + +Patch 9.1.0596 +Problem: filetype: Debian devscripts config files are not recognized +Solution: detect devscripts.conf and .devscripts files as sh filetype + (sourced by /bin/sh). + +Patch 9.1.0597 +Problem: KeyInputPre cannot get the (unmapped typed) key (after v9.1.0563) +Solution: Add the "typedchar" property to the v:event dict + (Shougo Matsushita). + +Patch 9.1.0598 +Problem: fuzzy completion does not work with default completion +Solution: Make it work (glepnir). + +Patch 9.1.0599 +Problem: Termdebug: still get E1023 when specifying arguments and using + a prompt buffer. +Solution: Use empty() instead of len(). Add a test. Fix wrong order of + arguments to assert_equal() in Test_termdebug_basic() (zeertzjq). + +Patch 9.1.0600 +Problem: unused function typval_compare_class() and error constants +Solution: Remove function typval_compare_class() and ifdef out + unused error constants (Dominique Pellé). + +Patch 9.1.0601 +Problem: Wrong cursor position with 'breakindent' when a double-width + character doesn't fit in a screen line (mikoto2000) +Solution: Include the width of the 'breakindent' properly (zeertzjq). + +Patch 9.1.0602 +Problem: filetype: Prolog detection can be improved +Solution: Update the prolog detection regex (igna_martinoli). + +Patch 9.1.0603 +Problem: Pattern detection for Dracula language uses "*lvs" and "*lpe". + as there is no dot, those are not treated as extensions which + they should (judging by 'runtime/syntax/dracula.vim' and + common sense). +Solution: Use "*.lvs" and "*.lpe" patterns (Evgeni Chasnovski). + +Patch 9.1.0604 +Problem: popup_filter during Press Enter prompt seems to hang +Solution: Return early, when need_wait_return is set (Ernie Rael). + +Patch 9.1.0605 +Problem: internal error with fuzzy completion (techntools) +Solution: Only fuzzy complete the pattern after directory separator + (glepnir) + +Patch 9.1.0606 +Problem: tests: generated files may cause failure in test_codestyle +Solution: Exclude OLE-related generated files from style checks (Ken Takata). + +Patch 9.1.0607 +Problem: termdebug: uses inconsistent style +Solution: termdebug: deprecate numeric values for v:true/false, fix white + space style in the plugin (Ubaldo Tiberi). + +Patch 9.1.0608 +Problem: Coverity warns about a few potential issues +Solution: Fix those issues (see details below) + +Patch 9.1.0609 +Problem: outdated comments in Makefile +Solution: Update outdated comments, update rule for vimtags (Shane Harper). + +Patch 9.1.0610 +Problem: filetype: OpenGL Shading Language files are not detected +Solution: Detect various file extensions as GLSL filetype, include + indent and syntax script, do no longer recognize '*.comp' + as Mason filetype (Gregory Anders). + +Patch 9.1.0611 +Problem: Ambiguous mappings not correctly resolved with modifyOtherKeys +Solution: Check for termcode when an upper case mapping is received and + does not match (Oleg Goncharov). + +Patch 9.1.0612 +Problem: filetype: deno.lock file not recognized +Solution: detect 'deno.lock' as json filetype (カワリミ人形). + +Patch 9.1.0613 +Problem: tests: termdebug test may fail and leave temp file around + (Dominique Pellé) +Solution: Only run balloon_show() if the function exists, validate + termdebug is running using the g: termdebug_is_running var, + use defer to delete temporary files. + +Patch 9.1.0614 +Problem: Vim syntax file changes to :set command highlighting render + some test dump files invalid (zeertzjq) +Solution: Regenerate the affected dump files (Doug Kearns). + +Patch 9.1.0615 +Problem: Unnecessary STRLEN() in make_percent_swname() +Solution: Pass the end of "dir" to make_percent_swname() (zeertzjq). + +Patch 9.1.0616 +Problem: filetype: Make syntax highlighting off for MS Makefiles +Solution: Try to detect MS Makefiles and adjust syntax rules to it. + (Ken Takata) + +Patch 9.1.0617 +Problem: Cursor moves beyond start of a folded range at the end of a buffer. +Solution: Move cursor to start of fold when going beyond end of buffer. + Check that cursor moved to detect FAIL in outer cursor function. + (Luuk van Baal) + +Patch 9.1.0618 +Problem: cannot mark deprecated attributes in completion menu +Solution: Add hl_group to the Dictionary of supported completion fields + (glepnir). + +Patch 9.1.0619 +Problem: tests: test_popup fails (after v9.1.0618) +Solution: Correct test, move combining extra attributes to + pum_compute_text_attrs() (glepnir). + +Patch 9.1.0620 +Problem: Vim9: segfauls with null objects (after v9.1.0219) +Solution: Check object pointer being NULL (Ernie Rael). + +Patch 9.1.0621 +Problem: MS-Windows: startup code can be improved +Solution: Re-work and optimize win32 startup code (Ken Takata). + +Patch 9.1.0622 +Problem: MS-Windows: mingw-build can be optimized +Solution: Use --gc-sections to reduce the size of the executable + (Ken Takata) + +Patch 9.1.0623 +Problem: Mingw: warnings when trying to delete non-existing files +Solution: Use "rm -f" instead of "rm" to suppress errors for + non-existing files (Ken Takata) + +Patch 9.1.0624 +Problem: ex command modifiers are not found (Ingo Karkat, after v9.1.0352) +Solution: Partly revert Patch v9.1.0352, ignore :{ and :} + +Patch 9.1.0625 +Problem: tests: test output all translated messages for all + translations +Solution: Redirect the output of check.vim to /dev/null, it's not that + useful. + +Patch 9.1.0626 +Problem: Vim9: need more tests with null objects (after v9.1.0620) +Solution: add one more test with null_object (Ernie Rael). + +Patch 9.1.0627 +Problem: MinGW: build-error when COVERAGE is enabled + (after v9.1.0621) +Solution: Fix regressions in v9.1.0621 and v9.1.0622 (Ken Takata). + +Patch 9.1.0628 +Problem: MinGW: coverage files are not cleaned up +Solution: Adjust clean rule to remove the coverage files (Ken Takata). + +Patch 9.1.0629 +Problem: Rename of pum hl_group is incomplete in source. +Solution: Also rename the test function. Rename to user_hlattr in code + to avoid confusion with pum_extra. Add test with matched text + highlighting (zeertzjq). + +Patch 9.1.0630 +Problem: MS-Windows: build fails with VIMDLL and mzscheme +Solution: Define scheme_register_tls_space() inside gvim.exe + and refer to it from the dll (Ken Takata). + +Patch 9.1.0631 +Problem: wrong completion list displayed with non-existing dir + fuzzy + completion (kawarimidoll) +Solution: clear list of matches, if leader did not use fuzzy match (glepnir). + +Patch 9.1.0632 +Problem: MS-Windows: Compiler Warnings +Solution: Fix the warnings (Ken Takata). + +Patch 9.1.0633 +Problem: Compilation warnings with `-Wunused-parameter` +Solution: Add the `UNUSED` macro where needed, and remove some + superfluous ones (Dominique Pellé). + +Patch 9.1.0634 +Problem: Ctrl-P not working by default (Jesse Pavel, after v9.1.0598) +Solution: Revert part of v9.1.0598 and set cur_match_pos + correctly according to compl_dir_forward(). + +Patch 9.1.0635 +Problem: filetype: SuperHTML template files not recognized +Solution: Update the filetype detection code to detect '*.shtml' either + as HTML (Server Side Includes) or SuperHTML (template files) + (EliSauder). + +Patch 9.1.0636 +Problem: filetype: ziggy files are not recognized +Solution: detect '*.ziggy' files as ziggy filetype, + detect '*.ziggy-schema' files as ziggy-schema filetype (EliSauder). + +Patch 9.1.0637 +Problem: MS-Windows: Style issues in MSVC Makefile +Solution: Fix style issues, simplify logic (Ken Takata). + +Patch 9.1.0638 +Problem: E1510 may happen when formatting a message (after 9.1.0181). +Solution: Only give E1510 when using typval (zeertzjq). + +Patch 9.1.0639 +Problem: channel timeout may wrap around +Solution: Correct timeout calculation when GetTickCount() wraps around + (Ken Takata). + +Patch 9.1.0640 +Problem: Mingw: Makefile can be improved +Solution: Reduce nesting level, directly check if the '-Wl,--entry' + option is required (Ken Takata). + +Patch 9.1.0641 +Problem: MS-Windows: OLE enabled in console version, may cause hang + (Linda_pp) +Solution: Disable OLE for console version (Ken Takata). + +Patch 9.1.0642 +Problem: Check that mapping rhs starts with lhs doesn't work if lhs is + not simplified. +Solution: Keep track of the mapblock containing the alternative lhs and + also compare with it (zeertzjq). + +Patch 9.1.0643 +Problem: terminal: cursor may end up on invalid position after reducing + the scrollback lines (user202729) +Solution: After reducing the scrollback size, check the cursor position, + making sure it does not end up on an invalid line. + +Patch 9.1.0644 +Problem: Unnecessary STRLEN() when applying mapping (after v9.1.0642). +Solution: Use m_keylen and vim_strnsave() (zeertzjq). + +Patch 9.1.0645 +Problem: regex: wrong match when searching multi-byte char case-insensitive + (diffsetter) +Solution: Apply proper case-folding for characters and search-string + +Patch 9.1.0646 +Problem: Vim9: imported function may not be found +Solution: Try to find the function by name (Ernie Rael). + +Patch 9.1.0647 +Problem: [security] use-after-free in tagstack_clear_entry (Suyue Guo). +Solution: Instead of manually calling vim_free() on each of the tagstack + entries, let's use tagstack_clear_entry(), which will + also free the stack, but using the VIM_CLEAR macro, which prevents a + use-after-free by setting those pointers to NULL. + +Patch 9.1.0648 +Problem: [security] double-free in dialog_changed() (SuyueGuo) +Solution: Only clear pointer b_sfname pointer, if it is different than the + b_ffname pointer. Don't try to free b_fname, set it to NULL + instead. + +Patch 9.1.0649 +Problem: Wrong comment for "len" argument of call_simple_func(). +Solution: Remove the "or -1 to use strlen()". Also change its type to + size_t to remove one cast. (zeertzjq). + +Patch 9.1.0650 +Problem: Coverity warning in cstrncmp() (after v9.1.0645). +Solution: Change the type of n2 to int (zeertzjq). + +Patch 9.1.0651 +Problem: ex: trailing dot is optional for :g and :insert/:append +Solution: Don't break out early, when the next command is empty + (Mohamed Akram). + +Patch 9.1.0652 +Problem: too many strlen() calls in syntax.c +Solution: refactor code to reduce the number or strlen() calls, get rid of + un-used SYN_NAMELEN macro (John Marriott). + +Patch 9.1.0653 +Problem: Patch v9.1.0648 not completely right (zeertzjq) +Solution: Remove always true condition. + +Patch 9.1.0654 +Problem: completion does not respect completeslash with fuzzy (egesip) +Solution: Change path separator on Windows, depending on 'completeslash' + option value (glepnir). + +Patch 9.1.0655 +Problem: filetype: goaccess config file not recognized +Solution: Detect 'goaccess.conf' as goaccess filetype, also + include a basic syntax and ftplugin (Adam Monsen) + +Patch 9.1.0656 +Problem: MS-Windows: MSVC Makefile CPU handling can be improved +Solution: Update Makefile and also remove some old code (Ken Takata). + +Patch 9.1.0657 +Problem: MS-Windows: MSVC build time can be optimized +Solution: Stop using Powershell, show detected version, read _MSC_VER + and _MSC_FULL_VER in a single cl execution. (Ken Takata). + +Patch 9.1.0658 +Problem: Coverity warns about dereferencing NULL pointer. +Solution: Bail out if vim_strrchr() returns NULL (zeertzjq). + +Patch 9.1.0659 +Problem: MS-Windows: MSVC Makefile is a bit hard to read (after v9.1.0657). +Solution: Indent the if/else statements to improve readability (Ken Takata). + +Patch 9.1.0660 +Problem: MS-Windows: Shift-Insert does not work on old conhost + (Nick Jensen, after 9.0.1146) +Solution: Handle Shift-Insert specifically (Christian Plewright). + +Patch 9.1.0661 +Problem: the zip plugin is not tested. +Solution: Include tests (Damien). + +Patch 9.1.0662 +Problem: filecopy() may return wrong value when readlink() fails. +Solution: Set ret to -1 so that 0 is returned when readlink() fails + (zeertzjq). + +Patch 9.1.0663 +Problem: tests: zip test still resets 'shellslash' option +Solution: Remove resetting the 'shellslash' option, the zip plugin should now + be able to handle this options. + +Patch 9.1.0664 +Problem: MS-Windows: console vim did not switch back to main screen on + exit +Solution: switch back to main screen on exit (Ken Takata). + +Patch 9.1.0665 +Problem: Locked variable can be changed in a :for loop. +Solution: Always do a full permission check on the first loop iteration + where ASSIGN_DECL is not set (zeertzjq). + +Patch 9.1.0666 +Problem: assert_equal() doesn't show multibyte string correctly +Solution: Properly advance over a multibyte char (zeertzjq). + +Patch 9.1.0667 +Problem: Some other options reset curswant unnecessarily when set. + (Andrew Haust) +Solution: Don't reset curswant when setting 'comments', 'commentstring' + or 'define' (zeertzjq). + +Patch 9.1.0668 +Problem: build-error with python3.12 and stable ABI (zdohnal) +Solution: Add type casts, define Py_INCREF for Python3.12 and higher + (Ken Takata). + +Patch 9.1.0669 +Problem: stable python ABI not used by default +Solution: Enable stable python ABI v3.8 when building with python3/dyn + by default, update the default Python3 version to 3.8 for + MS-Windows (Ken Takata). + +Patch 9.1.0670 +Problem: po file encoding fails on *BSD during make +Solution: Instead of using `$<` make use of variable `$?` which should + be equivalent when the rule is dependent on only a single + file (RestorerZ). + +Patch 9.1.0672 +Problem: marker folds may get corrupted on undo (Yousef Mohammed) +Solution: When adjusting folds, make sure that line1 is the lower limit + and line2 is the upper line limit. In particular, line2 should + not be able to get smaller than line1. + +Patch 9.1.0673 +Problem: Vim9: too recursive func calls when calling super-class method + with non-overriden super-call methods. (Aliaksei Budavei) +Solution: Use interface method, when super is to be used (Ernie Rael) + +Patch 9.1.0674 +Problem: Vim9: compiling abstract method fails because of missing + return (Aliaksei Budavei) +Solution: Don't require a return statement for an abstract method when + compiling (Ernie Rael). + +Patch 9.1.0675 +Problem: Patch v9.1.0674 causes problems +Solution: Revert it for now. + +Patch 9.1.0676 +Problem: style issues with man pages +Solution: Update man pages and test_xxd.vim, since it uses + the xxd man page (RestorerZ) + +Patch 9.1.0677 +Problem: :keeppatterns does not retain the substitute pattern + for a :s command +Solution: Preserve the last substitute pattern when used with the + :keeppatterns command modifier (Gregory Anders). + +Patch 9.1.0678 +Problem: [security]: use-after-free in alist_add() (SuyueGuo) +Solution: Lock the current window, so that the reference to + the argument list remains valid. + +Patch 9.1.0679 +Problem: Rename from w_closing to w_locked is incomplete (after 9.1.0678). +Solution: Rename remaining occurrences of w_closing to w_locked and + update comments (zeertzjq). + +Patch 9.1.0680 +Problem: VMS does not have defined uintptr_t +Solution: Add type definitions (Zoltan Arpadffy). + +Patch 9.1.0681 +Problem: tests: Analyzing failed screendumps is hard +Solution: Facilitate the viewing of rendered screendumps under src/ + add some documentation on how to use the viewdumps.vim + script (Aliaksei Budavei) + +Patch 9.1.0682 +Problem: Vim9: Segfault with uninitialized funcref (Daniel Viberg) +Solution: Check the Funcref for being Null before trying to access it + (Ernie Rael). + +Patch 9.1.0683 +Problem: mode() returns wrong value with mapping +Solution: Change decision priority of VIsual_active and move visual mode a bit + further down (kuuote) + +Patch 9.1.0684 +Problem: completion is inserted on Enter with "noselect" (Carman Fu) +Solution: Check noselect before update compl_shown_match (glepnir). + +Patch 9.1.0685 +Problem: too many strlen() calls in usercmd.c +Solution: Refactor code to reduce the number or strlen() calls (John Marriott) + +Patch 9.1.0686 +Problem: zip-plugin has problems with special characters (user202729) +Solution: Escape '*?[\' on Unix and handle those chars a bit differently on + MS-Windows, add a test, check before overwriting files. + +Patch 9.1.0687 +Problem: Makefile may not install desktop files +Solution: Check for "$(DESTDIR)$(DATADIR)" instead of just "$DESTDIR", + which is usually not defined, add uninstall rules for the + icons and the desktop files. + +Patch 9.1.0688 +Problem: Vim9: dereferences NULL pointer in check_type_is_value() (Suyue Guo) +Solution: Verify that the pointer is not Null. + +Patch 9.1.0689 +Problem: buffer-overflow in do_search() with 'rightleft' (SuyueGuo) +Solution: After reversing the text (which allocates a new buffer), + re-calculate the text length. + +Patch 9.1.0690 +Problem: cannot set special highlight kind in popupmenu +Solution: Add kind_hlgroup item to complete function (glepnir). + +Patch 9.1.0691 +Problem: python3: stable-abi may cause segfault on Python 3.11 + (Audrius Kažukauskas, after v9.1.0668) +Solution: Do not enable the stable Python ABI by default, only when used + with --with-python3-stable-abi argument is given + +Patch 9.1.0692 +Problem: Wrong patlen value in ex_substitute() (after 9.1.0426). +Solution: Compute patlen after finding end separator (zeertzjq). + +Patch 9.1.0693 +Problem: Configure doesn't show result when not using python3 stable + abi (after v9.1.0691) +Solution: Add back AC_MSG_RESULT() (Ken Takata). + +Patch 9.1.0694 +Problem: The matchparen plugin is slow on a long line. +Solution: Don't use a regexp to get char at and before cursor (zeertzjq). + +Patch 9.1.0695 +Problem: tests: test_crash leaves Untitled file around +Solution: Cleanup at the end of the test_crash.vim test file. + +Patch 9.1.0696 +Problem: installing runtime files fails when using SHADOWDIR +Solution: Revert part of v9.1.0609, since runtime/doc/Makefile's default + value for VIMPROG does not work if vim was built in a SHADOWDIR. + (James McCoy) + +Patch 9.1.0697 +Problem: heap-buffer-overflow in ins_typebuf (SuyueGuo) +Solution: When flushing the typeahead buffer, validate that there is enough + space left + +Patch 9.1.0698 +Problem: tests: "Untitled" file not removed when running Test_crash1_3 alone + with TEST_FILTER (after v9.1.0695) +Solution: Use a TearDown function instead of another test (zeertzjq). + +Patch 9.1.0699 +Problem: "dvgo" is not always an inclusive motion (Iain King-Speir) +Solution: Initialize the inclusive flag to false. + +Patch 9.1.0700 +Problem: possible crash with 2byte encoding and glob2regpat() +Solution: Skip over character, if it is multi-byte character. + +Patch 9.1.0701 +Problem: crash with NFA regex engine when searching for composing chars + (SuyueGuo) +Solution: When there is no composing character, break out of the loop + and check that out1 state is not null. + +Patch 9.1.0702 +Problem: Patch 9.1.0700 broke CI +Solution: Revert for now. + +Patch 9.1.0703 +Problem: possible crash with 2-byte encoding and glob2regpat() + (after v9.1.0700, v9.1.0702) +Solution: Include both bytes for a multi-byte character for an + escaped character. + +Patch 9.1.0704 +Problem: inserting with a count is inefficient +Solution: Disable calculation of the cursor position and topline, if a + count has been used (Ken Takata). + +Patch 9.1.0705 +Problem: Sorting of fuzzy filename completion is not stable +Solution: Compare indexes when scores are equal. Fix some typos (zeertzjq). + +Patch 9.1.0706 +Problem: tests: test_gettext fails when using shadow dir +Solution: Link the ru_RU directory into the shadow testdir (James McCoy). + +Patch 9.1.0707 +Problem: [security]: invalid cursor position may cause a crash + (after v9.1.0038) +Solution: Set cursor to the last character in a line, if it would + otherwise point to beyond the line; no tests added, as it + is unclear how to reproduce this. + +Patch 9.1.0708 +Problem: Window is updated with potentially invalid skipcol in recursive + window update path. I.e. cursor outside of visible range in + large line that does not fit. +Solution: Make sure it is valid (Luuk van Baal). + +Patch 9.1.0709 +Problem: GUIEnter not found in Turkish locale (James McCoy) +Solution: Explicitly compare autocommand events by ASCII value and + ignoring locale, because according to the documentation, + events are case insensitive. + +Patch 9.1.0710 +Problem: when a popup window covers the command line, + the command line is not completely cleared on popup_hide() (yu3s) +Solution: Check if the popup window covers the command line and if it + does, set the clear_cmdline flag. + +Patch 9.1.0711 +Problem: tests: test_xxd may file when using different xxd +Solution: Make Test_xxd_color_0 agnostic to xxd's path, similar to + Test_xxd_color_1 by filtering out shell command prompt in + screen dump file (James McCoy). + +Patch 9.1.0712 +Problem: tests: missing dependency of Test_gettext_makefile +Solution: Check that xgettext binary is available, else skip the test + (James McCoy). + +Patch 9.1.0713 +Problem: Newline causes E749 in Ex mode (after 9.1.0573). +Solution: Don't execute empty command followed by a newline. + +Patch 9.1.0714 +Problem: tests: GuiEnter_Turkish test may fail +Solution: The message will be translated if the Turkish message file is + installed. Use gettext() to get the expected message (Ken Takata). + +Patch 9.1.0715 +Problem: Not correctly parsing color names (chdiza, after v9.1.0709) +Solution: Revert part of the Patch that compares the color names and + fall-back to the macro STRICMP. + +Patch 9.1.0716 +Problem: resetting setcellwidth() doesn't update the screen +Solution: Redraw after clearing the cellwidth table (Ken Takata). + +Patch 9.1.0717 +Problem: Unnecessary nextcmd NULL checks in parse_command_modifiers(). +Solution: Remove them (zeertzjq). + +Patch 9.1.0718 +Problem: hard to guess the Vim Runtime Directory +Solution: Set the $MYVIMDIR environment variable to the users + personal runtime directory (e.g. ~/.vim on Linux). + +Patch 9.1.0719 +Problem: Resetting cell widths can make 'listchars' or 'fillchars' + invalid. +Solution: Check for conflicts when resetting cell widths (zeertzjq). + +Patch 9.1.0720 +Problem: Wrong breakindentopt=list:-1 with multibyte chars or TABs in + text matched by 'formatlistpat' (John M Devin) +Solution: Use the width of the match text (zeertzjq). + +Patch 9.1.0721 +Problem: tests: test_mksession does not consider XDG_CONFIG_HOME +Solution: Allow to match $HOME/.vim/ and $HOME/.config/vim for &viewdir + (John M Devin) + +Patch 9.1.0722 +Problem: crash with large id in text_prop interface + prop_add()/prop_add_list() (cposture) +Solution: Error out if the id is > INT_MAX or <= INT_MIN. + +Patch 9.1.0723 +Problem: if_python: dynamic linking fails with python3 >= 3.13 + when using non-stable ABI (zdohnal) +Solution: Do not try to import the privat python symbol + _PyObject_NextNotImplemented (Yee Cheng Chin). + +Patch 9.1.0724 +Problem: if_python: link error with python 3.13 and stable ABI (zdohnal) +Solution: Use the correct stable APIs Py_IncRef and Py_DecRef instead + (Yee Cheng Chin) + +Patch 9.1.0725 +Problem: filetype: swiftinterface files are not recognized +Solution: Detect '*.swiftinterface' files as swift filetype (LosFarmosCTL). + +Patch 9.1.0726 +Problem: not using correct python3 API with dynamic linking +Solution: Use stable IncRef / DecRef in Python 3 dynamic bindings + (Yee Cheng Chin). + +Patch 9.1.0727 +Problem: too many strlen() calls in option.c +Solution: Refactor the code to reduce the number of strlen() calls + (John Marriott) + +Patch 9.1.0728 +Problem: heap-use-after-free in garbage collection with location list + user data. +Solution: Mark user data as in use when no other window is referencing + the location list (zeertzjq). + +Patch 9.1.0729 +Problem: Wrong cursor-screenline when resizing window +Solution: Invalidate saved left_col and right_col when width1 or width2 + change. + +Patch 9.1.0730 +Problem: Crash with cursor-screenline and narrow window (elig0n) +Solution: Don't set right_col when width2 is 0 (zeertzjq). + +Patch 9.1.0731 +Problem: inconsistent case sensitive extension matching +Solution: Unify case sensitive extension matching (Evgeni Chasnovski). + +Patch 9.1.0732 +Problem: xxd: cannot use -b and -i together (Irgendwer) +Solution: Implement the missing changes (Andre Chang) + +Patch 9.1.0733 +Problem: keyword completion does not work with fuzzy (egesip) +Solution: Handle ctrl_x_mode_normal() specifically (glepnir). + +Patch 9.1.0734 +Problem: filetype: jinja files are not recognized +Solution: Detect '*.jinja' files a jinja filetype, + include jinja syntax script (Gregory Anders) + +Patch 9.1.0735 +Problem: filetype: salt files are not recognized +Solution: Detect '*.sls' files as filetype salt, + include a syntax script (Gregory Anders) + +Patch 9.1.0736 +Problem: Unicode tables are outdated +Solution: Update Unicode tables to v16 + +Patch 9.1.0737 +Problem: Asynchronous terminal jobs occassionally require more time + to complete and redraw the window +Solution: Increase the sleep value from 10 to 50 milliseconds + (Aliaksei Budavei). + +Patch 9.1.0738 +Problem: filetype: rapid files are not recognized +Solution: Detect '*.sysx' and '*.modx' as rapid filetype (KnoP-01). + +Patch 9.1.0739 +Problem: [security]: use-after-free in ex_getln.c +Solution: free pointer p a bit later (John Marriott). + +Patch 9.1.0740 +Problem: incorrect internal diff with an empty file +Solution: Set pointer to NULL, instead of using an empty line file + (Yukihiro Nakadaira). + +Patch 9.1.0741 +Problem: No way to get prompt for input()/confirm() +Solution: Add getcmdprompt() function (Shougo Matsushita). + +Patch 9.1.0742 +Problem: getcmdprompt() implementation can be improved +Solution: Improve and simplify it (h-east). + +Patch 9.1.0743 +Problem: diff mode does not handle overlapping diffs correctly +Solution: Correct the logic to handle overlapping blocks + (Yukihiro Nakadaira) + +Patch 9.1.0744 +Problem: filetype: notmuch configs are not recognised +Solution: Detect more notmuch profile configuration files + as dosini filetype (Julio B). + +Patch 9.1.0745 +Problem: filetype: bun and deno history files not recognized +Solution: Detect '.bun_repl_history' and 'deno_history.txt' as + javascript filetype (Wu, Zhenyu). + +Patch 9.1.0746 +Problem: Test_halfpage_longline() fails on large terminals (lazypingu) +Solution: Use a window with known width (zeertzjq). + +Patch 9.1.0747 +Problem: various typos in repo found +Solution: Fix typos (zeertzjq). + +Patch 9.1.0748 +Problem: The :keep{alt,jumps,marks,patterns} commmands are sometimes + misidentified as :k. +Solution: Make sure one_letter_cmd() only returns true for :k and not + other :keep* commands (Doug Kearns). + +Patch 9.1.0749 +Problem: filetype: http files not recognized +Solution: Detect '*.http' as http filetype, include + http filetype plugin (Riley Bruins) + +Patch 9.1.0750 +Problem: there are some Win9x legacy references +Solution: Remove those mentions (Nir Lichtman). + +Patch 9.1.0751 +Problem: Error callback for term_start() not used (darkseid-is) +Solution: Attach pipe to stderr if an error callback exists + +Patch 9.1.0752 +Problem: can set cedit to an invalid value +Solution: Check that the value is a valid key name (Milly) + +Patch 9.1.0753 +Problem: Wrong display when typing in diff mode with 'smoothscroll'. +Solution: Use adjust_plines_for_skipcol() (zeertzjq). + +Patch 9.1.0754 +Problem: fixed order of items in insert-mode completion menu +Solution: Introduce the 'completeitemalign' option with default + value "abbr,kind,menu" (glepnir). + +Patch 9.1.0755 +Problem: quickfix list does not handle hardlinks well +Solution: Store original file name with quickfix entry (Austin Chang) + +Patch 9.1.0756 +Problem: missing change from Patch v9.1.0754 +Solution: Use correct width for the actual item in pum_redraw() (glepnir). + +Patch 9.1.0757 +Problem: tests: messages files contains ANSI escape sequences +Solution: Filter those out in runtests.vim + +Patch 9.1.0758 +Problem: it's possible to set an invalid key to 'wildcharm' +Solution: Error out, if the 'wildcharm' value is an invalid key (Milly). + +Patch 9.1.0759 +Problem: screenpos() may return invalid position after switching buffers + (Greg Hurrell) +Solution: Reset w_leftcol if wrapping has been set after copying wrap option. + +Patch 9.1.0760 +Problem: tests: no error reported, if gen_opt_test.vim fails +Solution: Make Vim exit with return code 1 in case of any error (Milly). + +Patch 9.1.0761 +Problem: :cd completion fails on Windows with backslash in path +Solution: Switch no_bslash argument to FALSE in file_pat_to_reg_pat() + +Patch 9.1.0762 +Problem: 'cedit', 'termwinkey' and 'wildchar' may not be parsed correctly +Solution: improve string_to_key() function in option.c (Milly). + +Patch 9.1.0763 +Problem: tests: cannot run single syntax tests +Solution: Support running a subset of syntax tests (Aliaksei Budavei). + +Patch 9.1.0764 +Problem: [security]: use-after-free when closing a buffer +Solution: When splitting the window and editing a new buffer, + check whether the newly to be edited buffer has been marked + for deletion and abort in this case. + +Patch 9.1.0765 +Problem: No test for Patches 6.2.418 and 7.3.489 +Solution: Add a test. Fix some whitespace problems in test_mapping.vim. + Document the behavior (zeertzjq). + +Patch 9.1.0766 +Problem: too many strlen() calls in ex_getln.c +Solution: Refactor the code to reduce the number of strlen() calls + (John Marriott). + +Patch 9.1.0767 +Problem: A cmdlen == 0 condition is always true as ccline.cmdlen == 0 + was already checked above (after v9.1.0766). +Solution: Remove the condition and the variable (zeertzjq). + +Patch 9.1.0768 +Problem: MS-Windows: incorrect cursor position when restoring screen + (after v9.1.0664) +Solution: Restore the VTP command for switching screens back to + termcap_mode_end() (William Bresler). + +Patch 9.1.0769 +Problem: filetype: MLIR files are not recognized +Solution: Detect '*.mlir' files as mlir filetype, + include a mlir filetype plugin (Wu, Zhenyu). + +Patch 9.1.0770 +Problem: current command completion is a bit limited +Solution: Add the shellcmdline completion type and getmdcomplpat() + function (Ruslan Russkikh). + +Patch 9.1.0771 +Problem: Currently completion attribute hl_group is combined with + all items, which is redundant and confusing with kind_hlgroup +Solution: Renamed to abbr_hlgroup and combine it only with the abbr item + (glepnir). + +Patch 9.1.0772 +Problem: some missing changes from v9.1.0771 +Solution: Use correct highlighting attribute and adjust comments (glepnir). + +Patch 9.1.0773 +Problem: filetype: some Apache files are not recognized +Solution: Detect more config files from the Apache source + distribution as filetype apache (nisbet-hubbard) + +Patch 9.1.0774 +Problem: "shellcmdline" doesn't work with getcompletion(). +Solution: Use set_context_for_wildcard_arg() (zeertzjq). + +Patch 9.1.0775 +Problem: tests: not enough tests for setting options +Solution: Add more comprehensive tests to test_options (Milly). + +Patch 9.1.0776 +Problem: test_strftime may fail because of missing TZ data +Solution: Use GMT offsets to validate timezone differences (James McCoy). + +Patch 9.1.0777 +Problem: filetype: Some upstream php files are not recognized +Solution: Detect more config files from the PHP source + distribution as filetype ini (nisbet-hubbard). + +Patch 9.1.0778 +Problem: filetype: lf config files are not recognized +Solution: Detect lfrc files as lf filetype, include a syntax + script for lf files (Andis Spriņķis). + +Patch 9.1.0779 +Problem: filetype: neomuttlog files are not recognized +Solution: Detect '*.neomuttdebug' file as neomuttlog filetype, + include neomuttlog syntax script (Richard Russon). + +Patch 9.1.0780 +Problem: MS-Windows: incorrect Win32 error checking +Solution: Fix wrong order of error handling and perform + some minor refactoring (Nir Lichtman). + +Patch 9.1.0781 +Problem: tests: test_filetype fails (clason) (after v9.1.0779). +Solution: Use correct filename for neomuttlog filetype. + +Patch 9.1.0782 +Problem: tests: using wrong neomuttlog file name +Solution: Use correct file name. + +Patch 9.1.0783 +Problem: 'spell' option setting has problems +Solution: correctly check for comma for 'spellfile' option, + remove unnecessary checks, refactor slightly (Milly) + +Patch 9.1.0784 +Problem: there are several problems with python 3.13 +Solution: Fix the problems in the python3 interface (Boris Staletic) + +Patch 9.1.0785 +Problem: cannot preserve error position when setting quickfix lists +Solution: Add the 'u' action for setqflist()/setloclist() and try + to keep the closes target position (Jeremy Fleischman). + +Patch 9.1.0786 +Problem: tests: quickfix update test does not test location list + (after: v9.1.0.785) +Solution: Update Test_quickfix_buffer_contents to test with location + lists (Yegappan Lakshmanan). + +Patch 9.1.0787 +Problem: cursor position changed when using hidden terminal + and BufFilePost autocommand (Mizuno Jan Yuta) +Solution: Save and restore cursor position. + +Patch 9.1.0788 +Problem: 27;u is not decoded to literal Escape in kitty/foot +Solution: Disable XTerm modifyOtherKeys form 1 when the kitty protocol is enabled + (Christian Fillion) + +Patch 9.1.0789 +Problem: tests: ':resize + 5' has invalid space after '+' +Solution: Correct the test (Milly). + +Patch 9.1.0790 +Problem: Amiga: AmigaOS4 build should use default runtime (newlib) +Solution: Remove clib2 from compiler / linker flags (Ola Söder). + +Patch 9.1.0791 +Problem: tests: errors in gen_opt_test.vim are not shown +Solution: update gen_opt_test.vim and write test.log, + let the makefile output test.log (Milly). + +Patch 9.1.0792 +Problem: tests: Test_set_values() is not comprehensive enough +Solution: Add a lot more test cases (Milly). + +Patch 9.1.0793 +Problem: xxd: -e does add one extra space +Solution: fix it, refactor and merge some code (Aapo Rantalainen). + +Patch 9.1.0794 +Problem: tests: tests may fail on Windows environment +Solution: Use shellcmdflag=/D to skip executing autorun from the registry + (Milly). + +Patch 9.1.0795 +Problem: filetype: Vivado memory info file are not recognized +Solution: Detect '*.mmi' memory info file as xml filetype (Wu, Zhenyu). + +Patch 9.1.0796 +Problem: filetype: libtool files are not recognized +Solution: Detect '*.{lo,la,lai}' as sh filetype (Wu, Zhenyu). + +Patch 9.1.0797 +Problem: testing of options can be further improved +Solution: Split the generated option test into test_options_all.vim, + add more test cases, save and restore values, fix use-after-free. + +Patch 9.1.0798 +Problem: too many strlen() calls in cmdhist.c +Solution: Refactor code and remove strlen() calls (John Marriott). + +Patch 9.1.0799 +Problem: tests: gettwinvar()/gettabwinvar() tests are not comprehensive +Solution: Add more tests (Milly). + +Patch 9.1.0800 +Problem: tests: no error check when setting global 'termwinsize' +Solution: Also validate when using setglobal (Milly). + +Patch 9.1.0801 +Problem: tests: no error check when setting global 'termwinkey' +Solution: Also validate when using setglobal (Milly). + +Patch 9.1.0802 +Problem: tests: no error check when setting global 'fdm' to empty value +Solution: Also check global 'fdm' value for being empty (Milly). + +Patch 9.1.0803 +Problem: tests: no error check when setting global 'isk' +Solution: Also parse and check global 'isk' value (Milly). + +Patch 9.1.0804 +Problem: tests: no error check when setting global 'cc' +Solution: Also parse and check global 'cc' value (Milly). + +Patch 9.1.0805 +Problem: tests: minor issues in gen_opt_test.vim +Solution: Fix restore value for 'undolevels', fix comment, fix + wrong cpo value, add equality test for global-local options on + switchback (Milly). + +Patch 9.1.0806 +Problem: tests: no error check when setting global 'briopt' +Solution: Also parse and check global 'briopt' value (Milly). + +Patch 9.1.0807 +Problem: tests: having 'nolist' in modelines isn't always desired +Solution: Remove 'nolist' from modeline (zeertzjq). + +Patch 9.1.0808 +Problem: Terminal scrollback doesn't shrink when reducing + 'termwinscroll' +Solution: Check if option value was decreased (Milly). + +Patch 9.1.0809 +Problem: filetype: petalinux config files not recognized +Solution: Detect 'project-spec/*.conf' files as bitbake filetype (Wu, Zhenyu). + +Patch 9.1.0810 +Problem: cannot easily adjust the |:find| command +Solution: Add support for the 'findexpr' option (Yegappan Lakshmanan). + +Patch 9.1.0811 +Problem: :find expansion does not consider 'findexpr' +Solution: Support expanding :find command argument using 'findexpr' + (Yegappan Lakshmanan). + +Patch 9.1.0812 +Problem: Coverity warns about dereferencing NULL ptr in check_colorcolumn() +Solution: Verify that wp is not null before accessing it. + +Patch 9.1.0813 +Problem: no error handling with setglobal and number types +Solution: Validate values when using :setglobal with number option types + (Milly). + +Patch 9.1.0814 +Problem: mapset() may remove unrelated mapping whose {rhs} matches the + restored mapping's {lhs}. +Solution: Only match by {lhs} when unmapping for mapset() (zeertzjq). + +Patch 9.1.0815 +Problem: "above" virtual text causes wrong 'colorcolumn' position (@matrdr) +Solution: Use the number of cells instead of bytes for vcol_off_tp + (zeertzjq). + +Patch 9.1.0816 +Problem: tests: not clear what tests cause asan failures +Solution: Append testname to $ASAN_OPTIONS. + +Patch 9.1.0817 +Problem: termdebug: cannot evaluate expr in a popup +Solution: Enhance termdebug plugin and allow to evaluate expressions in + a popup window, add a unit test (Peter Wolf). + +Patch 9.1.0818 +Problem: some global functions are only used in single files +Solution: Refactor code slightly and make some more functions static + (Yegappan Lakshmanan). + +Patch 9.1.0819 +Problem: tests: need a test for findexpr and vim9 imported func +Solution: Add a test for 'findexpr' and Vim9 imported script + (Yegappan Lakshmanan) + +Patch 9.1.0820 +Problem: tests: Mac OS tests are too flaky +Solution: Increase max test timeout to 25 minutes, allow up to 10 retries on + Mac OS runners, refactor runtest.vim (Milly). + +Patch 9.1.0821 +Problem: 'findexpr' completion doesn't set v:fname to cmdline argument. +Solution: Set v:fname to the cmdline argument as-is (zeertzjq). + +Patch 9.1.0822 +Problem: topline might be changed in diff mode unexpectedly (Jaehwang Jung) +Solution: Do not re-calculate topline, when using line() func in diff mode. + +Patch 9.1.0823 +Problem: filetype: Zephyr overlay files not recognized +Solution: Detect '*.overlay' files as dts filetype, include syntax tests for + DTS files (Xudong Zheng). + +Patch 9.1.0824 +Problem: too many strlen() calls in register.c +Solution: Refactor code, add string_T struct to keep track of string lengths + (John Marriott). + +Patch 9.1.0825 +Problem: compile error for non-diff builds (after v9.1.0822) +Solution: Add #ifdef FEAT_DIFF (John Marriott). + +Patch 9.1.0826 +Problem: filetype: sway files are not recognized +Solution: Detect '*.sw' files as sway filetype, include a filetype plugin + (Riley Bruins). + +Patch 9.1.0827 +Problem: CI: tests can be improved +Solution: Collect failed indent tests, raise timeout for search() + functions when using ASAN/Valgrind (Aliaksei Budavei). + +Patch 9.1.0828 +Problem: string_T struct could be used more often +Solution: Refactor code and make use of string_T struct for key-value pairs, + reformat overlong lines (John Marriott). + +Patch 9.1.0829 +Problem: Vim source code uses a mix of tabs and spaces +Solution: Expand tabs in sound.c, this is an experiment (Luca Saccarola). + +Patch 9.1.0830 +Problem: using wrong highlight group for spaces for popupmenu +Solution: Use original attribute instead of combined attributed (glepnir). + +Patch 9.1.0831 +Problem: 'findexpr' can't be used for lambads (Justin Keyes) +Solution: Replace the findexpr option with the findfunc option + (Yegappan Lakshmanan). + +Patch 9.1.0832 +Problem: :set doesn't work for 'cot' and 'bkc' after :setlocal. +Solution: Clear the local flags when using :set (zeertzjq). + +Patch 9.1.0833 +Problem: CI: recent ASAN changes do not work for indent tests +Solution: Move code to runtime/indent/testdir/runtest.vim (Aliaksei Budavei). + +Patch 9.1.0834 +Problem: tests: 2html test fails (after b256221e8377) +Solution: Adjust testdir/samples/Test_tohtml_basic.c.html (Aliaksei Budavei). + +Patch 9.1.0835 +Problem: :setglobal doesn't work properly for 'ffu' and 'tsrfu' when + the local value is set (after v9.1.0831) +Solution: Check os_flags instead of buffer option variable (zeertzjq). + +Patch 9.1.0836 +Problem: the vimtutor can be improved +Solution: Port and include the interactive vimtutor plugin from Neovim + (by Felipe Morales) (Yegappan Lakshmanan). + +Patch 9.1.0837 +Problem: Cross-compiling to good modern operating systems is difficult as + configure assumes obscure bugs are present by default. However, + most core autoconf-based packages today assume features work + when in doubt, making cross-compilation easier. +Solution: Assume features work by default and continue to issue a warning + with the appropriate cache variable. This solution shifts the + burden onto the users of rare buggy operating systems and + makes cross-compilation work out of the box for everyone else. + +Patch 9.1.0838 +Problem: vimtutor is bash-specific (after 17c71daf83f45c3ee8) +Solution: Port back to POSIX sh (Aliaksei Budavei). + +Patch 9.1.0839 +Problem: filetype: leo files are not recognized +Solution: Detect '*.leo' files as leo filetype, include a filetype plugin + (Riley Bruins) + +Patch 9.1.0840 +Problem: filetype: idris2 files are not recognized +Solution: Detect '*.idr' files as idris2, '*.lidr' files as lidris2 + and '*.ipkg' files as ipkg filetype (Serhii Khoma) + +Patch 9.1.0841 +Problem: tests: still preferring python2 over python3 +Solution: Prefer Python 3 when picking a Python program in Vim tests, + by checking for the more specific python version first and + only when python3 not found, check for the python binary + (Yee Cheng Chin). + +Patch 9.1.0842 +Problem: not checking for the sync() systemcall +Solution: Check for sync in configure script, fix related #ifdefs + (Jonas Termansen). + +Patch 9.1.0843 +Problem: too many strlen() calls in undo.c +Solution: Refactor code and remove strlen() calls, update test_undo.vim + and close remaining open swap files (John Marriott). + +Patch 9.1.0844 +Problem: if_python: no way to pass local vars to python +Solution: Add locals argument to py3eval(), pyeval() and pyxeval() + (Ben Jackson). + +Patch 9.1.0845 +Problem: vimtutor shell script can be improved +Solution: Further improve the vimtutor shell script (Aliaksei Budavei). + +Patch 9.1.0846 +Problem: debug symbols for xxd are not cleaned in Makefile +Solution: Remove xxd.dSYM in xxds Makefile, call xxd clean target from + main Makefile (Yee Cheng Chin) + +Patch 9.1.0847 +Problem: tests: test_popupwin fails because of updated main help file +Solution: Normalize Last Change header in test_popup_setbuf screendumps + +Patch 9.1.0848 +Problem: if_lua: v:false/v:true are not evaluated to boolean +Solution: Use lua_pushboolean() instead of lua_pushinteger() (zeertzjq). + +Patch 9.1.0849 +Problem: there are a few typos in the source. +Solution: Correct typos (zeertzjq). + +Patch 9.1.0850 +Problem: Vim9: cannot access nested object inside objects + (lifepillar, 91khr, mawkish) +Solution: Add support for accessing an object member using a "any" + variable type (Yegappan Lakshmanan). + +Patch 9.1.0851 +Problem: too many strlen() calls in getchar.c +Solution: Refactor code and reduce strlen() calls (John Marriott). + +Patch 9.1.0852 +Problem: No warning when X11 registers are not available (delvh) +Solution: Output W23 once when connection to X11 clipboard/selection + is not possible, mention in the documentation, that register 0 + will be used instead. + +Patch 9.1.0853 +Problem: filetype: kubernetes config file not recognized +Solution: Detect '/.kube/config' file as yaml filetype (Jonathan Lopez). + +Patch 9.1.0854 +Problem: cannot get terminal cell size +Solution: Add getcellpixels() function to return xpixel * ypixel + cell size on terminal Unix (mikoto2000). + +Patch 9.1.0855 +Problem: setting 'cmdheight' may cause hit-enter-prompt and echo output + to be missing +Solution: Before cleaning the cmdline, check the need_wait_return flag + (nwounkn). + +Patch 9.1.0856 +Problem: mouseshape might be wrong on r and gr +Solution: Call update_mousesape(-1) immediately (Yee Cheng Chin). + +Patch 9.1.0857 +Problem: xxd: --- is incorrectly recognized as end-of-options +Solution: improve xxds end-of-option parser (DungSaga). + +Patch 9.1.0858 +Problem: Coverity complains about dead code (after v9.1.0852) +Solution: adjust #ifdef FEAT_CLIPBOARD. + +Patch 9.1.0859 +Problem: several problems with the GLVS plugin +Solution: fix issues, add regression tests, require at least Vim 9.1 + (GuyBrush) + +Patch 9.1.0860 +Problem: tests: mouse_shape tests use hard code sleep value (Bram Moolenaar) +Solution: Use WaitForAssert() instead (Yee Cheng Chin). + +Patch 9.1.0861 +Problem: Vim9: no runtime check for object member access of any var + (after: 9.1.0850) +Solution: Add runtime type compatibility check for object member + accessed using a any variable (Yegappan Lakshmanan). + +Patch 9.1.0862 +Problem: 'wildmenu' not enabled by default in nocp mode +Solution: Promote the default Vim value to true, it has been enabled + in defaults.vim anyhow, so remove it there (Luca Saccarola). + +Patch 9.1.0863 +Problem: getcellpixels() can be further improved +Solution: Improve it further, add more tests (mikoto2000). + +Patch 9.1.0864 +Problem: message history is fixed to 200 +Solution: Add the 'msghistory' option, increase the default value to 500 + (Shougo Matsushita). + +Patch 9.1.0865 +Problem: filetype: org files are not recognized +Solution: Detect '*.org' files as 'org' filetype, + include filetype and syntax plugin (Luca Saccarola). + +Patch 9.1.0866 +Problem: filetype: LLVM IR files are not recognized +Solution: Detect '*.ll' files either as lifelines or llvm filetype + (Wu, Zhenyu). + +Patch 9.1.0867 +Problem: ins_compl_add() has too many args +Solution: Refactor it and use an int array instead of 2 separate int + args (glepnir). + +Patch 9.1.0868 +Problem: the warning about missing clipboard can be improved + (after v9.1.0852) +Solution: Use different warnings depending on whether or not clipboard + support is included in Vim, update related documentation + +Patch 9.1.0869 +Problem: curswant not set on gm in folded line (citizenmatt) +Solution: In a folded line, call update_curswant_force(). + +Patch 9.1.0870 +Problem: too many strlen() calls in eval.c +Solution: Refactor eval.c to remove calls to STRLEN() (John Marriott). + +Patch 9.1.0871 +Problem: getcellpixels() can be further improved +Solution: Fix floating point exception, implement getcellpixels() in the + UI (mikoto2000). + +Patch 9.1.0872 +Problem: No test for W23 message (after v9.1.0868) +Solution: Check for W23 message when accessing the clipboard fails. + +Patch 9.1.0873 +Problem: filetype: Vivado files are not recognized +Solution: Detect '*.mss' files as 'mss' filetype (Wu, Zhenyu). + +Patch 9.1.0874 +Problem: filetype: karel files are not detected +Solution: Detect '*.kl' files as karel filetype, include syntax and filetype + plugin (Kirill Morozov). + +Patch 9.1.0875 +Problem: filetype: hyprlang detection can be improved +Solution: Detect '/hypr/*.conf' files as hyprlang filetype, + include basic syntax highlighting (Luca Saccarola). + +Patch 9.1.0876 +Problem: filetype: openCL files are not recognized +Solution: Detect '*.cl' files as opencl or lisp filetype, + include a opencl syntax and filetype plugin (Wu, Zhenyu). + +Patch 9.1.0877 +Problem: tests: missing test for termdebug + decimal signs +Solution: Add a termdebug test (Ubaldo Tiberi). + +Patch 9.1.0878 +Problem: termdebug: cannot enable DEBUG mode +Solution: Allow to specify DEBUG mode (Ubaldo Tiberi). + +Patch 9.1.0879 +Problem: source is not consistently formatted +Solution: Reformat sign.c and sound.c (Luca Saccarola). + +Patch 9.1.0880 +Problem: filetype: C3 files are not recognized +Solution: Detect '*.c3*' files as c3 filetype (Turiiya). + +Patch 9.1.0881 +Problem: GUI: message dialog may not get focus +Solution: Add window manager hint to give focus to the dialog (Chris White). + +Patch 9.1.0882 +Problem: too many strlen() calls in insexpand.c +Solution: Refactor insexpand.c and reduce number of calls to STRLEN(), + fix a warning get_next_filename_completion(), add new function + ins_compl_leader_len() (John Marriott). + +Patch 9.1.0883 +Problem: message history cleanup is missing some tests +Solution: Add tests, refactor common code into did_set_msghistory() + (Shougo Matsushita). + +Patch 9.1.0884 +Problem: gcc warns about uninitialized variable in vim_strnicmp_asc() +Solution: Initialize variable to 1 (John Marriott). + +Patch 9.1.0885 +Problem: style of sign.c can be improved +Solution: Refactor code (Luca Saccarola). + +Patch 9.1.0886 +Problem: filetype: debian control file not detected +Solution: Detect 'debian/control' files as debcontrol filetype. + +Patch 9.1.0887 +Problem: Wrong expression in sign.c (after v9.1.0885) +Solution: Remove the duplicate expression. + +Patch 9.1.0888 +Problem: leftcol property not available in getwininfo() +Solution: Add leftcol property property (glepnir). + +Patch 9.1.0889 +Problem: Possible unnecessary redraw after adding/deleting lines. +Solution: Check b_mod_set before using b_mod_xlines to avoid using stale + b_mod_xlines value (zeertzjq). + +Patch 9.1.0890 +Problem: %! item not allowed for 'rulerformat' (yatinlala) +Solution: Also allow to use %! for rulerformat option + (Yegappan Lakshmanan). + +Patch 9.1.0891 +Problem: building the completion list array is inefficient +Solution: Refactor and improve ins_compl_build_pum() func (glepnir). + +Patch 9.1.0892 +Problem: the max value of 'tabheight' is limited by other tabpages +Solution: Limit the maximum value of 'cmdheight' to the current tabpage only. + (Milly) + +Patch 9.1.0893 +Problem: No test that undofile format does not regress +Solution: Include a sample undofile to make sure we are always able to + read it. + +Patch 9.1.0894 +Problem: No test for what the spotbug compiler parses +Solution: Test &makeprg for the SpotBugs compiler plugin (Aliaksei Budavei). + +Patch 9.1.0895 +Problem: default history value is too small +Solution: Promote the change from defaults.vim back to the C core, so increase + the default 'history' option value from 50 to 200 (Lucca Saccarola) + +Patch 9.1.0896 +Problem: completion list wrong after v9.1.0891 +Solution: Update compl_mach_array after leader change (glepnir). + +Patch 9.1.0897 +Problem: filetype: pyrex files are not detected +Solution: Detect '*.pxi' and '*.pyx+' as pyrex filetype (user202729). + +Patch 9.1.0898 +Problem: runtime(compiler): pytest compiler not included +Solution: Include pytest compiler, update the compiler completion test + (Konfekt). + +Patch 9.1.0899 +Problem: default for 'backspace' can be set in C code +Solution: Promote the default for 'backspace' from defaults.vim to the C + code (Luca Saccarola). + +Patch 9.1.0900 +Problem: Vim9: digraph_getlist() does not accept bool argument (Maxim Kim) +Solution: Accept boolean as first argument (Yegappan Lakshmanan). + +Patch 9.1.0901 +Problem: MS-Windows: vimtutor batch script can be improved +Solution: Update vimtutor.bat, validate languages using Powershell + cultureinfo (RestorerZ). + +Patch 9.1.0902 +Problem: filetype: Conda configuration files are not recognized +Solution: Detect '.condarc' and 'condarc' files as yaml filetype (zeertzjq). + +Patch 9.1.0903 +Problem: potential overflow in spell_soundfold_wsal() +Solution: Protect wres from buffer overflow, by checking the length + (Zdenek Dohnal) + +Patch 9.1.0904 +Problem: Vim9: copy-paste error in class_defining_member() +Solution: Use variable type VAR_CLASS instead (Zdenek Dohnal). + +Patch 9.1.0905 +Problem: Missing information in CompleteDone event +Solution: Add complete_word and complete_type to v:event dict (glepnir). + +Patch 9.1.0906 +Problem: filetype: Nvidia PTX files are not recognized +Solution: Detect '*.ptx' files as ptx filetype (Yinzuo Jiang). + +Patch 9.1.0907 +Problem: printoptions:portrait does not change postscript Orientation +Solution: Set Orientation depending on portrait suboption. + +Patch 9.1.0908 +Problem: not possible to configure :messages +Solution: Add the 'messagesopt' option (Shougo Matsushita). + +Patch 9.1.0909 +Problem: Vim9: crash when calling instance method (Igbanam Ogbuluijah) +Solution: Pass the object when calling a partial function + (Yegappan Lakshmanan). + +Patch 9.1.0910 +Problem: 'messagesopt' does not check max wait time (after v9.1.0908) +Solution: Check for max wait value (Shougo Matsushita). + +Patch 9.1.0911 +Problem: Variable name for 'messagesopt' doesn't match short name + (after v9.1.0908) +Solution: Change p_meo to p_mopt. Add more details to docs (zeertzjq). + +Patch 9.1.0912 +Problem: xxd: integer overflow with sparse files and -autoskip +Solution: Reset zero_seen when at the limit, change the type to char + (sendittothenewts). + +Patch 9.1.0913 +Problem: no error check for neg values for 'messagesopt' (after v9.1.0908). +Solution: Add additional error checks and tests (h-east). + +Patch 9.1.0914 +Problem: Vim9: compile_assignment() is too long +Solution: Refactor compile_assignment() into smaller functions + (Yegappan Lakshmanan) + +Patch 9.1.0915 +Problem: GVim: default font size a bit too small +Solution: Increase guifont size to 12 pt on GTK builds of gVim (matveyt). + +Patch 9.1.0916 +Problem: messages.c is exceeding 80 columns +Solution: Slightly reformat messages.c (h-east). + +Patch 9.1.0917 +Problem: various vartabstop and shiftround bugs when shifting lines +Solution: Fix the bugs, add new tests for shifting lines in various ways + (Gary Johnson). + +Patch 9.1.0918 +Problem: tiny Vim crashes with fuzzy buffer completion +Solution: Adjust #ifdefs in ExpandBufnames() (826814741_6). + +Patch 9.1.0919 +Problem: filetype: some assembler are files not recognized +Solution: Detect '*.nasm' files as nasm filetype and '*.masm' as masm + filetype (Wu, Zhenyu). + +Patch 9.1.0920 +Problem: Vim9: compile_assignment() too long +Solution: Refactor compile_assignment() function and split up into + smaller parts (Yegappan Lakshmanan). + +Patch 9.1.0921 +Problem: popupmenu logic is a bit convoluted +Solution: Slightly refactor logic and use MIN/MAX() macros to simplify + (glepnir). + +Patch 9.1.0923 +Problem: wrong MIN macro in popupmenu.c (after v9.1.0921) (zeertzjq) +Solution: Change it to MAX(). + +Patch 9.1.0923 +Problem: too many strlen() calls in filepath.c +Solution: Refactor filepath.c and remove calls to STRLEN(), unify + dos_expandpath() and unix_expandpath() into a single function. + +Patch 9.1.0924 +Problem: Patch 9.1.0923 causes issues (Shane-XB-Qian) +Solution: Back-out the change. + +Patch 9.1.0925 +Problem: Vim9: expression compiled when not necessary +Solution: Do not compile when ctx_skip is set, add a few more + Vim9 expressions tests (Yegappan Lakshmanan). + +Patch 9.1.0926 +Problem: filetype: Pixi lock files are not recognized +Solution: Detect "pixi.lock" file as yaml filetype (Brandon Maier). + +Patch 9.1.0927 +Problem: style issues in insexpand.c +Solution: Add braces, use ternary operator to improve style (glepnir). + +Patch 9.1.0928 +Problem: tests: test_popupwin fails because the filter command fails +Solution: Add the "e" flag to the :s command to normalize the + screendumps Last Change header so that it doesn't fail on + "Pattern not found" + +Patch 9.1.0929 +Problem: filetype: lalrpop files are not recognized +Solution: Detect '*.lalrpop' files as lalrpop filetype (David Thievon) + +Patch 9.1.0930 +Problem: tests: test_terminal2 may hang in GUI mode +Solution: Break the loop in gui_mch_update() after at most 99 iterations + (h-east). + +Patch 9.1.0931 +Problem: ml_get error in terminal buffer (user202729) +Solution: Call update_topline() in win_enter_ext() for terminal buffers + (h-east). + +Patch 9.1.0932 +Problem: new Italian tutor not installed +Solution: Add Makefile rule, include it into the Filelist + ("Philip H." <47042125+pheiduck@users.noreply.github.com>). + +Patch 9.1.0933 +Problem: Vim9: vim9compile.c can be further improved +Solution: Further refactor the compile assignment code + (Yegappan Lakshmanan). + +Patch 9.1.0934 +Problem: hard to view an existing buffer in the preview window +Solution: Add the :pbuffer command (Yinzuo Jiang). + +Patch 9.1.0935 +Problem: SpotBugs compiler can be improved +Solution: runtime(compiler): Improve defaults and error handling for + SpotBugs; update test_compiler.vim (Aliaksei Budavei). + +Patch 9.1.0936 +Problem: cannot highlight completed text +Solution: (optionally) highlight auto-completed text using the + ComplMatchIns highlight group (glepnir). + +Patch 9.1.0937 +Problem: test_undolist() is flaky +Solution: Allow to match one additional optional whitespace char. + +Patch 9.1.0938 +Problem: exclusive selection not respected when re-selecting block mode + (Matt Ellis) +Solution: Advance selection by another character when using + selection=exclusive and visual block mode + +Patch 9.1.0939 +Problem: make installtutor fails + (Antonio Giovanni Colombo, after v9.1.0932) +Solution: Fix Makefile rule. + +Patch 9.1.0940 +Problem: Wrong cursor shape with "gq" and 'indentexpr' executes :normal +Solution: Update cursor and mouse shape after restoring old_State (zeertzjq). + +Patch 9.1.0941 +Problem: ComplMatchIns doesn't work after multibyte chars (after v9.1.0936). +Solution: Use (ptr - line) instead of wlv.col (zeertzjq). + +Patch 9.1.0942 +Problem: a few typos were found +Solution: fix them (zeertzjq). + +Patch 9.1.0943 +Problem: vim9compile.c can be further improved +Solution: Refactor the compile_lhs function (Yegappan Lakshmanan). + +Patch 9.1.0944 +Problem: tests: test_registers fails when not run under X11 +Solution: filter out warning message. + +Patch 9.1.0945 +Problem: ComplMatchIns highlight doesn't end after inserted text. +Solution: Handle ComplMatchIns highlight more like search highlight. + Fix off-by-one error. Handle deleting text properly (zeertzjq). + +Patch 9.1.0946 +Problem: cross-compiling fails on osx-arm64 +Solution: use vim_cv_timer_create_with_lrt() instead of + vim_cv_timer_create_works() (Brandon Maier). + +Patch 9.1.0947 +Problem: Coverity comlains about un-initialized var (after v9.1.0943). +Solution: Initialize variable (Yegappan Lakshmanan). + +Patch 9.1.0948 +Problem: Missing cmdline completion for :pbuffer. +Solution: Add cmdline completion for :pbuffer like :buffer (zeertzjq). + +Patch 9.1.0949 +Problem: popups inconsistently shifted to the left +Solution: Always shift non-fixed popups to the left when the + text would be truncated (Boris Staletic). + +Patch 9.1.0950 +Problem: filetype: fennelrc files are not recognized +Solution: Detect 'fennelrc' files as fennel filetype (Wu Zhenyu). + +Patch 9.1.0951 +Problem: filetype: jshell files are not recognized +Solution: Detect '*.jsh' files as java filetype (Konfekt). + +Patch 9.1.0952 +Problem: Vim9: missing type checking for any type assignment (Ernie Rael) +Solution: When assigning to a list item, if the type of the LHS item is + any, then use the list item type (Yegappan Lakshmanan). + +Patch 9.1.0953 +Problem: filetype: APKBUILD files not correctly detected +Solution: Detect 'APKBUILD' files as apkbuild filetype, + include a apkbuild syntax script (which basically + just sources the sh.vim syntax file) (Hugo Osvaldo Barrera). + +Patch 9.1.0954 +Problem: popupmenu.c can be improved +Solution: Slightly refactor the logic (glepnir). + +Patch 9.1.0955 +Problem: Vim9: vim9compile.c can be further improved +Solution: Refactor the compile_def_function (Yegappan Lakshmanan). + +Patch 9.1.0956 +Problem: completion may crash, completion highlight wrong with preview + window (after v9.1.0954) +Solution: Correctly calculate scroll offset, check for preview window + when adding extra highlighting (glepnir). + +Patch 9.1.0957 +Problem: MS-Windows: conversion warnings +Solution: Add explicit type casts (Yegappan Lakshmanan). + +Patch 9.1.0958 +Problem: filetype: supertux2 config files detected as lisp +Solution: Detect supertux2 config files as scheme instead (Wu, Zhenyu). + +Patch 9.1.0959 +Problem: Coverity complains about type conversion (after v9.1.0957) +Solution: Use size_t instead of int for file length (Yegappan Lakshmanan). + +Patch 9.1.0960 +Problem: filetype: hy history files are not recognized +Solution: Detect '*.hy', '.hy-history' files as hy filetype, + detect '.lips_repl_history' files are scheme filetype (Wu, Zhenyu). + +Patch 9.1.0961 +Problem: filetype: TI gel files are not recognized +Solution: Detect '*.gel' files as gel filetype, include get filetype and + syntax plugins (Wu, Zhenyu). + +Patch 9.1.0962 +Problem: filetype: bun.lock file is not recognized +Solution: Detect 'bun.lock' file as jsonc filetype (Anton Kastritskii). + +Patch 9.1.0963 +Problem: fuzzy-matching does not prefer full match (Maxim Kim) +Solution: Add additional score for a full match (glepnir). + +Patch 9.1.0964 +Problem: MS-Windows: sed error with MinGW +Solution: Use double quotes for sed, update compilation notes + (Andrey A Voropaev) + +Patch 9.1.0965 +Problem: filetype: sh filetype set when detecting the use of bash +Solution: When bash is detected, use 'bash' filetype instead (Luca Saccarola). + +Patch 9.1.0966 +Problem: Vim9: :enum command can be shortened +Solution: Prevent shortening of :enum command by adding the EX_WHOLE + flag to command definition (h-east). + +Patch 9.1.0967 +Problem: SpotBugs compiler can be further improved +Solution: Introduce event-driven primitives for SpotBugs (Aliaksei Budavei). + +Patch 9.1.0968 +Problem: tests: GetFileNameChecks() isn't fully sorted by filetype name +Solution: Re-sort the list. + +Patch 9.1.0969 +Problem: ghostty not using kitty protocol by default (00-kat) +Solution: Update keyprotocol option default and include ghostty. + +Patch 9.1.0970 +Problem: VMS: build errors on VMS architecture +Solution: Define cellsize struct, use C89 to initialize lval_root_S + struct (Zoltan Arpadffy) + +Patch 9.1.0971 +Problem: filetype: SLNX files are not recognized +Solution: Detect '*.slnx' files as xml filetype (Gustav Eikaas). + +Patch 9.1.0972 +Problem: filetype: TI linker map files are not recognized +Solution: Detect TI linker map files as lnkmap filetype (Wu, Zhenyu). + +Patch 9.1.0973 +Problem: too many strlen() calls in fileio.c +Solution: Refactor fileio.c and remove calls to STRLEN(), + check for out-of-memory condition in buf_check_timestamp() + (John Marriott). + +Patch 9.1.0974 +Problem: typo in change of (Christ van Willegen) +Solution: Add back the square brackets (John Marriott). + +Patch 9.1.0975 +Problem: Vim9: interpolated string expr not working in object methods + (Igbanam Ogbuluijah) +Solution: Check the evalarg argument (Yegappan Lakshmanan). + +Patch 9.1.0976 +Problem: Vim9: missing return statement with throw (atitcreate) +Solution: Treat a throw statement at the end of an if-else block as a + return statement (Yegappan Lakshmanan). + +Patch 9.1.0977 +Problem: filetype: msbuild filetypes are not recognized +Solution: Detect msbuild files as xml filetype (Gustav Eikaas). + +Patch 9.1.0978 +Problem: GUI tests sometimes fail when setting 'scroll' options +Solution: Decrease the 'scroll' and 'scrolljump' option value from 20 to + 15, in case the Gui window is not large enough to handle 20. + +Patch 9.1.0979 +Problem: VMS: type warning with $XDG_VIMRC_FILE (Zoltan Arpadffy) +Solution: Add explicit (char_u *) type cast to mch_getenv() call. + +Patch 9.1.0980 +Problem: no support for base64 en-/decoding functions in Vim Script + (networkhermit) +Solution: Add the base64_encode() and base64_decode() functions + (Yegappan Lakshmanan). + +Patch 9.1.0981 +Problem: tests: typo in test_filetype.vim +Solution: fix comment, update lnkmap syntax file and add DESCT keyword + (Wu, Zhenyu). + +Patch 9.1.0982 +Problem: TI linker files are not recognized +Solution: Inspect '*.cmd' files and detect TI linker files as 'lnk' filetype, + include a lnk ftplugin and syntax script (Wu, Zhenyu). + +Patch 9.1.0983 +Problem: not able to get the displayed items in complete_info() + (Evgeni Chasnovski) +Solution: Return the visible items via the "matches" key for + complete_info() (glepnir). + +Patch 9.1.0984 +Problem: exception handling can be improved +Solution: Add v:stacktrace and getstacktrace(). + +Patch 9.1.0985 +Problem: Vim9: some ex commands can be shortened +Solution: Disallow shortening of :abstract, :interface and :type (h-east). + +Patch 9.1.0986 +Problem: filetype: 'jj' filetype is a bit imprecise +Solution: rename 'jj' filetype to 'jjdescription' (Gregory Anders). + +Patch 9.1.0987 +Problem: filetype: cake files are not recognized +Solution: Detect '*.cake' files as cs filetype (Zoe Roux). + +Patch 9.1.0988 +Problem: Vim9: no error when using uninitialized var in new() + (lifepillar, Aliaksei Budavei) +Solution: Give an error if an uninitialized object variable is referenced + in new() (Yegappan Lakshmanan). + +Patch 9.1.0989 +Problem: Vim9: Whitespace after the final enum value causes a syntax + error +Solution: Fix parsing to allow whitespace after the final enum value. + (Doug Kearns) + +Patch 9.1.0990 +Problem: Inconsistent behavior when changing cmdheight by resizing the + topframe through wincmds and dragging laststatus. Changing + cmdheight by resizing the topframe does not trigger OptionSet. +Solution: Consolidate logic for changing the cmdheight, set the option + value to handle side-effects (Luuk van Baal). + +Patch 9.1.0991 +Problem: v:stacktrace has wrong type in Vim9 script. +Solution: Change the type to t_list_dict_any. Fix grammar in docs (zeertzjq). + +Patch 9.1.0992 +Problem: Vim9: double-free after v9.1.0988 (h-east) +Solution: Clear typval pointer, before setting the type + (Yegappan Lakshmanan) + +Patch 9.1.0993 +Problem: Although Patch 9.1.0990 fixed a real problem/inconsistency, + it also introduced new behavior that may break BWC and/or be + unexpected. Before 9.1.0990, window commands could make the + topframe smaller (without changing 'cmdheight'; quirk that is + now fixed), but did not allow extending the topframe beyond + the 'cmdheight' set by the user. After 9.1.0990, the user can + reduce the 'cmdheight' below the value they set explicitly, + through window commands, which may lead to confusion. + (aftere v9.1.0990) +Solution: Store the value explicitly set by the user and clamp the + 'cmdheight' when resizing the topframe. This also applies to + dragging laststatus, which in contrast to window commands + _did_ allow reducing the 'cmdheight' to values below the one + set by the user. So with this Patch there is still new + behavior, but I think in a way that is less surprising. + While at it, also fix a Coverity warning, introduced in + v9.1.0990 (Luuk van Baal). + +Patch 9.1.0994 +Problem: Vim9: not able to use comment after opening curly brace + (lifepillar) +Solution: Allow to use comments after curly braces of an inner-block, + modify the logic to search for comment in a line, update Vim9 + tests to use specific class type instead of any + (Yegappan Lakshmanan). + +Patch 9.1.0995 +Problem: filetype: shaderslang files are not detected +Solution: Detect '*.slang' files as shaderslang filetype, + include a filetype and syntax script (mtvare6) + +Patch 9.1.0996 +Problem: ComplMatchIns may highlight wrong text +Solution: Don't highlight in case of fuzzy match, + skip-highlight when not inserting anything (glepnir). + +Patch 9.1.0997 +Problem: too many strlen() calls in drawscreen.c +Solution: Refactor drawscreen.c and remove calls to strlen(), + make get_keymap_str() (in screen.c) return string length + instead of TRUE/FALSE (John Marriott). + +Patch 9.1.0998 +Problem: filetype: TI assembly files are not recognized +Solution: Inspect '*.sa' and assembly files and detect TI assembly + files, include filetype plugin and syntax script for TI + assembly files (Wu, Zhenyu). + +Patch 9.1.0999 +Problem: leaking finished exception (after v9.1.0984) +Solution: Use finish_exception to clean up caught exceptions + (Yee Cheng Chin) + +Patch 9.1.1000 +Problem: tests: ruby tests fail with Ruby 3.4 +Solution: Adjust expected output for Ruby 3.4 (Yee Cheng Chin) + +Patch 9.1.1001 +Problem: ComplMatchIns highlight hard to read on light background + (after v9.1.0996) +Solution: Define the highlighting group cleared, it should be configured in + colorschemes separately (glepnir). + +Patch 9.1.1002 +Problem: Vim9: unknown function error with interface declaring a + function variable (lifepillar) +Solution: Use correct instruction for getting interface member variables + (Yegappan Lakshmanan) + +Patch 9.1.1003 +Problem: [security]: heap-buffer-overflow with visual mode when + using :all, causing Vim trying to access beyond end-of-line + (gandalf) +Solution: Reset visual mode on :all, validate position in gchar_pos() + and charwise_block_prep(). + +Patch 9.1.1004 +Problem: tests: a few termdebug tests are flaky; test_termdebug_basic() + and test_termdebug_config_types() may fail if there is too + much load +Solution: Set g:test_is_flaky. + +Patch 9.1.1005 +Problem: completion text is highlighted even with no pattern found +Solution: use ins_compl_leader_len() instead of checking + compl_leader.length (glepnir). + +Patch 9.1.1006 +Problem: PmenuMatch completion highlight can be combined +Solution: Combine highlight groups PmenuMatch with Pmenu and + PmenuMatchSel with PmenuSel (glepnir). + +Patch 9.1.1007 +Problem: filetype: various ignore are not recognized +Solution: Detect rg/docker/npm/vvsce ignore files as 'gitgnore' filetype + (Wu, Zhenyu). + +Patch 9.1.1008 +Problem: tests: test for Patch 9.1.1006 doesn't fail without the patch + (after v9.1.1006) +Solution: Add ctermbg=NONE to the highlight groups (zeertzjq). + +Patch 9.1.1009 +Problem: diff feature can be improved +Solution: Include the linematch diff alignment algorithm (Jonathon). + +Patch 9.1.1010 +Problem: filetype: VisualCode setting file not recognized +Solution: Detect json files in VSCode config directory as jsonc filetype + (Konfekt). + +Patch 9.1.1011 +Problem: Popup menu internal error with some abbr in completion item. +Solution: Don't compute attributes when there is no corresponding text. + Reduce indent in pum_redraw() while at it (zeertzjq). + +Patch 9.1.1012 +Problem: Vim9: class interface inheritance not correctly working +Solution: Make the class inherit the interfaces of the super class. + +Patch 9.1.1013 +Problem: Vim9: Regression caused by Patch v9.1.0646 +Solution: Translate the function name before invoking it in call() + (Yegappan Lakshmanan). + +Patch 9.1.1014 +Problem: Vim9: variable not found in transitive import +Solution: Allow nested import (Hirohito Higashi). + +Patch 9.1.1015 +Problem: Coverity complains about dereferencing NULL value +Solution: Check that cms2 is not null. + +Patch 9.1.1016 +Problem: Not possible to convert string2blob and blob2string +Solution: Add support for the blob2str() and str2blob() functions. + +Patch 9.1.1017 +Problem: Vim9: Patch 9.1.1013 causes a few problems +Solution: Translate the function name only when it is a string + (Yegappan Lakshmanan). + +Patch 9.1.1018 +Problem: v9.1.0743 causes regression with diff mode +Solution: Fix the regression with overlapping regions. + +Patch 9.1.1019 +Problem: filetype: fd ignore files are not recognized +Solution: Detect .fdignore files as gitignore filetype. + +Patch 9.1.1020 +Problem: no way to get current selected item in a async context +Solution: Add completed flag to show the entries of currently selected + index item (@glepnir). + +Patch 9.1.1021 +Problem: string might be used without a trailing NUL (after v9.1.0997) +Solution: Make sure that the buffer is NUL terminated. + +Patch 9.1.1022 +Problem: linematch option value not completed (after v9.1.1009) +Solution: Update diffoption completion values. + +Patch 9.1.1023 +Problem: Coverity complains about dereferencing NULL pointer +Solution: Verify curdiff is not null before dereferencing it. + +Patch 9.1.1024 +Problem: blob2str/str2blob() do not support list of strings (after v9.1.1016) +Solution: Add support for using a list of strings (Yegappan Lakshmanan). + +Patch 9.1.1025 +Problem: wrong return type of blob2str() +Solution: Update return to list of string (Yegappan Lakshmanan). + +Patch 9.1.1026 +Problem: filetype: swc configuration files are not recognized +Solution: Detect .swcrc files as json filetype (Marces Engel). + +Patch 9.1.1027 +Problem: no sanitize check when running linematch +Solution: Add sanitize check before applying the linematch algorithm, + similar to diff_find_change() (Jonathon). + +Patch 9.1.1028 +Problem: too many strlen() calls in screen.c +Solution: Refactor screen.c and remove calls to strlen(), + verify that leadmultispace != NULL (John Marriott). + +Patch 9.1.1029 +Problem: the installer can be improved +Solution: Update the installer with the correct README and LICENSE + files, improve the documentation, add a Makefile for the + installer, update the Makefiles (RestorerZ). + +Patch 9.1.1030 +Problem: filetype: setting bash filetype is backwards incompatible +Solution: Revert Patch v9.1.0965, detect bash scripts again as sh filetype. + +Patch 9.1.1031 +Problem: Coverity complains about insecure data handling (v9.1.1024) +Solution: Use int consistently to access the blob index (Yegappan Lakshmanan). + +Patch 9.1.1032 +Problem: link error when FEAT_SPELL not defined (after v9.1.1016, + John Marriott) +Solution: Adjust ifdefs (Yegappan Lakshmanan). + +Patch 9.1.1033 +Problem: tests: shaderslang was removed from test_filetype erroneously + (Christian Clason, after v9.1.1030) +Solution: Restore the test. + +Patch 9.1.1033 +Problem: Vim9: compiling abstract method fails without return + (Aliaksei Budavei) +Solution: Don't require return for an abstract method (Ernie Rael). + +Patch 9.1.1035 +Problem: Vim9: memory leak with blob2str() +Solution: Free converted_str (Yegappan Lakshmanan). + +Patch 9.1.1036 +Problem: make install fails when using shadowdir (after v9.1.1029). +Solution: Also link in README.txt and LICENSE file. + +Patch 9.1.1037 +Problem: Vim9: confusing error when using abstract method via super +Solution: Display an error when an abstract method is invoked using + super (Ernie Rael). + +Patch 9.1.1038 +Problem: tests: test_channel.py fails with IPv6 (eds-collabora) +Solution: Use 127.0.0.1 instead of localhost. + +Patch 9.1.1039 +Problem: Vim9: comments are outdated +Solution: Update comments, and include an enum example in the help + (Yegappan Lakshmanan). + +Patch 9.1.1040 +Problem: Vim9: imported type cannot be used as func return type + (Dayvid Albuquerque) +Solution: Temporarily reset the is_export flag (Yegappan Lakshmanan). + +Patch 9.1.1041 +Problem: Vim9: out-of-bound access when echoing an enum +Solution: Add NUL to growarray, check that ufunc is non-null before accessing + it to make Coverity happy (Yegappan Lakshmanan). + +Patch 9.1.1042 +Problem: filetype: just files are not recognized +Solution: Adjust filetype detection pattern, detect just shebang line, + include just ftplugin, indent and syntax plugin (Peter Benjamin). + +Patch 9.1.1043 +Problem: [security]: segfault in win_line() (fizz-is-on-the-way) +Solution: Check that ScreenLines is not NULL. + +Patch 9.1.1044 +Problem: Vim9: Patch 9.1.1014 causes regressions +Solution: Revert it for now. + +Patch 9.1.1045 +Problem: filetype: N-Tripels and TriG files are not recognized +Solution: Detect '*.nt' files as ntriples filetype and '*.trig' files + as trig filetype (Gordian Dziwis) + +Patch 9.1.1046 +Problem: fuzzymatching doesn't prefer matching camelcase (Tomasz N). +Solution: Add extra score when case matches (glepnir). + +Patch 9.1.1047 +Problem: Makefiles uses non-portable syntax (simo-zz, after v9.1.1029) +Solution: Revert auto-generation of MAJOR/MINOR variables. + +Patch 9.1.1048 +Problem: Crash after scrolling and pasting in silent Ex mode + (fizz-is-on-the-way) +Solution: Don't move cursor to line 0 when scrolling (zeertzjq). + +Patch 9.1.1049 +Problem: Insert-completed items are always sorted, although the LSP + spec[1] standard defines sortText in the returned + completionitem list. This means that the server has sorted the + results. When fuzzy is enabled, this will break the server's + sorting results. +Solution: Disable sorting of candidates when "nosort" is set in + 'completeopt' + +Patch 9.1.1050 +Problem: Too many strlen() calls in os_unix.c +Solution: Refactor os_unix.c and remove calls to strlen() (John Marriott). + +Patch 9.1.1051 +Problem: tests: no support for env variables when running Vim in terminal +Solution: support the "env" argument in RunVimInTerminal(), close swapfiles + properly in test_termcodes, use CheckFeature in test_termencoding + +Patch 9.1.1052 +Problem: tests: off-by-one error in CheckCWD in test_debugger.vim +Solution: Fix off-by-one in CheckCWD leading to local tests failure + (Yee Cheng Chin) + +Patch 9.1.1053 +Problem: "nosort" enables fuzzy filtering even if "fuzzy" isn't in + 'completeopt' (after v9.1.1049) +Solution: Only enable fuzzy filtering when "fuzzy" is in 'completeopt' + (zeertzjq). + +Patch 9.1.1054 +Problem: Vim doesn't work well with TERM=xterm-direct (Andrea Pappacoda). +Solution: Detect if a terminal supports true-colors and enable termguicolors + +Patch 9.1.1055 +Problem: make install fails because of a missing dependency +Solution: Add explicit dependencies for tutor/{en,it} (Sergei Trofimovich). + +Patch 9.1.1056 +Problem: Vim doesn't highlight to be inserted text when completing +Solution: Add support for the "preinsert" 'completeopt' value (glepnir). + +Patch 9.1.1057 +Problem: Superfluous cleanup steps in test_ins_complete.vim. +Solution: Remove unnecessary :bw! and :autocmd! commands. + Also remove unnecessary STRLEN() in insexpand.c (zeertzjq). + +Patch 9.1.1058 +Problem: translation(sr): Missing Serbian translation for the tutor +Solution: Include new Serbian translation for the new tutor, + include translation for chapter 2 of the traditional tutor, + update the Makefiles for installing the runtime files (Ivan Pešić). + +Patch 9.1.1059 +Problem: completion: input text deleted with preinsert when adding leader +Solution: Remove compl_length and check the ptr for being equal + to pattern when preinsert is active (glepnir). + +Patch 9.1.1060 +Problem: Vim always enables 'termguicolors' in a terminal, even + when not wanted (after v9.1.1054). +Solution: Respect `:set notermguicolors` in vimrc file. + +Patch 9.1.1061 +Problem: tests: test_glvs fails when unarchiver not available + (Brian L. Matthews) +Solution: Check if an unarchiver is available, skip the test otherwise. + +Patch 9.1.1062 +Problem: terminal: E315 when dragging the terminal with the mouse + (user202729) +Solution: Call update_topline() and validate_cursor() when clicking + on the status line with the mouse (Hirohito Higashi). + +Patch 9.1.1063 +Problem: too many strlen() calls in userfunc.c +Solution: Refactor userfunc.c and remove calls to strlen(), + drop set_ufunc_name() and roll it into alloc_ufunc(), + check for out-of-memory condition in trans_function_name_ext() + (John Marriott). + +Patch 9.1.1064 +Problem: not possible to use plural forms with gettext() +Solution: Implement ngettext() Vim script function (Christ van Willegen). + +Patch 9.1.1065 +Problem: no digraph for "Approaches the limit" +Solution: Add the digraph using .= (Hans Ginzel). + +Patch 9.1.1066 +Problem: Heap-use-after-free and stack-use-after-scope with :14verbose + when using :return and :try (after 9.1.1063). +Solution: Move back the vim_free(tofree) and the scope of numbuf[] (zeertzjq). + +Patch 9.1.1067 +Problem: tests: Test_termwinscroll_topline2 fails on MacOS (after v9.1.1062) +Solution: Reduce termwinscroll further, increase term_wait time. + +Patch 9.1.1068 +Problem: getchar() can't distinguish between C-I and Tab. +Solution: Add {opts} to pass extra flags to getchar() and getcharstr(), + with "number" and "simplify" keys. + +Patch 9.1.1069 +Problem: preinsert text completions not deleted with / + (ddad431, after v9.1.1059) +Solution: Handle or specifically and clear the completion + (glepnir). + +Patch 9.1.1070 +Problem: Cannot control cursor positioning of getchar(). +Solution: Add "cursor" flag to {opts}, with possible values "hide", + "keep" and "msg". + +Patch 9.1.1071 +Problem: Arguments of a function are missing after failing to redefine + it (after 8.2.2505), and heap-use-after-free with script-local + function (after 9.1.1063). +Solution: Don't clear arguments or free uf_name_exp when failing to + redefine an existing function (zeertzjq). + +Patch 9.1.1072 +Problem: 'diffopt' "linematch" cannot be used with {n} less than 10 + digits (after v9.1.1022) +Solution: Fix off-by-one error when checking for digit (zeertzjq). + +Patch 9.1.1073 +Problem: tests: test_compiler fails on Windows without Maven. +Solution: Add Xspotbugs directory to $PATH when mvn is not available + (zeertzjq). + +Patch 9.1.1074 +Problem: Strange error when heredoc marker starts with "trim". +Solution: Check for whitespace after "trim" or "eval" (zeertzjq). + +Patch 9.1.1075 +Problem: Vim9: length variable not used in compile_load() +Solution: Use len instead of re-calculating the length (Hirohito Higashi). + +Patch 9.1.1076 +Problem: vim_strnchr() is strange and unnecessary (after v9.1.1009) +Solution: Remove vim_strnchr() and use memchr() instead. Also remove a + comment referencing an #if that is no longer present. + +Patch 9.1.1077 +Problem: Syntax engine interpreted contains=TOP as matching nothing + inside included files, since :syn-include forces HL_CONTAINED + on for every included item. After 8.2.2761, interprets + contains=TOP as contains=@INCLUDED, which is also not correct + since it doesn't respect exclusions, and doesn't work if there + is no @INCLUDED cluster. +Solution: Revert Patch 8.2.2761, instead track groups that have had + HL_CONTAINED forced, and interpret contains=TOP and + contains=CONTAINED using this (Theodore Dubois). + +Patch 9.1.1078 +Problem: Terminal ansi colors off by one after tgc reset +Solution: Set the correct index for libvterm palette, revert parts in + libvterm/src/pen.c that deviated from upstream (Julio B) + +Patch 9.1.1079 +Problem: GUI late startup leads to uninitialized scrollbars +Solution: initialize scrollbars for all windows in all tabpages + (Yee Cheng Chin). + +Patch 9.1.1080 +Problem: filetype: Mill files are not recognized +Solution: Detect '*.mill' files as scala filetype. + +Patch 9.1.1081 +Problem: has('bsd') is true for GNU/Hurd +Solution: Exclude GNU/Hurd from BSD feature flag (Zhaoming Luo). + +Patch 9.1.1082 +Problem: unexpected DCS responses may cause out of bounds reads + (after v9.1.1054) +Solution: Check that the parsed value is '=' as expected (Julio B). + +Patch 9.1.1083 +Problem: setreg() doesn't correctly handle mbyte chars in blockwise mode +Solution: Use mb_ptr2len_len function pointer (Yee Cheng Chin). + +Patch 9.1.1084 +Problem: Unable to persistently ignore events in a window and its buffers. +Solution: Add 'eventignorewin' option to ignore events in a window and buffer + (Luuk van Baal). + +Patch 9.1.1085 +Problem: filetype: cmmt files are not recognized +Solution: Detect '*.cmmt' as trace32 filetype (Christian Sax). + +Patch 9.1.1086 +Problem: completion doesn't work with multi lines (Łukasz Jan Niemier) +Solution: Handle linebreaks in completion code as expected (glepnir). + +Patch 9.1.1087 +Problem: Vim9: import with extends may crash +Solution: Check otv for being NULL before trying to access it + (Hirohito Higashi). + +Patch 9.1.1088 +Problem: tests: plugin tests are named inconsistently +Solution: Group them under a common 'plugin' prefix. + +Patch 9.1.1089 +Problem: tests: No check when tests are run under Github actions +Solution: Add the CheckGithubActions check command and skip test if needed. + +Patch 9.1.1090 +Problem: tests: test_terminwscroll_topline2 unreliable +Solution: Instead of using term_wait() with a specific time, use + terminal-api and to wait until the terminal is finished + (Yee Cheng Chin). + +Patch 9.1.1091 +Problem: tests: timeout might be a bit too small +Solution: Increase the test timeout from 30 to 45 seconds + +Patch 9.1.1092 +Problem: tests: fix expected return code for python 3.13 on Windows +Solution: Check for return code 1 or 123 on Windows. + +Patch 9.1.1093 +Problem: tests: output of test Test_terminal_eof_arg_win32_ctrl_z depends on + python version. +Solution: Check for the expected output in both, the second last line + and last line. + +Patch 9.1.1094 +Problem: Vim9: problem finding implemented method for abstract method + in type hierarchy (Aliaksei Budavei) +Solution: When checking for abstract methods in an extended class, check + whether an abstract method is implemented in one of the parent + classes (Yegappan Lakshmanan). + +Patch 9.1.1095 +Problem: tests: matchparen plugin test wrongly named (zeertzjq) +Solution: Rename test_matchparen to test_plugin_matchparen + to be consistent with the other plugin tests. + +Patch 9.1.1096 +Problem: if_perl: Perl 5.38 adds new symbols causing link failure +Solution: add stub symbols (Drew Vogel). + +Patch 9.1.1097 +Problem: --log with non-existent path causes a crash (Ekkosun) +Solution: Split initialization phase and init the execution stack + earlier (Hirohito Higashi) + +Patch 9.1.1098 +Problem: Leaking memory with completing multi lines (after v9.1.1086) +Solution: Free allocated memory (glepnir). + +Patch 9.1.1099 +Problem: Vim9: import with extends may crash, v9.1.1087 wasn't the + correct way to fix it). +Solution: When using an import class, Check for a valid class member + variable at compile time (Yegappan Lakshmanan). + +Patch 9.1.1100 +Problem: tests: Test_log_nonexistent only works on Linux + (after v9.1.1097) +Solution: Add CheckUnix condition. + +Patch 9.1.1101 +Problem: insexpand.c hard to read +Solution: Refactor slightly to make it better readable (glepnir). + +Patch 9.1.1102 +Problem: tests: Test_WinScrolled_Resized_eiw() uses wrong filename + (Luuk van Baal, after v9.1.1084) +Solution: Rename the filename to something more unique. + +Patch 9.1.1103 +Problem: if_perl: still some compile errors with Perl 5.38 +Solution: Copy declaration of PL_memory_wrap from Perl header (Drew Vogel). + +Patch 9.1.1104 +Problem: CI: uses Ubuntu 22.04 runners +Solution: Switch to Ubuntu 24.04 runners, make a few adjustments for + different $TMPDIR (Drew Vogel). + +Patch 9.1.1105 +Problem: Vim9: no support for protected new() method +Solution: Support the protected "_new()" object method (Yegappan Lakshmanan). + +Patch 9.1.1106 +Problem: tests: Test_log_nonexistent() causes asan failure (Hirohito Higashi) +Solution: Don't run vim using system(), but run Vim in a terminal. + +Patch 9.1.1107 +Problem: Cannot loop through completion menu with fuzzy and nosort in + 'completeopt' (Tomasz N) +Solution: Reset cur to zero and update compl_shown_match when + 'completeopt' contains "nosort" but not "noselect" (glepnir). + +Patch 9.1.1108 +Problem: 'smoothscroll' gets stuck with 'listchars' "eol". +Solution: Count size of 'listchars' "eol" in line size when scrolling + (zeertzjq). + +Patch 9.1.1109 +Problem: cmdexpand.c hard to read +Solution: Refactor the file slightly (glepnir). + +Patch 9.1.1110 +Problem: Vim tests are slow and flaky at the same time due to reliance + on timeouts which are unreliable. +Solution: Improve Vim test performance and reduce flakiness + (Yee Cheng Chin) + +Patch 9.1.1111 +Problem: Vim9: variable not found in transitive import (lifepillar) +Solution: Fix import and class extends (Hirohito Higashi). + +Patch 9.1.1112 +Problem: Inconsistencies in get_next_or_prev_match() (after 9.1.1109). +Solution: Change "file" to "entry" or "match" in comments. Use the same + order of branches for PAGEUP and PAGEDOWN (zeertzjq). + +Patch 9.1.1113 +Problem: tests: Test_terminal_builtin_without_gui waits 2 seconds +Solution: Add --not-a-term to remove the annoying 2s delay in error + message when Vim detects that stdio are not from a terminal + (Yee Cheng Chin). + +Patch 9.1.1114 +Problem: Enabling termguicolors automatically confuses users. Since + querying the terminal for the RGB flag happens asynchronously, + enabling termguicolors is noticeable by users as the highlighting + changes and is therefore unexpected (after v9.1.1054). +Solution: Comment out that part for now. We may need another way to enable + this in the future. + +Patch 9.1.1115 +Problem: [security]: use-after-free in str_to_reg() (fizz-is-on-the-way) +Solution: When redirecting the :display command, check that one + does not output to the register being displayed + +Patch 9.1.1116 +Problem: Vim9: super not supported in lambda expressions (Aliaksei Budavei) +Solution: Support using the super keyword in a closure in an instance + method (Yegappan Lakshmanan). + +Patch 9.1.1117 +Problem: there are a few minor style issues +Solution: Fix the issues (Hirohito Higashi). + +Patch 9.1.1118 +Problem: tests: test_termcodes fails (after: v9.1.1114) +Solution: Adjust the test for the expected termguicolors value. + +Patch 9.1.1119 +Problem: Vim9: Not able to use an autoloaded class from another + autoloaded script (Elliot) +Solution: Make it work (Yegappan Lakshmanan). + +Patch 9.1.1120 +Problem: tests: Test_registers fails (T.J. Townsend, after v9.1.1115). +Solution: Require clipboard feature + +Patch 9.1.1121 +Problem: Enter does not insert newline with "noselect" when the pum is + visible (lifepillar) +Solution: When Enter is pressed and no complete-item is selected, + ins_compl_prep returns false, and the edit function continues + processing Enter to insert a new line (glepnir). + +Patch 9.1.1122 +Problem: too many strlen() calls in findfile.c +Solution: Refactor findfile.c and remove calls to strlen() (John Marriott). + +Patch 9.1.1123 +Problem: Highlight groups PopupSelected/PopupNotification/ + MessageWindow are supposed to fall back to default highlight + groups if they are not defined. However, once a colorscheme + has defined them, switching to another colorscheme that + doesn't do so will leave behind a cleared colorscheme, which + causes the fallback to fail. +Solution: Set up default links to the relevant fallback highlight + groups, which makes sure a `:hi clear` command will reset the + state properly (Yee Cheng Chin). + +Patch 9.1.1124 +Problem: No test for 'listchars' "precedes" with double-width char. +Solution: Add a test and fix a typo in code (zeertzjq). + +Patch 9.1.1125 +Problem: Cannot loop through pum menu with multiline items with + fuzzy and noselect in 'completeopt' (Tomasz N) +Solution: Remove unnecessary compl_no_select condition (glepnir). + +Patch 9.1.1126 +Problem: Patch 9.1.1121 used a wrong way to handle enter +Solution: Compl_enter_selects also needs to consider the selected item + in ins_compl_new_leader() (glepnir). + +Patch 9.1.1127 +Problem: when 'completeopt' is set to preinsert the preinserted text is + not cleared when adding new leader (Yee Cheng Chin) +Solution: Add a condition to delete preinsert text in edit function + (glepnir). + +Patch 9.1.1128 +Problem: Patch 9.1.1119 caused a regression with imports (girishji). +Solution: Revert the script ID change for the class script variable for + now (Yegappan Lakshmanan). + +Patch 9.1.1129 +Problem: missing out-of-memory test in buf_write() +Solution: Check that the returned allocated buffer is not NULL + (John Marriott). + +Patch 9.1.1130 +Problem: 'listchars' "precedes" is not drawn on Tabs. +Solution: Only draw 'listchars' "precedes" when not skipping over cells + (zeertzjq). + +Patch 9.1.1131 +Problem: Potential out-of-memory issue in search.c +Solution: Improve situation and refactor search.c slightly (John Marriott). + +Patch 9.1.1132 +Problem: Mark positions wrong after triggering multiline completion. +Solution: Call deleted_lines_mark() after deleting lines (zeertzjq). + +Patch 9.1.1133 +Problem: filetype: xkb files not recognized everywhere +Solution: Detect xkb files in more places (David Mandelberg). + +Patch 9.1.1134 +Problem: filetype: Guile init file not recognized +Solution: Detect '.guile' file as scheme filetype (David Mandelberg). + +Patch 9.1.1135 +Problem: 'suffixesadd' doesn't work with multiple items (after 9.1.1122). +Solution: Don't concat multiple suffixes together (zeertzjq). + +Patch 9.1.1136 +Problem: Match highlighting marks a buffer region to be redrawn as if + its buffer text was changed, unnecessarily invoking syntax code. +Solution: Set the `w_redraw_top/bot` variables instead of the b_mod_* ones + (Luuk van Baal). + +Patch 9.1.1137 +Problem: ins_str() is inefficient by calling STRLLEN() +Solution: Refactor ins_str() to take a length argument and let all callers + provide the correct length when calling ins_str() (John Marriott). + +Patch 9.1.1138 +Problem: Existing cmdline completion for :highlight was barebone and + only completed the highlight group names. +Solution: Implement full completion for the highlight group arguments + such as guifg and cterm. If the user tries to complete + immediately after the '=' (e.g. `hi Normal guifg=`), the + completion will fill in the existing value, similar to how + cmdline completion for options work (Yee Cheng Chin). + +Patch 9.1.1139 +Problem: [fifo] is not displayed when editing a fifo (after v7.4.2189). +Solution: Stat the filename and detect the type correctly. + +Patch 9.1.1140 +Problem: filetype: m17ndb files are not detected +Solution: Detect m17ndb files as m17ndb filetype, include filetype, syntax and + indent files for the new filetype (David Mandelberg). + +Patch 9.1.1141 +Problem: Misplaced comment in readfile() (after v9.1.1139). +Solution: Move the comment above S_ISDIR() (zeertzjq). + +Patch 9.1.1142 +Problem: tests: test_startup fails if $HOME/$XDG_CONFIG_HOME is defined +Solution: Define $HOME and $XDG_CONFIG_HOME to some non-existing + directory. + +Patch 9.1.1143 +Problem: illegal memory access when putting a register +Solution: Make sure cursor column doesn't become negative. + +Patch 9.1.1144 +Problem: no way to create raw strings from a blob +Solution: Support the "encoding": "none" option to create raw strings (which + may be invalid) (Bakudankun). + +Patch 9.1.1145 +Problem: When expanding omni completion items with newlines (e.g. + `then\n\t\nend`), the end statement gets wrong indentation. +Solution: Add OPENLINE_FORCE_INDENT flag to make open_line() use + second_line_indent directly (glepnir). + +Patch 9.1.1146 +Problem: Vim9: wrong context being used when evaluating class member + (lifepillar, Ernie Rael) +Solution: Use the correct script context when evaluating a class member + init expression(Yegappan Lakshmanan). + +Patch 9.1.1147 +Problem: preview-window does not scroll correctly +Solution: Init firstline = 0 for a preview window (Girish Palya). + +Patch 9.1.1148 +Problem: Vim9: finding imported scripts can be further improved + (after v9.1.1146) +Solution: Eliminate extra find_imported() call (Hirohito Higashi). + +Patch 9.1.1149 +Problem: Unix Makefile does not support Brazilian lang for the installer. +Solution: Add support for language code pt_br (RestorerZ) + +Patch 9.1.1150 +Problem: :highlight auto-complettion has a minor bug where an existing + highlight group with a cterm color being unset would result in + it being auto-completed to -1 in cmdline which is invalid. +Solution: Correctly check for whether an int value is set to non-zero + before retrieving the existing value for auto-complete. Also + do this for attr/string values as they previously worked only + by accident (Yee Cheng Chin). + +Patch 9.1.1151 +Problem: too many strlen() calls in getchar.c +Solution: Store last inserted and recorded lengths, add functions to retrieve + those and use those functions (John Marriott). + +Patch 9.1.1152 +Problem: Patch v9.1.1151 causes problems +Solution: Partially revert it (John Marriott). + +Patch 9.1.1153 +Problem: build error on Haiku +Solution: Define XDG_RUNTIME_PATH variables (Begasus). + +Patch 9.1.1154 +Problem: Vim9: not able to use autoload class accross scripts +Solution: Make it work, re-enable the test (Yegappan Lakshmanan). + +Patch 9.1.1155 +Problem: Mode message not cleared after :silent message (after 9.0.1634). +Solution: Don't reset mode_displayed when the message is empty (zeertzjq). + +Patch 9.1.1156 +Problem: No test for what Patch 9.1.1152 fixes. +Solution: Add a test (zeertzjq). + +Patch 9.1.1157 +Problem: command completion wrong for input() (Cdrman Fu) +Solution: Set commandline completion context explicitly (Jim Zhou). + +Patch 9.1.1158 +Problem: :verbose set has wrong file name with :compiler! +Solution: Add -keepscript (zeertzjq). + +Patch 9.1.1159 +Problem: $MYVIMDIR may not always be set (after 9.1.0718) (sandwm) +Solution: Always set $MYVIMDIR to first item in runtimepath + (except when using --clean), update it when changing &rtp. + +Patch 9.1.1160 +Problem: The 'preinsert' feature requires Ctrl-Y to confirm insertion, + but Ctrl-Y only works when the popup menu (pum) is displayed. +Solution: Modify ins_compl_has_preinsert() to check for both 'menu' and + 'menuone' flags when 'preinsert' is set. Update documentation + to clarify this requirement. This avoids adding complex + conditional behaviors (glepnir). + +Patch 9.1.1161 +Problem: preinsert requires bot "menu" and "menuone" to be set, + but "menu" is redundant (after v9.1.1160) +Solution: Preinsert only requires menuone (glepnir). + +Patch 9.1.1162 +Problem: When an info popup spans into the cmdline area and ESC is + pressed, some content remains visible on screen (yu3s). +Solution: Add popup_overlays_cmdline() check in screen_fill() to prevent + prematurely clearing the clear_cmdline flag (glepnir). + +Patch 9.1.1163 +Problem: $MYVIMDIR is set too late and not available while sourcing + runtime files (Maxim Kim, after v9.1.1159). +Solution: Also set it when $MYVIMRC file is found. + +Patch 9.1.1164 +Problem: editing a special crafted tar file allows code execution (RyotaK) +Solution: Escape the filename before feeding it to the `:read` command + +Patch 9.1.1165 +Problem: Vim's diff block merging algorithm when doing a multi-file diff + is buggy when two different diff hunks overlap a single + existing diff block (after v9.1.0743) +Solution: Fix a couple bugs in this logic (Yee Cheng Chin). + +Patch 9.1.1166 +Problem: command-line auto-completion hard with wildmenu +Solution: Implement "noselect" wildoption value (Girish Palya) + +Patch 9.1.1167 +Problem: mark '] wrong after copying text object (ubaldot) +Solution: Adjust position of '] for non-linewise, exclusive motions (Jim Zhou) + +Patch 9.1.1168 +Problem: wrong flags passed down to nextwild() (zeertzjq, after v9.1.1166) +Solution: Only pass options flags (Girish Palya) + +Patch 9.1.1169 +Problem: using global variable for get_insert()/get_lambda_name() + (after v9.1.1151) +Solution: Let the functions return a string_T object instead (Yee Cheng Chin). + +Patch 9.1.1170 +Problem: wildmenu highlighting in popup can be improved +Solution: Check if the completion items contain submatches of the + entered text (Girish Palya). + +Patch 9.1.1171 +Problem: tests: wrong arguments passed to assert_equal() (after v9.1.1167). +Solution: Swap arguments in the assert_equal() call (zeertzjq). + +Patch 9.1.1172 +Problem: heap-buffer-overflow with 'nostartofline' and Ex command in tag + file. +Solution: Set cursor column when moving cursor to line 1 (zeertzjq). + +Patch 9.1.1173 +Problem: filetype: ABNF files are not detected +Solution: Detect '.abnf' file as abnf filetype and + include an abnf syntax plugin (A4-Tacks). + +Patch 9.1.1174 +Problem: tests: when the file 'TestCommand?Test' exists, + 'Test_complete_cmdline()' will fail when writing the file. And + there's no related cleaning operation for this kind of file + before the test run. +Solution: modify `write` to `write!` to override (Jim Zhou). + +Patch 9.1.1175 +Problem: inconsistent behaviour with exclusive selection and motion + commands (aidancz) +Solution: Adjust cursor position when selection is exclusive (Jim Zhou). + +Patch 9.1.1176 +Problem: wrong indentation of lastline when expanding multiple lines +Solution: Check OPENLINE_FORCE_INDENT flag in open_line() (glepnir). + +Patch 9.1.1177 +Problem: filetype: tera files not detected +Solution: Detect '*.tera' files as tera filetype, + include a simple filetype plugin (MuntasirSZN). + +Patch 9.1.1178 +Problem: not possible to generate completion candidates using fuzzy + matching +Solution: Add the 'completefuzzycollect' option for (some) ins-completion + modes (glepnir). + +Patch 9.1.1179 +Problem: too many strlen() calls in misc2.c +Solution: Refactor misc2.c and use bsearch() instead of a linear search + to find matches in the key_names_table array (John Marriott). + +Patch 9.1.1180 +Problem: The meaning of depends on unspecified behavior + (after 9.1.1179). +Solution: Return TAB in case bsearch() finds K_TAB. Rename alt_name to + pref_name as that's closer to it meaning (zeertzjq). + +Patch 9.1.1181 +Problem: Unnecessary STRLEN() calls in insexpand.c (after 9.1.1178). +Solution: Use the already available length (zeertzjq). + +Patch 9.1.1182 +Problem: No cmdline completion for the 'completefuzzycollect' option + (after v9.1.1178) +Solution: Add cmdline completion for the 'completefuzzycollect' option, + improve its description in optwin.vim (zeertzjq). + +Patch 9.1.1083 +Problem: "above" virtual text breaks cursorlineopt=number. +Solution: Take "above" virtual text into account when applying + CursorLineNr highlight. + +Patch 9.1.1184 +Problem: Unnecessary use of vim_tolower() in vim_strnicmp_asc(). +Solution: Use TOLOWER_ASC() instead (zeertzjq). + +Patch 9.1.1185 +Problem: endless loop with completefuzzycollect and no match found +Solution: Move pointer to line end and break loop. + +Patch 9.1.1186 +Problem: filetype: help files in git repos are not detected +Solution: Detect */doc/*.txt files as help if they end with a help + modeline, even if 'modeline' is off + +Patch 9.1.1187 +Problem: matchparen plugin wrong highlights shell case statement + (Swudu Susuwu) +Solution: Return early, if we are in a shSnglCase syntax element + +Patch 9.1.1188 +Problem: runtime(tera): tera support can be improved +Solution: Update tera filetype plugin, include a tera syntax script + include tera syntax tests, update the filetype test, + update makemenu and synmenu vim scripts (MuntasirSZN). + +Patch 9.1.1189 +Problem: if_python: build error due to incompatible pointer types +Solution: Cast pointer to PyObject* (oreo639). + +Patch 9.1.1190 +Problem: C indentation does not detect multibyte labels +Solution: Correctly skip over multibyte characters (Anttoni Erkkilä). + +Patch 9.1.1191 +Problem: Test for Patch 9.1.1186 doesn't fail without the patch. +Solution: Set 'nomodeline' in the test (zeertzjq). + +Patch 9.1.1192 +Problem: Vim crashes with term response debug logging enabled and + running in a non-writeable directory +Solution: Use ch_log() instead of custom termresponse logging function + (Hirohito Higashi) + +Patch 9.1.1193 +Problem: Unnecessary use of STRCAT() in au_event_disable(). STRCAT() + seeks to the end of new_ei, but here the end is already known. +Solution: Use STRCPY() and add p_ei_len to new_ei. Also fix a typo in a + comment. Add a test that 'eventignore' works in :argdo (zeertzjq). + +Patch 9.1.1194 +Problem: filetype: false positive help filetype detection +Solution: Only detect a file as help if modeline appears either at start + of line or is preceded by whitespace (zeertzjq). + +Patch 9.1.1195 +Problem: inside try-block: fn body executed when default arg is + undefined +Solution: When inside a try-block do not execute function body after an + error in evaluating a default argument expression (Shane Harper). + +Patch 9.1.1196 +Problem: filetype: config files for container tools are not recognized +Solution: Detect the ones that aren't detected yet as toml filetype + (David Mandelberg). + +Patch 9.1.1197 +Problem: process_next_cpt_value() uses wrong condition +Solution: Use cfc_has_mode() instead and remove redundant else if branch + (glepnir). + +Patch 9.1.1198 +Problem: [security]: potential data loss with zip.vim and special + crafted zip files (RyotaK) +Solution: Use glob '[-]' to protect filenames starting with '-'. + +Patch 9.1.1199 +Problem: Many X11/Wayland desktops support icon themes, and many themes + provide a gvim icon, but this icon is ignored for the window + itself because it is hardcoded in the source code. +Solution: Read the icon from the theme instead (Aurelien Gateau). + +Patch 9.1.1200 +Problem: Cmdline pum not cleared for input() completion. +Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(), + like what is done in wildmenu_cleanup() (zeertzjq). + +Patch 9.1.1201 +Problem: 'completefuzzycollect' does not handle dictionary correctly +Solution: Check for ctrl_x_mode_dictionary (glepnir). + +Patch 9.1.1202 +Problem: Missing TabClosedPre autocommand (zoumi) +Solution: Add the TabClosedPre autcommand (Jim Zhou). + +Patch 9.1.1203 +Problem: matchparen keeps cursor on case label in sh filetype + (@categorical, after 9.1.1187). +Solution: Use :defer so that cursor is always restored, remove checks + for older Vims, finish early if Vim does not support :defer + +Patch 9.1.1204 +Problem: MS-Windows: crash when passing long string to expand() with + 'wildignorecase'. +Solution: Use the same buflen as unix_expandpath() in dos_expandpath(). + Remove an unnecessary STRLEN() while at it (zeertzjq). + +Patch 9.1.1205 +Problem: completion: preinserted text not removed when closing pum +Solution: Delete preinsert text inside in ins_compl_stop() (glepnir). + +Patch 9.1.1206 +Problem: tests: test_filetype fails when a file is a directory + (Eisuke Kawashima) +Solution: When encountering a directory instead of a file, skip that + particular filetype test. + +Patch 9.1.1207 +Problem: MS-Windows: build warning in filepath.c (after v9.1.1204). +Solution: Add type cast (John Marriott). + +Patch 9.1.1208 +Problem: MS-Windows: not correctly restoring alternate screen on Win 10 + after ssh (Daniel Viberg) +Solution: Return a bit later in RestoreConsoleBuffer() (Christopher Plewright) + +Patch 9.1.1209 +Problem: colorcolumn not drawn after virtual text lines +Solution: Show colorcolumn on correct line with virtual text by adding + the size of p_extra to virtual column offset (Matthias). + +Patch 9.1.1210 +Problem: translation(ru): missing Russian translation for the new tutor +Solution: Include new Russian translation, update the Makefile for + installing the new translations (RestorerZ). + +Patch 9.1.1211 +Problem: TabClosedPre is triggered just before the tab is being freed, + which limited its functionality. +Solution: Trigger it a bit earlier and also on :tabclose and :tabonly + (Jim Zhou). + +Patch 9.1.1212 +Problem: filetype: logrotate'd pacmanlogs are not recognized +Solution: Also detect pacman.log* files as pacmanlog filetype, + remove BufNewFile autocmd (Eisuke Kawashima). + +Patch 9.1.1212 +Problem: too many strlen() calls in edit.c +Solution: Refactor edit.c and remove strlen() calls (John Marriott). + +Patch 9.1.1213 +Problem: cannot :put while keeping indent (Peter Aronoff) +Solution: Add the :iput ex command (64-bitman). + +Patch 9.1.1214 +Problem: When searching for "Cur", CamelCase matches like "lCursor" score + higher than exact prefix matches like Cursor, which is + counter-intuitive (Maxim Kim). +Solution: Add a 'camelcase' option to matchfuzzy() that lets users disable + CamelCase bonuses when needed, making prefix matches rank higher + (glepnir). + +Patch 9.1.1215 +Problem: Patch 9.1.1213 has some issues +Solution: Revert it for now + +Patch 9.1.1216 +Problem: Pasting the '.' register multiple times may work incorrectly + when the last insert starts with Ctrl-D and ends with '0' + (after 9.1.1212). +Solution: Restore the missing assignment (zeertzjq). + +Patch 9.1.1217 +Problem: tests: typos in test_matchfuzzy.vim (after 9.1.1214). +Solution: Fix the typos. Consistently put the function call on the + second line in assertions for camelcase (zeertzjq). + +Patch 9.1.1218 +Problem: missing out-of-memory check in filepath.c +Solution: Add check for NULL (John Marriott). + +Patch 9.1.1219 +Problem: Strange error with type for matchfuzzy() "camelcase". +Solution: Show the error "Invalid value for argument camelcase" instead + of "Invalid argument: camelcase" (zeertzjq). + +Patch 9.1.1220 +Problem: filetype: uv.lock file not recognized +Solution: detect uv.lock file as toml filetype (Acaibird). + +Patch 9.1.1221 +Problem: Wrong cursor position and '^' mark when leaving Insert mode + just after 'autoindent' and cursor on last char of line. +Solution: Don't move cursor to NUL when it wasn't moved to the left (zeertzjq) + +Patch 9.1.1222 +Problem: using wrong length for last inserted string + (Christ van Willegen, after v9.1.1212) +Solution: Use the correct length in get_last_insert_save(), make + get_last_insert() return a string_T (John Marriott). + +Patch 9.1.1223 +Problem: wrong translation for encoding failures because of using + literal "from" and "to" in the resulting error message (RestorerZ) +Solution: Use separate error messages for errors "from" and "to" + encoding errors. + +Patch 9.1.1224 +Problem: cannot :put while keeping indent (Peter Aronoff) +Solution: Add the :iput ex command (64-bitman). + +Patch 9.1.1225 +Problem: extra NULL check in VIM_CLEAR() +Solution: Remove the NULL check and rely on the NULL check in vim_free() + instead (Hirohito Higashi). + +Patch 9.1.1226 +Problem: "shellcmdline" completion doesn't work with input(). +Solution: Use set_context_for_wildcard_arg(). Fix indent in nextwild() + (zeertzjq). + +Patch 9.1.1227 +Problem: no tests for the comment package +Solution: Add some tests (Maxim Kim). + +Patch 9.1.1228 +Problem: The current_pos.col was incorrectly updated to the length of + the matching text. This will cause the next search to start + from the wrong position. +Solution: Current_pos has already been updated in search_str_in_line and + does not need to be changed (glepnir). + +Patch 9.1.1229 +Problem: the comment plugin can be improved +Solution: add comment text objects "ic" and "ac" (Maxim Kim). + +Patch 9.1.1230 +Problem: Ctrl-C closes popup windows that have a filter callback, + but does not close popups without a filter callback. +Solution: Modified popup_do_filter() to also close popups without + filter callback when Ctrl-C is pressed (glepnir). + +Patch 9.1.1231 +Problem: filetype: SPA (single page application) JSON files are not + recognized (used by pipewire and wireplumber) +Solution: Detect pipewire and wireplumber configuration files as spajson + filetype, include filetype, indent and syntax scripts for this + new filetype (David Mandelberg). + +Patch 9.1.1232 +Problem: Vim script is missing the tuple data type +Solution: Add support for the tuple data type (Yegappan Lakshmanan). + +Patch 9.1.1233 +Problem: Coverity warns about NULL pointer when triggering WinResized +Solution: Add OOM checks for windows_list like for scroll_dict. Remove + void casts that are unnecessary after 9.1.1084 (zeertzjq). + +Patch 9.1.1234 +Problem: Compile error when SIZE_MAX is not defined +Solution: Define SIZE_MAX (Zoltan Arpadffy). + +Patch 9.1.1235 +Problem: cproto files are outdated +Solution: regenerate proto files by running make proto (Yegappan Lakshmanan). + +Patch 9.1.1236 +Problem: tests: test_comments leaves swapfiles around +Solution: use ':bw!' instead of ':close!' + +Patch 9.1.1237 +Problem: Compile error with C89 compiler in term.c (Zoltan Arpadffy) +Solution: split out LOG_TR macro into 2 different macros. LOG_TR1 that + takes only a single argument and LOG_TRN that takes 2 + arguments. Remove the use of ##__VA_ARGS__ since the macro is + now always called with 2 arguments (Hirohito Higashi). + +Patch 9.1.1238 +Problem: With ':set splitkeep=screen', cursor did't restore column + correctly when splitting a window on a line longer than the + last line on the screen (after v9.1.0707) +Solution: Restore cursor column in `win_fix_scroll()` since it may be + changed in `getvcol()` after 396fd1ec2956 (phanium). + +Patch 9.1.1239 +Problem: if_python: no tuple data type support (after v9.1.1232) +Solution: Add support for using Vim tuple in the python interface + (Yegappan Lakshmanan). + +Patch 9.1.1240 +Problem: Regression with ic/ac text objects and comment plugin +Solution: Fix regression, update tests (Maxim Kim). + +Patch 9.1.1241 +Problem: wrong preprocessort indentation in term.c +Solution: update indentation (Hirohito Higashi). + +Patch 9.1.1242 +Problem: Crash when evaluating variable name (after v9.1.0870) +Solution: Calculate the strlen() directly instead of pointer + arithmetics, fix missing assignment to lp->ll_name_end in + get_lval() (zeertzjq). + +Patch 9.1.1243 +Problem: Diff mode's inline highlighting is lackluster. It only + performs a line-by-line comparison, and calculates a single + shortest range within a line that could encompass all the + changes. In lines with multiple changes, or those that span + multiple lines, this approach tends to end up highlighting + much more than necessary. +Solution: Implement new inline highlighting modes by doing per-character + or per-word diff within the diff block, and highlight only the + relevant parts, add "inline:simple" to the defaults (which is + the old behaviour) (Yee Cheng Chin) + +Patch 9.1.1244 +Problem: part of Patch v9.1.1242 was wrong +Solution: Revert part of the Patch. + +Patch 9.1.1245 +Problem: need some more tests for curly braces evaluation +Solution: Add a test for the regression introduced by Patch v9.1.1242 + (Yegappan Lakshmanan). + +Patch 9.1.1246 +Problem: coverity complains about some changes in v9.1.1243 +Solution: Remove duplicate code in diff_find_changed() (Yee Cheng Chin). + +Patch 9.1.1247 +Problem: fragile setup to get (preferred) keys from key_name_entry + (after v9.1.1179) +Solution: Refactor the code further, fix a bug with "pref_name" key + entry introduced in v9.1.1180 (Yee Cheng Chin) + +Patch 9.1.1248 +Problem: compile error when building without FEAT_QUICKFIX +Solution: Adjust ifdefs in popupwin.c, add CheckFeature quickfix + to a few tests (John Marriott, Hirohito Higashi). + +Patch 9.1.1249 +Problem: No test that 'listchars' "eol" doesn't affect "gM". +Solution: Add a test (zeertzjq). + +Patch 9.1.1250 +Problem: cannot set the maximum popup menu width (Lucas Mior) +Solution: add the new global option value 'pummaxwidth' (glepnir). + +Patch 9.1.1251 +Problem: if_python: build error with tuples and dynamic python + (after v9.1.1239) +Solution: Fix build error and test failures (Yee Cheng Cin). + +Patch 9.1.1252 +Problem: Typos in code and docs related to 'diffopt' "inline:". + (after v9.1.1243) +Solution: Fix typos and slightly improve the docs (zeertzjq). + +Patch 9.1.1253 +Problem: If win_close() is called with a window that has quickfix stack + attached to it, the corresponding quickfix buffer will be + closed and freed after the buffer was already closed. At that + time curwin->w_buffer points to NULL, which the CHECK_CURBUF + will catch and abort if ABORT_ON_ERROR is defined. +Solution: In wipe_qf_buffer() temporarily point curwin->w_buffer back to + curbuf, the window will be closed anyhow, so it shouldn't + matter that curbuf->b_nwindows isn't incremented. + +Patch 9.1.1254 +Problem: need more tests for the comment plugin +Solution: Add a tests for the [gb]:comment_first_col setting (Maxim Kim). + +Patch 9.1.1255 +Problem: missing test condition for 'pummaxwidth' setting, pummaxwidth + not effective when width is 32 and height is 10 (after v9.1.1250). +Solution: Add missing comparison condition in pum_width() (glepnir). + +Patch 9.1.1256 +Problem: if_python: duplicate tuple data entries (after v9.1.1239) +Solution: clean up duplicates (Yegappan Lakshmanan). + +Patch 9.1.1257 +Problem: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw(). +Solution: Change vim_strsize() to mb_string2cells() (zeertzjq). + +Patch 9.1.1258 +Problem: regexp: max \U and \%U value is limited by INT_MAX but gives a + confusing error message +Solution: Give a better error message when the value reaches INT_MAX + +Patch 9.1.1259 +Problem: some issues with comment package and tailing spaces +Solution: Correctly capture trailing spaces with the ac/ic text object + (Maxim Kim). + +Patch 9.1.1260 +Problem: Hang when filtering buffer with NUL bytes (after 9.1.1050). +Solution: Don't subtract "written" from "lplen" repeatedly (zeertzjq). + +Patch 9.1.1261 +Problem: No test for 'pummaxwidth' non-truncated items (after v9.1.1250) +Solution: Add shorter items to Test_pum_maxwidth_multibyte() (zeertzjq). + +Patch 9.1.1262 +Problem: heap-buffer-overflow occurs with narrow 'pummaxwidth' value + (after v9.1.1250) +Solution: Test that st_end points after st pointer (Hirohito Higashi). + +Patch 9.1.1263 +Problem: string length wrong in get_last_inserted_save() (after v9.1.1222). +Solution: When removing trailing ESC, also decrease the string length + (Christ van Willegen). + +Patch 9.1.1264 +Problem: Vim9: error when comparing objects (lifepillar) +Solution: When comparing object types, compare their classes + (Yegappan Lakshmanan) + +Patch 9.1.1265 +Problem: tests: no tests for typing normal char during completion +Solution: Add a test verifying the default behaviour (see :h + popupmenu-completion) + +Patch 9.1.1266 +Problem: MS-Windows: type conversion warnings +Solution: Cast the variables (Yegappan Lakshmanan). + +Patch 9.1.1267 +Problem: Vim9: no support for type list/dict> +Solution: Add proper support for t_object_any (Yegappan Lakshmanan). + +Patch 9.1.1268 +Problem: filetype: dax files are not recognized +Solution: Detect "*.dax" as dax filetype, include dax filetype and + syntax plugin (Anarion Dunedain). + +Patch 9.1.1269 +Problem: compl_shown_match is updated when starting keyword completion + and does not include fuzzy matching. +Solution: Do not update compl_shown_match when starting keyword + completion, since it is the one already selected by the + keyword completion direction (glepnir). + +Patch 9.1.1270 +Problem: missing out-of-memory checks in buffer.c +Solution: Handle out-of-memory situations during allocation (John Marriott). + +Patch 9.1.1271 +Problem: filetype: Power Query files are not recognized +Solution: Detect '*.pq' as pq filetype, include pq syntax and filetype + plugin (Anarion Dunedain). + +Patch 9.1.1272 +Problem: completion: in keyword completion Ctrl_P cannot go back after + Ctrl_N +Solution: in find_compl_when_fuzzy() always return first match of array, after + Ctrl_P use compl_shown_match->cp_next instead of compl_first_match. + (glepnir) + +Patch 9.1.1273 +Problem: Coverity warns about using uninitialized value (after 9.1.1270). +Solution: Put an empty string in "buf" when allocation fails (zeertzjq). + +Patch 9.1.1274 +Problem: Vim9: no support for object as variable type +Solution: Add support for object (Yegappan Lakshmanan). + +Patch 9.1.1275 +Problem: MS-Windows: Not possible to pass additional flags to Make_mvc +Solution: Introduce $CI_FLAGS and use it to pass additional flags for + the Github CI in order to treat size conversion warnings + (C4267) as errors (Yegappan Lakshmanan). + +Patch 9.1.1276 +Problem: inline word diff treats multibyte chars as word char + (after 9.1.1243) +Solution: Treat all non-alphanumeric characters as non-word characters + (Yee Cheng Chin) + +Patch 9.1.1277 +Problem: tests: trailing comment char in test_popupwin +Solution: Remove crufty tail comment (Doug Kearns) + +Patch 9.1.1278 +Problem: Vim9: too long functions in vim9type.c +Solution: Refactor into separate functions (Yegappan Lakshmanan). + +Patch 9.1.1279 +Problem: Vim9: null_object and null_class are no reserved names +Solution: Add null_object and null_class as reserved names + (Yegappan Lakshmanan). + +Patch 9.1.1280 +Problem: trailing additional semicolon in get_matches_in_str() + (Hirohito Higashi) +Solution: Remove it (Satoru Kitaguchi). + +Patch 9.1.1281 +Problem: extra newline output when editing stdin +Solution: Remove outputting when reading from stdin in non-terminal mode + (Abhijit Barik). + +Patch 9.1.1282 +Problem: Build and test failure without job feature (lazypingu). +Solution: Adjust ifdefs, add CheckFeature job to tests. + +Patch 9.1.1283 +Problem: quickfix and location-list stack is limited to 10 items +Solution: Add the 'chistory' and 'lhistory' options to configure a + larger quickfix/location list stack (64-bitman). + +Patch 9.1.1284 +Problem: not possible to configure the completion menu truncation + character +Solution: Add the "trunc" suboption to the 'fillchars' setting to + configure the truncation indicator (glepnir). + +Patch 9.1.1285 +Problem: Vim9: no error message for missing method after "super." +Solution: Output an error message, add a few more tests (Yegappan Lakshmanan). + +Patch 9.1.1286 +Problem: Help files not detected when 'iskeyword' includes ":". +Solution: Do not use \< and \> in the pattern (zeertzjq). + +Patch 9.1.1287 +Problem: quickfix code can be further improved (after v9.1.1283) +Solution: Slightly refactor quickfix.c (Hirohito Higashi). + +Patch 9.1.1288 +Problem: Using wrong window in ll_resize_stack() (after v9.1.1287) +Solution: Use "wp" instead of "curwin", even though they are always the + same value. Fix typos in documentation (zeertzjq). + +Patch 9.1.1289 +Problem: tests: no test for matchparen plugin with WinScrolled event +Solution: Add missing test. + +Patch 9.1.1290 +Problem: tests: missing cleanup in test_filetype.vim, wrong name in + test_plugin_matchparen +Solution: Add :bwipe corresponding to :split, rename test case. + +Patch 9.1.1291 +Problem: too many strlen() calls in buffer.c +Solution: Refactor buffer.c and remove strlen() calls (John Marriott). + +Patch 9.1.1292 +Problem: statusline not correctly evaluated (Peter Kenny, after v9.1.1291) +Solution: Revert part of Patch v9.1.1291 (Hirohito Higashi). + +Patch 9.1.1293 +Problem: comment plugin does not handle 'exclusive' selection for + comment object (@mawkish) +Solution: Handle special case selection='exclusive' for inline comment + object (Maxim Kim). + +Patch 9.1.1294 +Problem: gui tabline menu does not use confirm when closing tabs +Solution: Use ":confirm tabclose" explicitly (JMcKiern). + +Patch 9.1.1295 +Problem: clientserver: When in insert mode, a :stopinsert command + is not correctly processed (user202729) +Solution: If the :stopinsert command is received while waiting for + input, stuff the NOP key into the type-ahead buffer and + detect that :stopinsert was used in edit() so that the + cursor position is decremented. + +Patch 9.1.1296 +Problem: completion: incorrect truncation logic (after: v9.1.1284) +Solution: Replace string allocation with direct screen rendering and + fix RTL/LTR truncation calculations (glepnir). + +Patch 9.1.1297 +Problem: cursor_correct() calculates a valid cursor position which + is later changed by update_topline() and causes Ctrl-D + scrolling to be stuck (Daniel Steinberg, after v9.1.0258). +Solution: Update the valid cursor position before validating topline + (Luuk van Baal). + +Patch 9.1.1298 +Problem: define_function() is too long +Solution: Refactor and split up into smaller functions (Yegappan Lakshmanan). + +Patch 9.1.1299 +Problem: filetype: mbsyncrc files are not recognized +Solution: Detect isyncrc and "*.mbsyncrc" files as mbsync filetype, + include filetype and syntax plugin (Pierrick Guillaume). + +Patch 9.1.1300 +Problem: wrong detection of -inf +Solution: Correctly compare 4 characters and not 3 (John Marriott). + +Patch 9.1.1301 +Problem: completion: cannot configure completion functions with + 'complete' +Solution: Add support for setting completion functions using the f and o + flag for 'complete' (Girish Palya) + +Patch 9.1.1302 +Problem: Coverity warns about using uninitialized value + (Coverity, Tony Mechelynck, after v9.1.1301) +Solution: Initialize callback pointer to NULL + +Patch 9.1.1303 +Problem: missing out-of-memory check in linematch.c +Solution: Return early in case of memory allocation failure, move the + pow() calculation ouside of the for() loop (John Marriott). + +Patch 9.1.1304 +Problem: filetype: some man files are not recognized + (e.g. 1p (POSIX commands)) +Solution: Update the filetype detection pattern and detect more man + files as nroff (Eisuke Kawashima). + +Patch 9.1.1305 +Problem: When switching to another window or tab page while the + completion menu is active, the menu stays visible, although it + belongs to the previous window/tab page context (Evgeni + Chasnovski). +Solution: Track the window and tab page where completion started. Detect + changes in the main editing loop and cancel completion mode if + the current window or tab page differs from where completion + started. + +Patch 9.1.1306 +Problem: Parts of the popup menu were rendered twice when the popup was + at maximum width because the truncation flag was being set too + liberally. +Solution: Make the truncation condition more precise by only setting it + when there's exactly one character of space remaining (glepnir). + +Patch 9.1.1307 +Problem: GNU extensions, such as `ifeq` and `wildcard` function, are + highlighted in BSDmakefile +Solution: Detect BSD, GNU, or Microsoft implementation according to + filename, user-defined global variables, or file contents. + +Patch 9.1.1308 +Problem: During insert-mode completion, the most relevant match is often + the one closest to the cursor—frequently just above the current line. + However, both `` and `` tend to rank candidates from the + current buffer that appear above the cursor near the bottom of the + completion menu, rather than near the top. This ordering can feel + unintuitive, especially when `noselect` is active, as it doesn't + prioritize the most contextually relevant suggestions. +Solution: This change introduces a new sub-option value "nearest" for the + 'completeopt' setting. When enabled, matches from the current buffer + are prioritized based on their proximity to the cursor position, + improving the relevance of suggestions during completion + (Girish Palya). + +Patch 9.1.1309 +Problem: tests: no test for 'pummaxwidth' with non-truncated "kind". +Solution: Add a test with "kind" and larger 'pummaxwidth' (zeertzjq). + +Patch 9.1.1310 +Problem: Duplicate check for preinsert effect, particularly for Ctrl_w + and Ctrl_U. +Solution: Remove the specific check for Ctrl_w and Ctrl_U to eliminate + redundancy (glepnir). + +Patch 9.1.1311 +Problem: completion: not possible to limit number of matches +Solution: allow to limit the matches for 'complete' sources by using the + "{flag}^{limit}" notation (Girish Palya) + +Patch 9.1.1312 +Problem: tests: Test_backupskip() fails when HOME is defined +Solution: Unset $HOME temporarily + +Patch 9.1.1313 +Problem: compile warning about uninitialized value + (Tony Mechelynck, after v9.1.1311) +Solution: Initialize variable on declaration + +Patch 9.1.1314 +Problem: max allowed string width too small +Solution: Increased MAX_ALLOWED_STRING_WIDTH from 6400 to 1MiB + (Hirohito Higashi) + +Patch 9.1.1315 +Problem: chain complete does not work when 'cot' includes fuzzy + and 'completefuzzycollect' collects wrong next word (Konfekt). +Solution: Compl_startpos is not set correctly, remove next word check + in search_for_fuzzy_match (glepnir). + +Patch 9.1.1316 +Problem: missing memory allocation failure in os_mswin.c +Solution: Check for memory allocation failure and return early (John Marriott) + +Patch 9.1.1317 +Problem: noisy error when restoring folds from session fails +Solution: ignore errors silently when sourcing session file (Igor Lacerda). + +Patch 9.1.1318 +Problem: tests: test_format fails (after 9.1.1314). +Solution: Increase the string size. Add missing test_format.res in + NEW_TESTS_RES (zeertzjq). + +Patch 9.1.1319 +Problem: Various typos in the code, redundant and strange use of + :execute in test_ins_complete.vim (after 9.1.1315). +Solution: Fix typos in the code and in the documentation, use the + executed command directly (zeertzjq). + +Patch 9.1.1320 +Problem: filetype: alsoft config files are not recognized +Solution: Detect alsoft config files as dosini filetype (David Mandelberg). + +Patch 9.1.1321 +Problem: filetype: MS ixx and mpp files are not recognized +Solution: Detect *.mpp and *.ixx files as c++ filetype (Hampus Avekvist). + +Patch 9.1.1322 +Problem: small delete register cannot paste multi-line correctly + (after v8.2.2189) +Solution: Make this logic handle charwise only (phanium). + +Patch 9.1.1323 +Problem: b:undo_ftplugin not executed when re-using buffer (archy3) +Solution: Explicitly execute b:undo_ftplugin in buflist_new() when + re-using the current buffer. + +Patch 9.1.1324 +Problem: undefined behaviour if X11 connection dies +Solution: Call setjmp() before the main_loop() and restore x11 state + if the X11 connection dies (Foxe Chen). + +Patch 9.1.1325 +Problem: tests: not checking error numbers properly. +Solution: Add a trailing comma to avoid matching a different error + number with the same prefix (zeertzjq). + +Patch 9.1.1326 +Problem: invalid cursor position after 'tagfunc' (gandalf4a). +Solution: Call check_cursor() after executing the 'tagfunc'. + +Patch 9.1.1327 +Problem: filetype: nroff detection can be improved +Solution: Improve nroff detection (Eisuke Kawashima) + +Patch 9.1.1328 +Problem: too many strlen() calls in indent.c +Solution: Refactor indent.c slightly and remove strlen() calls (John Marriott) + +Patch 9.1.1329 +Problem: cannot get information about command line completion +Solution: Add CmdlineLeavePre autocommand and cmdcomplete_info() Vim + script function (Girish Palya) + +Patch 9.1.1330 +Problem: may receive E315 in terminal +Solution: Call check_cursor() (Hirohito Higashi). + +Patch 9.1.1331 +Problem: Leaking memory with cmdcomplete() (zeertzjq, after v9.1.1329) +Solution: Free the memory (Girish Palya). + +Patch 9.1.1332 +Problem: Vim9: segfault when using super within a lambda (lifepillar) +Solution: Inherit the class from the current function (Yegappan Lakshmanan). + +Patch 9.1.1333 +Problem: Coverity: complains about unutilized variable +Solution: Initialize typval properly + +Patch 9.1.1334 +Problem: Coverity complains about unchecked return value +Solution: Cast return value to (void) + +Patch 9.1.1335 +Problem: Coverity complains about Null pointer dereferences +Solution: Before accessing ccline->cmdbuff check that ccline is not NULL + +Patch 9.1.1336 +Problem: comment plugin does not support case-insensitive + 'commentstring' (char101) +Solution: Use pattern '\c' to make the regex case-insensitive (Maxim Kim). + +Patch 9.1.1337 +Problem: Undo corrupted with 'completeopt' "preinsert" when switching + buffer or window. +Solution: Do not delete preinsert text when switching buffer or window + (zeertzjq). + +Patch 9.1.1338 +Problem: Calling expand() interferes with cmdcomplete_info() (after 9.1.1329) +Solution: Only clear cmdline_orig when starting/ending cmdline mode (zeertzjq) + +Patch 9.1.1339 +Problem: missing out-of-memory checks for enc_to_utf16() and utf16_to_enc() +Solution: Add out-of-memory checks and fix a few other minor issues + (John Marriott) + +Patch 9.1.1340 +Problem: cannot complete :filetype arguments (Phạm Bình An) +Solution: Add :filetype ex command completion, add "filetypecmd" + completion type for getcompletion() + +Patch 9.1.1341 +Problem: Cannot define completion triggers and act upon it +Solution: Add the new option 'isexpand' and add the complete_match() + function to return the completion matches according to the + 'isexpand' setting (glepnir) + +Patch 9.1.1342 +Problem: Shebang filetype detection can be improved +Solution: Improve detection logic (Eisuke Kawashima) + +Patch 9.1.1343 +Problem: filetype: IPython files are not recognized (user202729). +Solution: Detect *.ipy files as python filetype. + +Patch 9.1.1344 +Problem: double free in f_complete_match() (after v9.1.1341) +Solution: Remove additional free of trig pointer, correctly free + regmatch.regprog and before_cursor in the error case. + +Patch 9.1.1345 +Problem: tests: Test_xxd_color2() test failure dump diff is misleading +Solution: Ensure the reference dump and the test dump are both processed the + same (Drew Vogel). + +Patch 9.1.1346 +Problem: missing out-of-memory check in textformat.c +Solution: Add out-of-memory check, add small optimizations to + internal_format() and same_leader() (John Marriott) + +Patch 9.1.1347 +Problem: small problems with gui_w32.c +Solution: Fix compile warnings and refactor code (John Marriott) + +Patch 9.1.1348 +Problem: still E315 with the terminal feature (user202729) +Solution: Call update_topline() in limit_scrollback() (Hirohito Higashi). + +Patch 9.1.1349 +Problem: CmdlineLeavePre may trigger twice (after v9.1.1329) +Solution: Check that the key was typed, trigger it when it wasn't before + (Girish Palya). + +Patch 9.1.1350 +Problem: tests: typo in Test_CmdlineLeavePre_cabbr() (after v9.1.1349) +Solution: Fix typo, disable failing test on Windows for now (Girish Palya). + +Patch 9.1.1351 +Problem: Return value of getcmdline() inconsistent in CmdlineLeavePre + when leaving cmdline in different ways (after v9.1.1329). +Solution: Trigger CmdlineLeavePre before calling abandon_cmdline() so + that getcmdline() can return the command line (zeertzjq). + +Patch 9.1.1352 +Problem: style: inconsistent indent in insexpand.c +Solution: Fix indentation (Hirohito Higashi). + +Patch 9.1.1353 +Problem: missing change from v9.1.1350 +Solution: Update the test Test_CmdlineTrigger() (Girish Palya). + +Patch 9.1.1354 +Problem: tests: Test_terminalwinscroll_topline() fails on Windows +Solution: Instead of disabling it in Github Actions runners, disable it + for all Windows runs. + +Patch 9.1.1355 +Problem: The pum_redraw function is too complex and difficult to + maintain with nested loops and mixed responsibilities handling + both RTL and LTR text rendering. +Solution: Extracted core rendering logic into dedicated helper functions + (pum_display_rtl_text, pum_display_ltr_text, pum_draw_scrollbar, + pum_process_item) while preserving the original behavior. This + improves code readability and maintainability (glepnir). + +Patch 9.1.1356 +Problem: Vim9: crash when unletting variable +Solution: Fix crash, allow to use :unlet (Hirohito Higashi). + +Patch 9.1.1357 +Problem: Vim incorrectly escapes tags containing "[" in a help buffer +Solution: Check if the buffer has the "help" filetype set, instead of + already being a help buffer (Phạm Bình An). + +Patch 9.1.1358 +Problem: if_lua: compile warnings with gcc15 +Solution: Update function prototypes (lilydjwg). + +Patch 9.1.1359 +Problem: filetype: GNU Radio config files are not recognized. +Solution: Detect GNU Radio config files as confini filetype. Only + allow '#' as start of comment in confini syntax (zeertzjq). + +Patch 9.1.1360 +Problem: filetype: GNU Radio companion files are not recognized +Solution: Detect *.grc files as xml or yaml filetype depending on the + first line (zeertzjq). + +Patch 9.1.1361 +Problem: [security]: Possible to open more windows into a closing + buffer without splitting, bypassing existing "b_locked_split" + checks and triggering use-after-free +Solution: Disallow switching to a closing buffer. Editing a closing + buffer (via ":edit", etc.) was fixed in v9.1.0764, but add an + error message and check just "b_locked_split", as "b_locked" + is necessary only when the buffer shouldn't be wiped, and may + be set for buffers that are in-use but not actually closing + (Sean Dewar). + +Patch 9.1.1362 +Problem: Vim9: type ignored when adding tuple to instance list var + (Lifepillar) +Solution: When getting the typval of class and object member variables, + set the variable type (Yegappan Lakshmanan). + +Patch 9.1.1363 +Problem: style: inconsistent indentation in various files +Solution: Fix style, updated codestyle test (Naruhiko Nishino). + +Patch 9.1.1364 +Problem: style: more indentation issues +Solution: Fix indentation style (Yegappan Lakshmanan). + +Patch 9.1.1365 +Problem: MS-Windows: compile warnings and too many strlen() calls in + os_mswin.c +Solution: Refactor os_mswin.c and fix the warning (John Marriott). + +Patch 9.1.1366 +Problem: v9.1.1364 unintentionally changed sign.c and sound.c +Solution: Revert those parts, adjust the test (Hirohito Higashi). + +Patch 9.1.1367 +Problem: too many strlen() calls in gui.c +Solution: Refactor gui.c slightly (John Marriott). + +Patch 9.1.1368 +Problem: GTK3 and GTK4 will drop numeric cursor support. +Solution: Adopt GTK3 code and use CSS cursor convention (Drew Vogel). + +Patch 9.1.1369 +Problem: configure still using autoconf 2.71 +Solution: Regenerate with autoconf 2.72. + +Patch 9.1.1370 +Problem: CI Tests favor GTK2 over GTK3 +Solution: Install GTK3 dependencies and debug packages for CI workflows, + update ASAN suppression list, update required dependency + checks for the tests (Drew Vogel). + +Patch 9.1.1371 +Problem: style: indentation issue in insexpand.c +Solution: Update style (glepnir). + +Patch 9.1.1372 +Problem: style: braces issues in various files +Solution: Fix style (Hirohito Higashi). + +Patch 9.1.1373 +Problem: Flag checking logic uses a temporary variable and multiple + bitwise operations in insexpand.c +Solution: Consolidate into a single equality check using bitwise OR and + comparison (glepnir). + +Patch 9.1.1374 +Problem: Currently, 'smartcase' is respected when completing keywords + using , , , and . However, when + a user continues typing and the completion menu is filtered + using cached matches, 'smartcase' is not applied. This leads + to poor-quality or irrelevant completion suggestions, as shown + in the example below. +Solution: When filtering cached completion items after typing additional + characters, apply case-sensitive comparison if 'smartcase' is + enabled and the typed pattern includes uppercase characters. + This ensures consistent and expected completion behavior + (Girish Palya). + +Patch 9.1.1375 +Problem: heap use-after-free possible when autocommands switch away from the + quickfix dummy buffer, but leave it open in a window. +Solution: Close its windows first before attempting the wipe (Sean Dewar). + +Patch 9.1.1376 +Problem: when failing to wipeout a quickfix dummy buffer, it will + remain as a dummy buffer, despite being kept. +Solution: Clear its dummy BF_DUMMY flag in this case (Sean Dewar). + +Patch 9.1.1377 +Problem: Some GTK3 users experienced unexpectedly small windows at + startup (after v9.1.1368, @berggeist, Tony Mechelynck) +Solution: Update window manager hints in gui_mch_open, partly revert + v9.1.1370 (Drew Vogel). + +Patch 9.1.1378 +Problem: When 'signcolumn' is set to `number` but a line has a sign + without text, the line number disappears (finite-state-machine) +Solution: Verify that a sign actually contains text before rendering the + line number (glepnir). + +Patch 9.1.1379 +Problem: MS-Windows: error when running evim when space in path of Vim +Solution: Properly parse quoted strings (Miguel Barro) + +Patch 9.1.1380 +Problem: When an autocommand executes for a non-current buffer, + 'eventignorewin' is only checked from the buffer's last + wininfo (overwrites win_ignore in the loop), not from the + value of 'eventignorewin' in all windows showing the buffer as + described (after v9.1.1084) +Solution: Fix the check and don't use wininfo, as that may only contain + windows that recently showed the buffer. Consider all the + buffer's windows in all tabpages (Sean Dewar). + +Patch 9.1.1381 +Problem: Cannot return to the original text after selecting the next + item when the currently selected item is the last one. +Solution: When continuing to move down past the last item, locate the + original completion at the head/tail nodes of the completed + linked list (glepnir). + +Patch 9.1.1382 +Problem: if_ruby: unused compiler warnings from ruby internals +Solution: disable -Wunused-parameter for if_ruby internal code (Philip H.). + +Patch 9.1.1383 +Problem: When a space character is used as a trigger in 'isexpand' option + it doesn't get recognized because skip_to_option_part() skips + spaces after a comma, treating them as option separators + rather than option value (after v9.1.1341) +Solution: Manually set the part to a space character (glepnir). + +Patch 9.1.1384 +Problem: still some problem with the new tutors filetype plugin +Solution: Refactor code to enable/disable tutor mode into + tutor#EnableInteractive() function, include a test + (Phạm Bình An). + +Patch 9.1.1385 +Problem: Loop that ensures "w_skipcol" is zero with 'nosmoothscroll' + for (half)-page scrolling is inefficient. +Solution: Calculate the required "count" instead of looping until + "w_skipcol" is zero (Luuk van Baal). + +Patch 9.1.1386 +Problem: MS-Windows: some minor problems building on AARCH64 +Solution: Update Make_cyg_ming with aarch64 specific changes, + document how to build on aarch64 using msys2 packages. + +Patch 9.1.1387 +Problem: buflist_new() leaks ffname and fails to reuse curbuf when + autocommands from buf_freeall change curbuf. Plus, a new + buffer is not allocated in this case, despite what the comment + above claims. +Solution: Remove the condition so ffname is not leaked and so a new + buffer is allocated like before v8.2.4791. It should not be + possible for undo_ftplugin or buf_freeall autocommands to + delete the buffer as they set b_locked, but to stay consistent + with other uses of buf_freeall, guard against that anyway + (Sean Dewar). + +Patch 9.1.1388 +Problem: One-off error in "count" to make "w_skipcol" zero with + 'nosmoothscroll' page scrolling when last virtual line + in a buffer line is exactly the entire window width + (Hirohito Higashi). +Solution: Properly compute the smallest integer value necessary + to make "w_skipcol" zero (Luuk van Baal). + +Patch 9.1.1389 +Problem: Cannot get completion startcol when space is not the first + trigger character (after v9.1.1383) +Solution: Detect the next comma followed by a space in the option string + and use in next compare loop (glepnir). + +Patch 9.1.1390 +Problem: style: more wrong indentation +Solution: reformat a few more places (Yegappan Lakshmanan). + +Patch 9.1.1391 +Problem: Vim does not have a tabpanel +Solution: Include the tabpanel feature (Naruhiko Nishino, thinca). + +Patch 9.1.1392 +Problem: missing Patch number (Tony Mechelynck) +Solution: add missing Patche number. + +Patch 9.1.1393 +Problem: The check in buf_freeall that restores curwin subtly prevents + leaving an unloaded buffer in a window when reusing curbuf, if + autocommands switch to a different buffer. +Solution: Add a test case that covers this. Also ensure splitting isn't + possible, as that could do the same (Sean Dewar). + +Patch 9.1.1394 +Problem: tabpanel not correctly redrawn on tabonly + (Maxim Kim, after v9.1.1391) +Solution: Force redraw of the tabpanel, tweak style (Hirohito Higashi). + +Patch 9.1.1395 +Problem: Search_stat not reset when pattern differs in case + (tahzibijafar) +Solution: Use STRNCMP instead of MB_STRNICMP macro. + +Patch 9.1.1396 +Problem: The 'grepformat' option is global option, but it would be + useful to have it buffer-local, similar to 'errorformat' and + other quickfix related options (Dani Dickstein) +Solution: Add the necessary code to support global-local 'grepformat', + allowing different buffers to parse different grep output + formats (glepnir). + +Patch 9.1.1397 +Problem: tabpanel not correctly updated on :tabonly (Maxim Kim) +Solution: Force a redraw, take 'equalalways' into account (Naruhiko Nishino). + +Patch 9.1.1398 +Problem: When items are combined with user-defined highlight attributes + (e.g., strikethrough), trunc inherits these attributes, making + the text difficult to read. +Solution: Trunc now uses the original Pmenu and PmenuSel highlight + attributes (glepnir). + +Patch 9.1.1399 +Problem: tests: test_codestyle fails for auto-generated files. + While those files are already ignored in Test_source_Files(), + the newly added Test_indent_of_source_files() does not filter + those out and causes test failures on appveyor. +Solution: Factor out the generation of all c files into a common function + and filter out auto-generated files if_ole.h, iid_ole.c and + dlldata.c + +Patch 9.1.1400 +Problem: [security]: use-after-free when evaluating tuple fails +Solution: Return early in case of an error (Yegappan Lakshmanan). + +Patch 9.1.1401 +Problem: list not materialized in prop_list() (Nickwiz) +Solution: Materialize list before accessing it. + +Patch 9.1.1402 +Problem: multi-byte mappings not properly stored in session file +Solution: Unescape the mapping before writing out the mapping, prefer + single-byte mapping name if possible (Miguel Barro). + +Patch 9.1.1403 +Problem: expansion of 'tabpanelopt' value adds wrong values + (Shane-XB-Qian, after v9.1.1391). +Solution: Update tabpanelopt expansion function and expand only valid + values (Hirohito Higashi). + +Patch 9.1.1404 +Problem: wrong link to Chapter 2 in vim-01-beginner.tutor +Solution: Fix the link to Chapter 2, add test for links in tutor files + (Phạm Bình An). + +Patch 9.1.1405 +Problem: tests: no test for mapping with special keys in session file. +Solution: Add a special keys to an existing test. Also test with UTF-8 + characters containing 0x80 or 0x9b bytes (zeertzjq). + +Patch 9.1.1406 +Problem: crash when importing invalid tuple (Yang LUO, Yanju Chen) +Solution: Set type to VAR_UNKNOWN, so that it isn't freed + (Yegappan Lakshmanan). + +Patch 9.1.1407 +Problem: Can't use getpos('v') in OptionSet when using setbufvar(). +Solution: Don't reset Visual selection when switching to the same + buffer (zeertzjq). + +Patch 9.1.1408 +Problem: not easily possible to complete from register content +Solution: Add register-completion submode using i_CTRL-X_CTRL-R + (glepnir). + +Patch 9.1.1409 +Problem: using f-flag in 'complete' conflicts with Neovims filename + completion (glepnir, after v9.1.1301). +Solution: Use upper-case "F" flag for completion functions (Girish Palya). + +Patch 9.1.1410 +Problem: out-of-bounds access with 'completefunc' (csetc) +Solution: Check if it is safe to advance cpt_sources_index (Girish Palya). + +Patch 9.1.1411 +Problem: crash when calling non-existing function for tabpanel (Yamagi, + after v9.1.1391) +Solution: Check if there was an error and if there was, set tabpanel + option to empty to prevent showing errors on every redraw. + +Patch 9.1.1412 +Problem: tests: Test_tabpanel_tabonly() fails on larger screens +Solution: Re-generate screendump file for 78 column large terminal. + +Patch 9.1.1413 +Problem: spurious CursorHold triggered in GUI on startup +Solution: Init global did_cursorhold flag to true (Gary Johnson). + +Patch 9.1.1414 +Problem: MS-Windows: compile warnings in os_win32.c +Solution: Update function declarations, correctly access param arg in + set_flag() using (sig_atomic_t) cast (John Marriott). + +Patch 9.1.1415 +Problem: potential use-after free when there is an error in 'tabpanel' + option (@char101, after v9.1.1391) +Solution: Check if p_tpl has been set to null before accessing it again. + +Patch 9.1.1416 +Problem: completion limits not respected when using fuzzy completion + (Maxim Kim) +Solution: Trim completion array (Girish Palya). + +Patch 9.1.1417 +Problem: missing info about register completion in complete_info() + (after v9.1.1408) +Solution: update documentation and mention that register is used as + source, add a test (glepnir). + +Patch 9.1.1418 +Problem: configures GUI auto detection favors GTK2 +Solution: make configure favor GTK3 over GTK2 for the GUI + when auto detecting the gui toolkit (Drew Vogel). + +Patch 9.1.1419 +Problem: It is difficult to ignore all but some events. +Solution: Add support for a "-" prefix syntax in '(win)eventignore' that + subtracts an event from the ignored set if present (Luuk van Baal). + +Patch 9.1.1420 +Problem: tests: could need some more tests for shebang lines +Solution: Add more shebang patterns to test_filetype.vim (Eisuke Kawashima). + +Patch 9.1.1421 +Problem: tests: need a test for the new-style tutor.tutor, Patch + 9.1.1384 broke the expected positions for the signs +Solution: Update all number keys in tutor.tutor.json to match the + correct line numbers in tutor.tutor, replace tabs by spaces, + add a screen-dump test to verify it does not regress (Pham Bình An). + +Patch 9.1.1422 +Problem: scheduling of complete function can be improved +Solution: Call user completion functions earlier when just determining + the insertion column (Girish Palya). + +Patch 9.1.1423 +Problem: :tag command not working correctly using Vim9 Script +Solution: Inject a ':' before the numeric address, to make the command + valid in Vim9 context + +Patch 9.1.1424 +Problem: PMenu selection broken with multi-line selection and limits + (Maxim Kim) +Solution: Update completion match index when limiting the completion + sources (Girish Palya). + +Patch 9.1.1425 +Problem: tabpanel: there are still some problems with the tabpanel with + column handling +Solution: Fix the problems and refactor Tabpanel feature (Hirohito Higashi). + +Patch 9.1.1426 +Problem: CTRL-X CTRL-R only completes individual words from registers, + making it difficult to insert complete register content. +Solution: Add consecutive CTRL-X CTRL-R support - first press completes + words, second press completes full register lines, similar to + CTRL-X CTRL-L and CTRL-X CTRL-P behavior (glepnir). + +Patch 9.1.1427 +Problem: rendering artifacts with the tabpanel (char101) +Solution: Prevent double redraw, use Columns instead of frame width + (Hirohito Higashi) + +Patch 9.1.1428 +Problem: Completion: register completion needs cleanup +Solution: Slightly refactor get_register_completion() (glepnir). + +Patch 9.1.1429 +Problem: dragging outside the tabpanel changes tabpagenr (char101) +Solution: Set in_tab_line and in_tabpanel variables (Hirohito Higashi). + +Patch 9.1.1430 +Problem: tabpanel may flicker in the GUI +Solution: Call scroll_start() and scroll_region_reset() (Hirohito Higashi). + +Patch 9.1.1431 +Problem: Hit-Enter Prompt when loading session files +Solution: Use set+= for 'shortmess' to keep the existing flags (Miguel Barro). + +Patch 9.1.1432 +Problem: GTK GUI: Buffer menu does not handle unicode correctly +Solution: Get rid of the BMHash() function (SUN Haitao). + +Patch 9.1.1433 +Problem: Unnecessary :if in session where both branches have the same + effect (after 9.1.1431). +Solution: Remove the superfluous :if (zeertzjq). + +Patch 9.1.1434 +Problem: MS-Windows: missing out-of-memory checks in os_win32.c +Solution: Add out-of-memory checks to os_win32.c (John Marriott). + +Patch 9.1.1435 +Problem: completion: various flaws in fuzzy completion +Solution: Fix the issues (Girish Palya). + +Patch 9.1.1436 +Problem: GUI control code is displayed on the console on startup +Solution: Check if Vim is starting up (Hirohito Higashi). + +Patch 9.1.1437 +Problem: MS-Windows: internal compile error in uc_list() with VS 17.14 + (ibear) +Solution: Refactor code slightly (Mike Williams). + +Patch 9.1.1438 +Problem: tests: Test_breakindent_list_split() fails (Phạm Bình An) +Solution: Always reset "&columns" and "&lines" for GUI builds + (Aliaksei Budavei). + +Patch 9.1.1439 +Problem: Last diff folds not merged (after v8.1.1922) +Solution: Loop over all windows in the current tabpage and update all + folds (Gary Johnson). + +Patch 9.1.1440 +Problem: too many strlen() calls in os_win32.c +Solution: Refactor code and remove calls to strlen() (John Marriott). + +Patch 9.1.1441 +Problem: completion: code can be improved +Solution: Remove reposition_match() and use mergesort_list(), + for fuzzy completion, sort by fuzzy score immediately after + setting a new leader (Girish Palya). + +Patch 9.1.1442 +Problem: tests: Test_diff_fold_redraw() is insufficient + (after v9.1.1439, Christ van Willegen) +Solution: Improve the test (Gary Johnson). + +Patch 9.1.1443 +Problem: potential buffer underflow in insertchar() +Solution: Verify that end_len is larger than zero (jinyaoguo). + +Patch 9.1.1444 +Problem: Unused assignment in set_fuzzy_score() (after 9.1.1441). +Solution: Remove it (zeertzjq). + +Patch 9.1.1445 +Problem: negative matchfuzzy scores although there is a match (Maxim Kim). +Solution: Reset the score if a match has been found but the score is + negative (Girish Palya). + +Patch 9.1.1446 +Problem: filetype: cuda-gdb config files are not recognized +Solution: Detect .cuda-gdbinit and cuda-gdbinit files as gdb filetype + (Wu Zhenyu). + +Patch 9.1.1447 +Problem: completion: crash when backspacing with fuzzy completion +Solution: Don't dereference compl_first_match when it's NULL (zeertzjq). + +Patch 9.1.1448 +Problem: tabpanel is not displayed correctly when msg_scrolled +Solution: Remove the msg_scrolled condition (Hirohito Higashi). + +Patch 9.1.1449 +Problem: typo in pum_display() +Solution: Update the comment, remove empty new lines (glepnir) + +Patch 9.1.1450 +Problem: Session has wrong arglist with :tcd and :arglocal. +Solution: Also use absolute path for :argadd when there is tabpage-local + directory (zeertzjq). + +Patch 9.1.1451 +Problem: tabpanel rendering artifacts when scrolling +Solution: Update scrolling logic (Hirohito Higashi). + +Patch 9.1.1452 +Problem: completion: redundant check for completion flags +Solution: Refactor code slightly (glepnir). + +Patch 9.1.1453 +Problem: tests: Test_geometry() may fail (Gary Johnson) +Solution: Allow a slightly smaller value when checking the number of + lines. + +Patch 9.1.1454 +Problem: Missing test case for pum display on a wrapped line. +Solution: Add a test case to cover pum behavior at line break positions + (glepnir). + +Patch 9.1.1455 +Problem: Haiku: dailog objects created with no reference +Solution: Delete the objects before returning (jinyaoguo) + +Patch 9.1.1456 +Problem: comment plugin fails toggling if 'cms' contains \ +Solution: Escape backslash (Maxim Kim). + +Patch 9.1.1457 +Problem: compile warning with tabpanelopt +Solution: Declare arg as UNUSED (John Marriott). + +Patch 9.1.1458 +Problem: tabpanel: tabs not properly updated with 'stpl' +Solution: remember the Column offset per tabpage (Hirohito Higashi). + +Patch 9.1.1459 +Problem: xxd prints color escape sequences for every octet + even if the color doesn't change +Solution: use separate arrays for colors and text and only + print escape sequences when the color changes (Emanuel Krollmann). + +Patch 9.1.1460 +Problem: MS-Windows: too many strlen() calls in os_win32.c +Solution: Refactor code and remove calls to strlen() and wcscat() + (John Marriott). + +Patch 9.1.1461 +Problem: tabpanel: tabpanel vanishes with popup menu +Solution: Remove pum-related test in tabpanel_leftcol(), refactor a few + related functions (Hirohito Higashi). + +Patch 9.1.1462 +Problem: missing change from Patch v9.1.1461 +Solution: Change wrong TPL_LCOL macro in a few more places. + +Patch 9.1.1463 +Problem: Integer overflow in getmarklist() after linewise operation. +Solution: Don't add 1 to MAXCOL (zeertzjq). + +Patch 9.1.1464 +Problem: gv does not work in operator-pending mode (liushapku) +Solution: remove the check for checkclearop in nv_gv_cmd() (phanium). + +Patch 9.1.1465 +Problem: tabpanel: not correctly drawn with 'equalalways' +Solution: Call win_equal() (Hirohito Higashi). + +Patch 9.1.1466 +Problem: filetype: not all lex files are recognized +Solution: Detect *.ll as lex, llvm or lifelines filetype, depending on + the content (Eisuke Kawashima). + +Patch 9.1.1467 +Problem: too many strlen() calls +Solution: Change expand_env() to return string length (John Marriott). + +Patch 9.1.1468 +Problem: filetype: bright(er)script files are not recognized +Solution: Detect *.bs files as brighterscript filetype and *.brs as + brightscript filetype, include filetype plugins (Riley Bruins). + +Patch 9.1.1469 +Problem: potential buffer-underflow with invalid hl_id (mugitya03) +Solution: Assert that the return-code of syn_get_final_id() if > 0 + +Patch 9.1.1470 +Problem: use-after-free with popup callback on error + (Brian Carbone, lifepillar) +Solution: Check if the popup window is valid before accessing it. + +Patch 9.1.1471 +Problem: completion: inconsistent ordering with CTRL-P (zeertzjq). +Solution: Reset compl_curr_match when using CTRL-P (Girish Palya). + +Patch 9.1.1472 +Problem: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed with + python3.14 in stable ABI +Solution: use PySequence_{Size,GetItem} instead (Zdenek Dohnal) + +Patch 9.1.1473 +Problem: inconsistent range arg for :diffget/diffput +Solution: Fix the range specification, place the cursor for :diffput and + :diffget consistently on the last line (Yee Cheng Chin) + +Patch 9.1.1474 +Problem: missing out-of-memory check in mark.c +Solution: bail out, if mark_line() returns NULL (John Marriott). + +Patch 9.1.1475 +Problem: completion: regression when "nearest" in 'completeopt' +Solution: Fix compare function (Girish Palya). + +Patch 9.1.1476 +Problem: missing out-of-memory checks in cmdexpand.c +Solution: Add missing out-of-memory checks, re-order code (John Marriott). + +Patch 9.1.1476 +Problem: no easy way to deduplicate text +Solution: Add the :uniq ex command (Hirohito Higashi). + +Patch 9.1.1478 +Problem: Unused assignment in ex_uniq() (after v9.1.1476) +Solution: Remove the assignment and the wrong comments above (zeertzjq). + +Patch 9.1.1479 +Problem: regression when displaying localized percentage position + (after v9.1.1291) +Solution: Calculate percentage first (Emir SARI). + +Patch 9.1.1480 +Problem: Turkish translation outdated +Solution: Update Turkish translations, enable disabled test from v9.1.1479 + (Emir SARI). + +Patch 9.1.1481 +Problem: gcc complains about uninitialized variable + (Tony Mechelynck, after v9.1.1476) +Solution: Initialize variable. + +Patch 9.1.1482 +Problem: Topline is preemptively updated by line() in WinResized + autocmd with 'splitkeep' != "cursor". +Solution: Set `skip_update_topline` when 'splitkeep' != "cursor" (Luuk van Baal) + +Patch 9.1.1483 +Problem: not possible to translation position in buffer +Solution: use _() macro to mark the output as translatable (Emir SARI) + +Patch 9.1.1484 +Problem: tests: Turkish locale tests fails on Mac (after v9.1.1480). +Solution: Skip the test Test_pos_percentage_in_turkish_locale() on Mac + +Patch 9.1.1485 +Problem: missing Wayland clipboard support +Solution: Make it work (Foxe Chen). + +Patch 9.1.1486 +Problem: documentation issues with Wayland (after v9.1.1485) +Solution: Tweak documentation style. Capitalize the first letter of + Wayland (Hirohito Higashi). + +Patch 9.1.1487 +Problem: :cl doesn't invoke :clist (after v9.1.1485) +Solution: Fix order of definition in ex_cmds.h (Hirohito Higashi). + +Patch 9.1.1488 +Problem: configure: using obsolete macro AC_PROG_GCC_TRADITIONAL +Solution: Drop it from configure.ac, regenerate auto/configure. + +Patch 9.1.1489 +Problem: terminal: no visual highlight of empty cols when 'listchars' + is empty (Yousef Mohammed) +Solution: Reset wlv.win_attr when column is zero and we are drawing a + terminal buffer. + +Patch 9.1.1490 +Problem: 'wildchar' does not work in search contexts +Solution: implement search completion when 'wildchar' is typed (Girish Palya). + +Patch 9.1.1491 +Problem: missing out-of-memory checks in cmdexpand.c +Solution: Add out-of-memory checks for expand_files_and_dirs(), + ExpandUserDefined() and ExpandUserList() (John Marriott). + +Patch 9.1.1492 +Problem: tests: failure when Wayland compositor fails to start +Solution: Instead of throwing an error causing a failure, throw + "Skipped", so that the Vim test suite continues and does not fail. + +Patch 9.1.1493 +Problem: manually comparing positions on buffer (after v9.1.1490) +Solution: Use the LTOREQ_POS() macro, fix a few other minor style issues + (glepnir). + +Patch 9.1.1494 +Problem: runtime(tutor): no French translation for Chapter 2 +Solution: Add and refine French translation of tutor2, update French + vimtutor manpage (Damien Lejay) + +Patch 9.1.1495 +Problem: Wayland: uses $XDG_SEAT to determine seat to use + (dr0bz, after v9.1.1485) +Solution: Do not try to determine the seat from $XDG_SEAT, remove the + code that checks for this environment variable (Foxe Chen). + +Patch 9.1.1496 +Problem: terminal: still not highlighting empty cells correctly + (Yousef Mohammed, after v9.1.1489) +Solution: Use vcol instead of col. + +Patch 9.1.1497 +Problem: Link error with shm_open() (gcanat, after v9.1.1485). +Solution: use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE. + +Patch 9.1.1498 +Problem: completion: Functions specified in the 'complete' option did + not have the leader string removed when called with findstart = 0, + unlike 'omnifunc' behavior +Solution: Update behaviour and make behaviour consistent (Girish Palya). + +Patch 9.1.1499 +Problem: MS-Windows: no indication of ARM64 architecture +Solution: Add ARM64 to version output and include in nsis installer + (RestorerZ) + +Patch 9.1.1500 +Problem: if_python: typo in python error variable +Solution: Fix typo (Damien Lejay). + +Patch 9.1.1501 +Problem: filetype: flix files are not recognized +Solution: Detect *.flix files as flix filetype (0xadk). + +Patch 9.1.1502 +Problem: filetype: quickbms files are not recognized +Solution: Detect *.bms files as quickbms filetype (0xadk). + +Patch 9.1.1503 +Problem: filetype: haxe files are not recognized +Solution: Detect *.hx files as haxe filetype (0xadk). + +Patch 9.1.1504 +Problem: filetype: numbat files are not recognized +Solution: Detect *.nbt files as numbat filetype (0xadk). + +Patch 9.1.1505 +Problem: not possible to return command-line completion type for :ex + command +Solution: Make getcmdcompltype() accept an optional and return the + command-line completion for that arg (Shougo Matsushita). + +Patch 9.1.1506 +Problem: tests: missing cleanup test_override('char_avail', 0) in + Test_search_cmdline_incsearch_highlight(). +Solution: Add the missing cleanup (zeertzjq). + +Patch 9.1.1507 +Problem: File paths change from symlink to target path after :cd command + when editing files through symbolic links +Solution: Add "~" flag to 'cpoptions' to control symlink resolution (glepnir). + +Patch 9.1.1508 +Problem: String manipulation can be improved in cmdexpand.c +Solution: Refactor cmdexpand.c to remove calls to STRLEN()/STRMOVE()/STRCAT() + (John Marriott). + +Patch 9.1.1509 +Problem: Patch 9.1.1505 was not good +Solution: Revert "Patch 9.1.1505 for :ex command" and instead add the + getcompletiontype() function (Hirohito Higashi). + +Patch 9.1.1510 +Problem: Search completion may use invalid memory (after 9.1.1490). +Solution: Don't get two line pointers at the same time (zeertzjq). + +Patch 9.1.1511 +Problem: tests: two edit tests change v:testing from 1 to 0. +Solution: Don't change v:testing in these two tests, since it's already + set to 1 in runtest.vim (zeertzjq). + +Patch 9.1.1512 +Problem: completion: can only complete from keyword characters +Solution: Remove this restriction, allow completion functions when + called from i_CTRL-N/i_CTRL-P to be triggered from non-keyword + characters (Girish Palya). + +Patch 9.1.1513 +Problem: resizing Vim window causes unexpected internal window width + (chdiza, after v9.1.1465) +Solution: Move the column calculation around (Hirohito Higashi). + +Patch 9.1.1514 +Problem: coverity complains about the use of tmpfile() +Solution: Use vim_tempname() instead to create anonym file. + +Patch 9.1.1515 +Problem: memcpy() in ExpandRTDir_int() may create unterminated strings +Solution: Use vim_snprintf() to construct complete paths safely (glepnir). + +Patch 9.1.1516 +Problem: tests: no test that 'incsearch' is updated after accepting + search completion. +Solution: Add a test case (zeertzjq). + +Patch 9.1.1517 +Problem: filetype: autopkgtest files are not recognized +Solution: Detect */debian/tests/control files as autopkgtest filetype + (James McCoy). + +Patch 9.1.1518 +Problem: getcompletiontype() crashes when no completion is available + (after v9.1.1509). +Solution: Don't call set_expand_context() (zeertzjq). + +Patch 9.1.1519 +Problem: Test_termdebug_decimal_breakpoints() fails with List index out + of range, because when adding the second breakpoint, the + cursor is still on the very first line +Solution: Run the program, so that it will break at the very first + defined breakpoint and then once we are in the program, + set further breakpoints. + +Patch 9.1.1520 +Problem: When using `/` or `?` in command-line mode with 'ignorecase' and + 'smartcase' enabled, the completion menu could show items that + don't actually match any text in the buffer due to case mismatches +Solution: Instead of validating menu items only against the user-typed + pattern, the new logic also checks whether the completed item + matches actual buffer content. If needed, it retries the match + using a lowercased version of the candidate, respecting + smartcase semantics. + +Patch 9.1.1521 +Problem: When 'wildmode' is set to include "noselect", the popup menu (pum) + incorrectly retained its scroll position when reopened. This + meant that after scrolling down through the menu with ``, + reopening the menu (e.g., by retyping the command and + triggering completion again) would show the menu starting from + the previously scrolled position, rather than from the top. +Solution: Ensure that the popup menu resets its scroll position to the + top when reopened (Girish Palya). + +Patch 9.1.1522 +Problem: tests: still some ANSI escape sequences in test messages output +Solution: Update the cleanup regexp to also handle those ANSI escape + sequences: `|2h` and `|31H`. + +Patch 9.1.1523 +Problem: tests: test_clipmethod fails in non X11 environment +Solution: Test that $DISPLAY is available + +Patch 9.1.1524 +Problem: tests: too many imports in the test suite +Solution: Clean up the imported scripts. + +Patch 9.1.1525 +Problem: tests: testdir is a bit messy +Solution: Move test scripts into testdir/util/ directory. + +Patch 9.1.1526 +Problem: completion: search completion match may differ in case (techntools) +Solution: Add "exacttext" to 'wildoptions' value (Girish Palya). + +Patch 9.1.1527 +Problem: Vim9: Crash when using string compound assignment with wrong + data type (lacygoill). +Solution: Verify expected member type (Hirohito Higashi). + +Patch 9.1.1528 +Problem: completion: crash with getcompletion() (zeertzjq) +Solution: Don't set may_expand_pattern in f_getcompletion(), unset + may_expand_pattern() once it is not longer needed (Girish Palya). + +Patch 9.1.1529 +Problem: Win32: the toolbar in the GUI is old and dated +Solution: Include improved icons from Fatcow (CC by 3.0) (RestorerZ). + +Patch 9.1.1530 +Problem: Missing version change from v9.1.1529 +Solution: Update version.c with latest Patch. + +Patch 9.1.1531 +Problem: confusing error with nested legacy function (lacygoill) +Solution: Clarify error message E1117 with :def or :func (Hirohito Higashi). + +Patch 9.1.1532 +Problem: termdebug: not enough ways to configure breakpoints +Solution: Add the termdebug_config['signs'] config setting, rework the + termdebug test cases (Dimitry Ishenko). + +Patch 9.1.1533 +Problem: helptoc: does not handle code sections in markdown well (VimWei). +Solution: Skip over fenced code sections (lacygoill), add a test. + +Patch 9.1.1534 +Problem: unnecessary code in tabpanel.c +Solution: Remove it (Hirohito Higashi). + +Patch 9.1.1535 +Problem: The maximum search count uses a hard-coded value of 99 + (Andres Monge, Joschua Kesper) +Solution: Make it configurable using the 'maxsearchcount' option. + +Patch 9.1.1536 +Problem: tests: test_plugin_comment.vim uses :CheckScreenDump check but + doesn't actually use a screen dump. +Solution: Use :CheckRunVimInTerminal instead, remove a few empty lines. + +Patch 9.1.1537 +Problem: helptoc: some issues when parsing markdown code blocks (VimWei) +Solution: Assign nextline to curline before starting the next loop + iteration; when processing fenced code blocks, flip the + skip_fence variable, update the test to be more comprehensive. + +Patch 9.1.1539 +Problem: completion: messages don't respect 'shm' setting +Solution: Turn off completion messages when 'shortmess' includes "c" + (Girish Palya). + +Patch 9.1.1540 +Problem: completion: menu state wrong on interruption (Maxim Kim) +Solution: Call show_pum() if completion was interrupted (Girish Palya). + +Patch 9.1.1541 +Problem: Vim9: error when last enum value ends with a comma +Solution: Allow trailing commas in enum values (Yegappan Lakshmanan). + +Patch 9.1.1542 +Problem: Coverity complains about uninitialized variable (Tony Mechelynck) +Solution: Initialize variables. + +Patch 9.1.1543 +Problem: Wayland: clipboard appears to not be working (Fuad Veliev) +Solution: Explicitly set selection each time (Foxe Chen). + +Patch 9.1.1544 +Problem: :retab cannot be limited to indentation only +Solution: add the optional -indentonly parameter (Hirohito Higashi). + +Patch 9.1.1545 +Problem: Typo in os_unix.c +Solution: Correct the typo (Foxe Chen). + +Patch 9.1.1546 +Problem: Vim9: error with has() and short circuit evaluation +Solution: Only eval, if ctx_skip is not SKIP_YES (Yegappan Lakshmanan). + +Patch 9.1.1547 +Problem: Wayland: missing ifdef +Solution: Add #ifdef around ch_log() call (Foxe Chen). + +Patch 9.1.1548 +Problem: filetype: OpenFGA files are not recognized +Solution: Detect *.fga files as fga filetype, include an fga filetype + plugin (Riley Bruins). + +Patch 9.1.1549 +Problem: filetype: pkl files are not recognized +Solution: Detect *.pkl files as pkl filetype, include a filetype plugin (Riley + Bruins). + +Patch 9.1.1550 +Problem: defaults: 'showcmd' is not enabled in non-compatible mode on Unix +Solution: Always enable 'showcmd' in non-compatible mode, drop it from + defaults.vim. + +Patch 9.1.1551 +Problem: [security]: path traversal issue in zip.vim (@ax) +Solution: Drop leading ../ on write of zipfiles, don't forcefully + overwrite existing files. + +Patch 9.1.1552 +Problem: [security]: path traversal issue in tar.vim (@ax) +Solution: Warn the user for such things, drop leading /, don't + forcefully overwrite files when writing temporary files, + refactor autoload/tar.vim + +Patch 9.1.1553 +Problem: Vim9: crash when accessing a variable in if condition (lxhillwind) +Solution: Skip indexing a list/tuple/dict/blob when short-circuiting an + if condition check (Yegappan Lakshmanan). + +Patch 9.1.1554 +Problem: Vim crashes during omnifunc completion inside the command-line + window ("q:") if the completion item attempts to open an "info" + preview window. This leads to a failed assert during execution. +Solution: Avoid opening preview windows while inside the command-line + window to prevent the crash (Girish Palya). + +Patch 9.1.1555 +Problem: completion: repeated insertion and deletion of complete + functions +Solution: Remove unnecessary insertion and deletion of leader text + during expansion of function present in 'complete' option + (Girish Palya). + +Patch 9.1.1556 +Problem: string handling in cmdexpand.c can be improved +Solution: Improve string manipulation in cmdexpand.c (John Marriott). + +Patch 9.1.1557 +Problem: not possible to anchor specific lines in difff mode +Solution: Add support for the anchoring lines in diff mode using the + 'diffanchor' option (Yee Cheng Chin). + +Patch 9.1.1558 +Problem: str2blob() treats NULL string and empty string differently +Solution: Treats a NULL string the same as an empty string (zeertzjq). + +Patch 9.1.1559 +Problem: tests: Test_popup_complete_info_01() fails when run alone. +Solution: Set buffer-local competeopt+=noinsert and add missing cleanup + in Test_popup_complete() (zeertzjq). + +Patch 9.1.1560 +Problem: configure: uses $PKG_CONFIG before it is defined +Solution: Define $PKG_CONFIG earlier in the script (Christoffer Aasted). + +Patch 9.1.1561 +Problem: configure: wayland test can be improved +Solution: Define $WAYLAND_CFLAGS, simplify the wayland tests + (Christoffer Aasted). + +Patch 9.1.1562 +Problem: close button "X" is visible in the non-GUI 'tabline', even + when the mouse is disabled +Solution: Only show the button when 'mouse' contains any of the flags + "anvi" (Girish Palya). + +Patch 9.1.1563 +Problem: The ruler disappears after typing the second character during + insert mode completion, even when completion messages are + suppressed ('shortmess' includes "c"). This makes the UI + appear inconsistent. +Solution: Ensure the ruler is restored during screen redraw when popup + completion is active (Girish Palya). + +Patch 9.1.1564 +Problem: Can open a popup window to a closing buffer, leading to the + buffer remaining open in the window after it's soon unloaded, + causing crashes. +Solution: Check b_locked_split when opening a popup window to an + existing buffer (Sean Dewar). + +Patch 9.1.1565 +Problem: configure: does not consider tiny version for wayland +Solution: Do not try to enable wayland for a tiny vim version + (Christoffer Aasted). + +Patch 9.1.1566 +Problem: self-referenced enum may not get freed +Solution: Test if it can be freed (Yegappan Lakshmanan). + +Patch 9.1.1567 +Problem: Crash when using inline diff mode (Ilya Grigoriev) +Solution: Set tp_diffbuf to NULL when skipping a diff block (Yee Cheng Chin). + +Patch 9.1.1568 +Problem: need a few more default highlight groups +Solution: Add Bold, Italic and BoldItalic default highlight groups + (Maxim Kim). + +Patch 9.1.1569 +Problem: tests: Vim9 tests can be improved +Solution: In Test_has_func_shortcircuit(), move the test functions to a + separate script (Yegappan Lakshmanan). + +Patch 9.1.1570 +Problem: Copilot suggested some improvements in cmdexpand.c (after v9.1.1556) +Solution: Use better variable names and comments (John Marriott). + +Patch 9.1.1571 +Problem: The CmdlineChanged event was firing unnecessarily, even when + the command line's content hadn't actually changed. +Solution: Add a check to compare the command-line buffer's state + before and after key processing. The `CmdlineChanged` event + now only triggers if the buffer's contents are genuinely + different (Girish Palya). + +Patch 9.1.1572 +Problem: expanding $var does not escape whitespace for 'path' +Solution: Escape whitespace when expanding 'path' option. (Miguel Barro). + +Patch 9.1.1573 +Problem: Memory leak when pressing Ctrl-D in cmdline mode (after 9.1.1571). +Solution: Free prev_cmdbuff before assigning to it. (zeertzjq). + +Patch 9.1.1574 +Problem: Dead code in mbyte.c +Solution: Delete the dead wcwidth()/iswprint() code (Damien Lejay). + +Patch 9.1.1575 +Problem: tabpanel not drawn correctly with wrapped lines + (utubo, after v9.1.1534) +Solution: Use Columns as width, not the frame width (Hirohito Higashi). + +Patch 9.1.1576 +Problem: cannot easily trigger wildcard expansion +Solution: Introduce wildtrigger() function (Girish Palya). + +Patch 9.1.1577 +Problem: Vim9: no generic support yet +Solution: Add support for generic functions, funcrefs and object/class + methods (Yegappan Lakshmanan). + +Patch 9.1.1578 +Problem: configure: comment still mentions autoconf 2.71 to generate + the configure script +Solution: Update the comment to use autoconf 2.72 instead (Yee Chin Cheng). + +Patch 9.1.1579 +Problem: Coverity complains about unchecked return value in + common_function() (after v9.1.1577) +Solution: Check the return value of skip_generic_func_type_args() + and return in case of an error (Yegappan Lakshmanan). + +Patch 9.1.1580 +Problem: possible memory leak in vim9type.c +Solution: Free tuple_types_ga if there was an error in + type_type_add_types() (Lidong Yan) + +Patch 9.1.1581 +Problem: possible memory leak in vim9generics.c +Solution: Free ret_free if ga_grow() fails and before returning + (Lidong Yan). + +Patch 9.1.1582 +Problem: style issue in vim9type.c and vim9generics.c + (after v9.1.1581 and v9.1.1580) +Solution: Update Style and place opening brace on a new line. + +Patch 9.1.1583 +Problem: Since Patch 9.1.1199 the gvim window no longer had _NET_WM_ICON + nor WM_HINTS icon information, for example when not using a + Gnome or KDE desktop (after v9.1.1199) +Solution: Check if the icon theme as used in Patch 1199 contains a gvim + icon. If so, set the window's icon from that. Otherwise + use the previous method (Olaf Seibert) + +Patch 9.1.1584 +Problem: using ints as bool +Solution: Include stdbool.h and start using bool type directly + (Hirohito Higashi). + +Patch 9.1.1585 +Problem: Wayland: gvim still needs GVIM_ENABLE_WAYLAND +Solution: Drop the GVIM_ENABLE_WAYLAND code, always enable both X11 and + Wayland GUI support (Christoffer Aasted) + +Patch 9.1.1586 +Problem: Vim9: can define an enum/interface in a function (lacygoill) +Solution: Give an error when defining an enum or an interface inside a + function (Yegappan Lakshmanan). + +Patch 9.1.1587 +Problem: Wayland: timeout not updated before select() +Solution: Always set timeval struct before select() (Foxe Chen). + +Patch 9.1.1588 +Problem: Vim9: cannot split dict inside command block (lacygoill) +Solution: Remove the current restriction (Yegappan Lakshmanan). + +Patch 9.1.1589 +Problem: Cannot disable cscope interface using configure, because in + feature.h FEAT_CSCOPE will always be enabled for huge builds + (chdiza) +Solution: Don't define FEAT_CSCOPE from configure script but set the + ENABLE_CSCOPE flag and check for the presence of that flag in + feature.h + +Patch 9.1.1590 +Problem: cannot perform autocompletion +Solution: Add the 'autocomplete' option value (Girish Palya) + +Patch 9.1.1591 +Problem: VMS support can be improved +Solution: Merge chagnes from Steven M. Schweda (Zoltan) + +Patch 9.1.1592 +Problem: Vim9: crash with classes and garbage collection + (Christian J. Robinson, after v9.1.1566) +Solution: When getting the references to an object, make sure the object + is valid (Yegappan Lakshmanan). + +Patch 9.1.1593 +Problem: Confusing error when compiling incomplete try block (lacygoill) +Solution: Give better error messages (Hirohito Higashi). + +Patch 9.1.1594 +Problem: completion: search completion throws errors, wrong placement + of pum menu with 'imi'=1 (berggeist) +Solution: Fix those errors (Girish Palya). + +Patch 9.1.1595 +Problem: Wayland: non-portable use of select() +Solution: Correctly set the timeval struct (Foxe Chen). + +Patch 9.1.1596 +Problem: tests: Test_search_wildmenu_iminsert() depends on help file + (after 9.1.1594). +Solution: Set buffer text using setline() instead of loading help file. + Add a test for another bug fixed by 9.1.1594 (zeertzjq). + +Patch 9.1.1597 +Problem: CI reports leaks in libgtk3 library +Solution: Add libgtk-3 library to leak suppression + +Patch 9.1.1598 +Problem: filetype: waybar config file is not recognized +Solution: Detect */waybar/config file as jsonc filetype (Furkan Sahin). + +Patch 9.1.1599 +Problem: :bnext doesn't go to unlisted help buffers when cycling + through help buffers (after 9.1.0557). +Solution: Don't check if a help buffer is listed (zeertzjq). + +Patch 9.1.1600 +Problem: diff: using diff anchors with hidden buffers fails silently +Solution: Give specific error message for diff anchors when using hidden + buffers (Yee Cheng Chin). + +Patch 9.1.1601 +Problem: Patch v8.1.0425 was wrong +Solution: Revert that Patch (Hirohito Higashi). + +Patch 9.1.1602 +Problem: filetype: requirements-*.txt files are not recognized +Solution: Detect requirements-*.txt files as requirements filetype + (Xudong Zheng). + +Patch 9.1.1603 +Problem: completion: cannot use autoloaded funcs in 'complete' F{func} + (Maxim Kim) +Solution: Make it work (Girish Palya). + +Patch 9.1.1604 +Problem: completion: incsearch highlight might be lost after search + completion (Hirohito Higashi) +Solution: Restore incsearch highlight after dismissing pum with Ctrl-E + (Girish Palya). + +Patch 9.1.1605 +Problem: Cannot specify scope for chdir() +Solution: Add optional scope argument (kuuote). + +Patch 9.1.1606 +Problem: filetype: a few more files are not recognized +Solution: Guess Mail, Info and Terminfo files by its content (lacygoill). + +Patch 9.1.1607 +Problem: :apple command detected as :append (dai475694450) +Solution: Disallow to define a custom command with lower-case letter, + correctly detect :insert/:change/:append ex commands + (Hirohito Higashi). + +Patch 9.1.1608 +Problem: No command-line completion for :unsilent {command}. +Solution: Add missing command arg completion (Doug Kearns). + +Patch 9.1.1609 +Problem: complete: Heap-buffer overflow with complete function (zeertzjq) +Solution: Do not let startcol become negative (Girish Palya). + +Patch 9.1.1610 +Problem: completion: hang (after 9.1.1471) or E684 (after 9.1.1410) + when 'tagfunc' calls complete(). +Solution: Check if complete() has been called immediately after getting + matches instead of in the next loop iteration (zeertzjq). + +Patch 9.1.1611 +Problem: possible undefined behaviour in mb_decompose(), when using the + same pointer as argument several times +Solution: Use separate assignments to avoid reading and writing the same + object at the same time (Áron Hárnási). + +Patch 9.1.1612 +Problem: Ctrl-G/Ctrl-T does not ignore the end search delimiter (irisjae) +Solution: Check if the pattern ends with a search delimiter and ignore + it, unless it is part of the pattern. + +Patch 9.1.1613 +Problem: tests: test_search leaves a few swapfiles behind +Solution: Use :bw! instead of :close to close the swapfile at the end of + the test. + +Patch 9.1.1614 +Problem: Vim9: possible variable type change when using closure in a + for loop (Maxim Kim) +Solution: Use unwind_locals(..., TRUE) (Yegappan Lakshmanan). + +Patch 9.1.1615 +Problem: diff format erroneously detected (Tomáš Janoušek) +Solution: Make the regex to detect normal diff format a bit stricter, + while at it, fix wrong test content from Patch v9.1.1606. + +Patch 9.1.1616 +Problem: xxd: possible buffer overflow with bitwise output + (after v9.1.1459, Xudong Cao) +Solution: Update LLNE_NO_COLOR macro definition for the max line output. + +Patch 9.1.1617 +Problem: Vim9: some error messages can be improved +Solution: Improve error messages when parsing generic function type + arguments (Yegappan Lakshmanan). + +Patch 9.1.1618 +Problem: completion: incorrect selected index returned from + complete_info() +Solution: Return the index into "items" and restore the previous + behaviour (Robert Muir). + +Patch 9.1.1619 +Problem: Incorrect E535 error message (after 9.1.1603). +Solution: Don't use transchar(), as the character is always printable + (zeertzjq). + +Patch 9.1.1620 +Problem: filetype: composer.lock and symfony.lock files not recognized +Solution: Detect composer.lock and symfony.lock files as json filetype + (Dietrich Moerman). + +Patch 9.1.1621 +Problem: When the popup menu (PUM) occupies more than half the screen + height, it flickers whenever a character is typed or erased. +Solution: A complete, non-hacky fix would require removing the + CmdlineChanged event from the loop and letting autocompletion + manage the process end-to-end. This is because screen redraws + after any cmdline change are necessary for other features to + work (Girish Palya). + +Patch 9.1.1622 +Problem: Patch v9.1.1432 causes performance regressions +Solution: Revert "Patch 9.1.1432 unicode correctly" (Yee Cheng Chin). + +Patch 9.1.1623 +Problem: Buffer menu does not handle unicode names correctly + (after v9.1.1622) +Solution: Fix the BMHash() function (Yee Cheng Chin) + +Patch 9.1.1624 +Problem: Cscope not enabled on MacOS +Solution: Remove #ifdef test for MacOS and always enable FEAT_CSCOPE on + Unix (Damien Lejay). + +Patch 9.1.1625 +Problem: Autocompletion slow with include- and tag-completion +Solution: Refactor ins_compl_interrupted() to also check for timeout, + further refactor code to skip outputting message when + performing autocompletion (Girish Palya). + +Patch 9.1.1626 +Problem: C-indent does not handle compound literals (@44100hertz, @Jorenar) +Solution: Detect and handle compound literal and structure + initialization (Anttoni Erkkilä). + +Patch 9.1.1627 +Problem: fuzzy-matching can be improved +Solution: Implement a better fuzzy matching algorithm (Girish Palya). + +Patch 9.1.1628 +Problem: fuzzy.c has a few issues +Solution: Use Vims memory management, update style (glepnir). + +Patch 9.1.1629 +Problem: Vim9: Not able to use more than 10 type arguments in a generic + function +Solution: Initialize the types after reading all the type arg variable + names (Yegappan Lakshmanan). + +Patch 9.1.1630 +Problem: tests: fuzzy buffer name completion test doesn't match + successfully (after 9.1.1627). +Solution: Update pattern to account for the change in case sensitivity. + Also mark Test_search_stat_option() as flaky as it can still + sometimes fail (zeertzjq). + +Patch 9.1.1631 +Problem: proto files are outdated +Solution: Regenerate proto files (Yegappan Lakshmanan). + +Patch 9.1.1632 +Problem: memory leak in fuzzy.c +Solution: Free fuzmatch, add a few minor refactors (glepnir) + +Patch 9.1.1633 +Problem: Search pattern shown incorrectly with negative offset (lkintact) +Solution: Don't prepend a '+' sign to a negative offset (zeertzjq). + +Patch 9.1.1634 +Problem: Clipboard code can be improved +Solution: Slightly refactor code (Foxe Chen). + +Patch 9.1.1635 +Problem: tabpanel: cannot drag inactive tabs (char101) +Solution: use end_visual_mode_keep_button() instead of end_visual_mode() + (Naruhiko Nishino). + +Patch 9.1.1636 +Problem: style issues +Solution: Fix indentation of function parameters exceeding 80 character + length (Yegappan Lakshmanan). + +Patch 9.1.1637 +Problem: FEAT_DIFF used in diff.pro +Solution: Remove it from the diff protocol file (Yegappan Lakshmanan). + +Patch 9.1.1638 +Problem: completion: not possible to delay the autcompletion +Solution: Add the 'autocompletedelay' option value (Girish Palya). + +Patch 9.1.1639 +Problem: During commandline completiom, popup window placement can be + incorrect when 'noselect' is present in 'wildmode' + (Shane-XB-Qian) +Solution: Disable "showtail" feature when 'noselect' is present. + +Patch 9.1.1640 +Problem: Unicode has deprecated some code-points +Solution: Update the digraph tables to align with the Unicode v16 + release (David Friant) + +Patch 9.1.1641 +Problem: a few compiler warnings are output +Solution: Fix compiler warnings (Yegappan Lakshmanan). + +Patch 9.1.1642 +Problem: configure: wrong C99 feature test +Solution: Update inverted C99 feature test logic (Damien Lejay). + +Patch 9.1.1643 +Problem: tabpanel: mouse code too complicated +Solution: Refactor code, adjust ifdefs (Hirohito Higashi). + +Patch 9.1.1644 +Problem: configure: doesn't separate CPPFLAGS and CFLAGS +Solution: Split CPPFLAGS and CFLAGS for pkg-config (Damien Lejay). + +Patch 9.1.1645 +Problem: fuzzy.c can be further improved +Solution: Fix memory leak and refactor it (glepnir). + +Patch 9.1.1646 +Problem: MS-Windows: completion cannot handle implicit drive letters +Solution: Consider paths like \folder and /folder as absolute (Miguel Barro). + +Patch 9.1.1647 +Problem: filetype: Cangjie files are not recognized +Solution: Detect *.cj files as cangjie filetype, include a syntax plugin + (WuJunkai2004) + +Patch 9.1.1648 +Problem: MS-Windows: some style issues with Patch v9.1.1646 +Solution: Fix typose and code style issues (zeertzjq). + +Patch 9.1.1649 +Problem: attrs allocation and fuzzy growarray could leak on early returns +Solution: Ensure proper cleanup of allocated memory on exit paths (glepnir). + +Patch 9.1.1650 +Problem: After scrolling a popup and then using popup_settext() with + fewer lines, the popup fails to resize properly because + firstline points beyond the new buffer content (lifepillar) +Solution: In popup_adjust_position(), validate that firstline doesn't + exceed buffer line count and reset to 0 (auto-position) if it + does (glepnir). + +Patch 9.1.1651 +Problem: Cannot use clientserver over Unix domain socket +Solution: Implement socketserver functionality (Foxe Chen). + +Patch 9.1.1652 +Problem: Cannot determine non-X11/Wayland clipmethods +Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen) + +Patch 9.1.1653 +Problem: Coverity complains about Null pointer dereference (after v9.1.1643) +Solution: Check that TabPageIdx is not Null. + +Patch 9.1.1654 +Problem: build failure when FEAT_DIFF is not defined (John Marriott) +Solution: Remove FEAT_DIFF in proto.h; define dummy type for + diffline_T and diffline_change_T when FEAT_DIFF is not defined + +Patch 9.1.1655 +Problem: Build-failure in do_mouse() (after v9.1.1653) +Solution: Add missing closing paren. + +Patch 9.1.1656 +Problem: MS-Windows: Patch v9.1.1652 breaks clipboard + (ddad431, after v9.1.1652) +Solution: Revert the Patch. + +Patch 9.1.1657 +Problem: Autocompletion adds delay (gcanat, char101, after v9.1.1638) +Solution: Temporarily disable autocomplation (Girish Palya). + +Patch 9.1.1658 +Problem: Missing includes for Wayland headers, when subfolder is used + (after v9.1.1644) +Solution: Add new $WAYLAND_CPPFLAGS (Christoffer Aasted). + +Patch 9.1.1659 +Problem: configure: uses AC_INIT without args +Solution: Add a comment explaining why AC_INIT has no args (Damien Lejay). + +Patch 9.1.1660 +Problem: Popups without border/padding/title don't flip position when + cursor is near bottom of screen, while decorated popups do + flip correctly. +Solution: Use original height instead of truncated height for position + inversion check, except for info popups to preserve existing + behavior (glepnir). + +Patch 9.1.1661 +Problem: Coverity finds a few issues in clientserver.c + (also by Tony Mechelynck) +Solution: Fix issues and warnings (Foxe Chen). + +Patch 9.1.1662 +Problem: Issues with proto files: missing or inconsistent prototypes. +Solution: Update ifdefs, move typedefs, fix prototype declaration + (Hirohito Higashi). + +Patch 9.1.1663 +Problem: xxd: 9.1.0023 introduced additional dependency +Solution: Remove non-native z/OS library call (David Seal). + +Patch 9.1.1664 +Problem: configure: can use any autocon +Solution: Use AC_PREREQ and require 2.71 (Damien Lejay). + +Patch 9.1.1665 +Problem: Outdated comment in eval.c. +Solution: Remove the comment, which is no longer true after 8.2.1672. + Also fix a typo in version9.txt (zeertzjq). + +Patch 9.1.1666 +Problem: no support for terminal primary device attributes +Solution: Add support for detecting the DA1 response from the terminal, + add the v:termda1 variable and the 't_Ms' option for the + OSC 52 command format (Foxe Chen). + +Patch 9.1.1667 +Problem: Another outdated comment in eval.c (after 9.1.1665). +Solution: Remove that comment as well. Add a few more tests for mapnew() + that fail without Patch 8.2.1672 (zeertzjq). + +Patch 9.1.1668 +Problem: items() does not work for Blobs +Solution: Extend items() to support Blob (Yegappan Lakshmanan). + +Patch 9.1.1669 +Problem: Vim script: no support for URI de-/encoding (ubaldot) +Solution: Add the uri_encode() and uri_decode() functions + (Yegappan Lakshmanan) + +Patch 9.1.1670 +Problem: completion: autocomplete breaks second completion (gravndal) +Solution: Fix the autocomplete bug (Girish Palya). + +Patch 9.1.1671 +Problem: configure: missing comment about AC_CONFIG_SRCDIR +Solution: Add comment explaining the use of AC_CONFIG_SRCDIR (Damien Lejay). + +Patch 9.1.1672 +Problem: completion: cannot add timeouts for 'cpt' sources + (Evgeni Chasnovski) +Solution: Add the 'autocompletetimeout' and 'completetimeout' options + (Girish Palya). + +Patch 9.1.1673 +Problem: if_python: still support for Python 1 +Solution: Drop outdated code (Hirohito Higashi). + +Patch 9.1.1674 +Problem: Patch v9.1.1666 causes problems on kitty (Sami Farin) +Solution: Remove Ms value from termcodes (Foxe Chen). + +Patch 9.1.1675 +Problem: MS-Windows: Makefiles can be refactored +Solution: Refactor using a common tools.mak, make some style changes + (RestorerZ). + +Patch 9.1.1676 +Problem: completion: long line shown twice (Maxim Kim) +Solution: Fix the issue, disable an incorrect test (Girish Palya). + +Patch 9.1.1677 +Problem: wrong ifdef in message.c +Solution: change it to #ifndef MSWIN (Damien Lejay). + +Patch 9.1.1678 +Problem: Amiga: cannot handle large undo files +Solution: Remove the existing restriction as it was only valid for + classic Amiga (Damien Lejay). + +Patch 9.1.1679 +Problem: unclear what key causes CmdlineLeave autocommand +Solution: Set |v:char| to the key (Girish Palya). + +Patch 9.1.1680 +Problem: MS-Windows: possible buffer-under run in if_cscope + cs_pathcomponents() (Murali Aniruddhan) +Solution: Fix the loop and do not decrement the pointer twice. + +Patch 9.1.1681 +Problem: tests: no test for actually moving cursor when menu is not + open with 'autocompletedelay'. +Solution: Use first in the test. Also remove two unnecessary s + in completion timeout test (zeertzjq). + +Patch 9.1.1682 +Problem: tests: Test_wildtrigger_update_screen() creates an unused + mapping (after 9.1.1621). +Solution: Remove the mapping. Also use blank lines more consistently in + test_cmdline.vim screendump tests (zeertzjq). + +Patch 9.1.1683 +Problem: xxd: Avoid null dereference in autoskip colorless +Solution: Verify that colors is not null (Joakim Nohlgård). + +Patch 9.1.1684 +Problem: min()/max() does not handle float data types (ubaldot) +Solution: Extend min() and max() to every comparable type (LemonBoy). + +Patch 9.1.1685 +Problem: Missing changes from PR 18068 +Solution: Include the missing changes (Girish Palya). + +Patch 9.1.1686 +Problem: if_ruby: unknown pragma when not using gcc +Solution: only use GCC pragma, when using GCC (Cthulhux). + +Patch 9.1.1687 +Problem: filetype: autoconf filetype not always correct +Solution: Detect aclocal.m4 as config filetype, detect configure.ac as + config filetype, fall back to POSIX m4 (Damien Lejay). + +Patch 9.1.1688 +Problem: potential buffer overrun in bufwrite.c +Solution: Use a temporary variable (John Marriott). + +Patch 9.1.1689 +Problem: CmdlineChanged not triggered by +Solution: Use STRCMP() instead of STRNCMP() (Shougo Matsushita). + +Patch 9.1.1690 +Problem: Missing recursion guard in dos/unix_expandpath() +Solution: Add guard variables (ashamedbit). + +Patch 9.1.1691 +Problem: over-allocation in ga_concat_strings() +Solution: Fix ga_concat_strings() and only allocate n-1 separator length + bytes (Damien Lejay). + +Patch 9.1.1692 +Problem: global_functions are not constant +Solution: Place global_functions[] in read-only memory (Damien Lejay). + +Patch 9.1.1693 +Problem: tests: test_filetype fails in shadow dir (after v9.1.9.1.1687) +Solution: Use a custom test that does not rely on configure.ac + being existing in the upper directory tree. + +Patch 9.1.1694 +Problem: filetype: Buck eXtension Lang files are not recognized +Solution: Detect *.bxl files as bzl filetype. (Jade Lovelace) + +Patch 9.1.1695 +Problem: Need more Vim script specific tests +Solution: Add more tests (Yegappan Lakshmanan). + +Patch 9.1.1696 +Problem: getwininfo() has logic for getting the tabnr of a local popup + window, but due to only breaking from the inner loop, tp is + eventually set to NULL, so tabnr is always 0. +Solution: Break out of both loops, continue to use 0 for global popup + windows (Sean Dewar). + +Patch 9.1.1697 +Problem: tests: no test for aclocal.m4 (after v9.1.1693) +Solution: Add a test that aclocal.m4 is detected as config filetype. + +Patch 9.1.1698 +Problem: Some error numbers are not documented (Restorer) +Solution: Document missing error numbers (Yegappan Lakshmanan). + +Patch 9.1.1699 +Problem: Fuzzy completion disabled for 'findfunc' and customlist +Solution: Remove those cases from cmdline_fuzzy_completion_supported() + because it is supported (Maxim Kim). + +Patch 9.1.1700 +Problem: a pattern that involves a backref on a different line does not + match when 'ignorecase' is set (QiWei, after v9.1.0645) +Solution: Use MB_STRNICMP when ignorecase is set, fix tests to close + swapfiles. + +Patch 9.1.1701 +Problem: tests: failure on CI with GUI and ASAN in test_edit.res + (Hirohito Higashi) +Solution: Disable the test for that specific situation in CI, close + swapfiles. + +Patch 9.1.1702 +Problem: tests: test_edit still fails on CI (after v9.1.1701) +Solution: Fix the skip condition. + +Patch 9.1.1703 +Problem: Cannot react to terminal OSC responses +Solution: Allow TermResponseAll to be triggered by Terminal OSC + responses (Foxe Chen). + +Patch 9.1.1704 +Problem: Cannot determine non-X11/Wayland clipmethods +Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen). + +Patch 9.1.1705 +Problem: time.h include is available on all platforms +Solution: Remove ifdef guards and simply include it in all source files, + get rid of double include in spellfile.c (Damien Lejay). + +Patch 9.1.1706 +Problem: MS-Windows: Compile error when building with if_ruby + (Christian Robinson, after v9.1.1704) +Solution: Do not define gettimeofday() if ruby interface is compiled in + (Foxe Chen). + +Patch 9.1.1707 +Problem: diff.pro contains #ifdefs +Solution: Remove unintentionally added ifdefs (Hirohito Higashi). + +Patch 9.1.1708 +Problem: tests: various tests can be improved +Solution: Use string interpolation to concatenate strings in + test_winfixbuf, check for specific errors in assert_fails() + (Yegappan Lakshmanan). + +Patch 9.1.1709 +Problem: filetype: kyaml files are not recognized +Solution: Detect *.kyml files as yaml filetype (Volodymyr Chernetskyi). + +Patch 9.1.1710 +Problem: Compile warnings in clipboard.c (xvim64, after v9.1.1704) +Solution: Remove returns from void functions (Foxe Chen). + +Patch 9.1.1711 +Problem: Missing type cast in clipboard.c + (Yegappan Lakshmanan, after v9.1.1704) +Solution: Add back the type cast (Foxe Chen). + +Patch 9.1.1712 +Problem: screen not redrawn properly on t_RB response (after v9.1.1703) +Solution: Call redraw_asap() if necessary (Julio B). + +Patch 9.1.1713 +Problem: filetype: fvwm2m4 files are no longer recognized (after 9.1.1687). +Solution: Add a special case in m4 filetype detection (zeertzjq). + +Patch 9.1.1714 +Problem: completion: wildmode=longest:full selects wrong item (zeertzjq) +Solution: Fix issue, refactor ex_getln.c slightly (Girish Palya). + +Patch 9.1.1715 +Problem: Some functions need to be re-ordered +Solution: Re-order and move functions around favoring mch_*() functions + inside os_*.c files, Change scope of dos_expandpath() to + global instead of static (Hirohito Higashi). + +Patch 9.1.1716 +Problem: The code inside an ifdef was indented incorrectly. +Solution: Adjusted the indentation by one level (glepnir). + +Patch 9.1.1717 +Problem: filetype: AWS cli alias file is not recognized +Solution: Detect .aws/cli/alias as confini filetype (Volodymyr Chernetskyi). + +Patch 9.1.1718 +Problem: filetype: kubectl config file is not recognized +Solution: Detect .kube/kubectl as yaml filetype (Volodymyr Chernetskyi). + +Patch 9.1.1719 +Problem: socket server code can be improved +Solution: Refactor code, get rid of gettimeofday() and use ELAPSED_ + macros (Foxe Chen). + +Patch 9.1.1720 +Problem: Using gettimeofday() for parsing OSC responses +Solution: Use ELAPSED_ macros instead (Foxe Chen). + +Patch 9.1.1721 +Problem: Defining a global gettimeofday() function causes conflicts if + gettimeofday() is already defined. +Solution: Revert globalized gettimeofday() function (Hirohito Higashi). + +Patch 9.1.1722 +Problem: Compiler may optimize away clearing of crypt key +Solution: Use sodium_memzero() if available, else use memset() using a + volatile function pointer (ashamedbit). + +Patch 9.1.1723 +Problem: Missing ifdefs (after v9.1.1719) +Solution: Add ifdef ELAPSED_FUNC (Foxe Chen). + +Patch 9.1.1724 +Problem: Compiler warning about ununitialized variable in ex_docmd. +Solution: Initialize result variable (mityu). + +Patch 9.1.1725 +Problem: Wayland code can be improved +Solution: Refactor Wayland Clipboard code (Foxe Chen). + +Patch 9.1.1726 +Problem: Patch v9.1.1725 causes problems +Solution: Revert the Patch for now. + +Patch 9.1.1727 +Problem: Nextstep support still included +Solution: Deprecate Nextstep code and undef corresponding feature flag. + +Patch 9.1.1728 +Problem: termdebug: cannot evaluate visual selected expression +Solution: Add support for visual mode, mapped to K by default (bennyyip). + +Patch 9.1.1729 +Problem: CI is not run with clang 21 +Solution: Update CI to v21, fix a few warnings that are uncovered when + using clang 21 (Philip H). + +Patch 9.1.1730 +Problem: filetype: vivado journal/log files are not recognized +Solution: Detect vivado*.{jou,log} as tcl filetype (Wu Zhenyu). + +Patch 9.1.1731 +Problem: Not using const qualifier +Solution: Mark the opchars array const. + +Patch 9.1.1732 +Problem: filetype: .inc file detection can be improved +Solution: Update filetype detection for Pascal and BitBake code + (Martin Schwan). + +Patch 9.1.1733 +Problem: tests: failure when remote_server() fails +Solution: Catch E240 error when calling remote_server(), Fix syntax + error in test_wayland.vim. + +Patch 9.1.1734 +Problem: Memory leak when allocating match fails +Solution: Initialize m to NULL and centralize cleanup via goto fail to + avoid leaks on early returns (Damien Lejay). + +Patch 9.1.1735 +Problem: Cygwin Makefile still checks for Win XP version +Solution: Remove check for WINVER >= 0x600 in Make_cyg_ming.mak + (Mao-Yining). + +Patch 9.1.1736 +Problem: Cannot detect using kitty protocol +Solution: Handle and detect Kitty keys when using the trailing "~" byte. + +Patch 9.1.1737 +Problem: Patch v9.1.1714 introduce a regression for wildmenu (zeertzjq) +Solution: Restore behavior of "longest" in 'wildmode' (Girish Palya). + +Patch 9.1.1738 +Problem: cmdline-autocompletion breaks history navigation (ddad431) +Solution: Support history navigation in cmdline autocompletion (Girish + Palya). + +Patch 9.1.1739 +Problem: Matches may be listed twice with wildmode=longest,list when + "longest" doesn't change command line (after 9.1.1737). +Solution: Set did_wild_list when trying "list" after "longest" (zeertzjq). + +Patch 9.1.1740 +Problem: Memory leak with wildmode=longest,full and wildoptions=pum + (after 9.1.1737). +Solution: Avoid using showmatches() and WILD_NEXT together. Also fix + wildmode=longest,noselect:full selecting wrong item (zeertzjq). + +Patch 9.1.1741 +Problem: Regression with kitty protocol and trailing byte "u" + (chdiza, after v9.1.1736) +Solution: Check that trailing byte "~" is present. + +Patch 9.1.1742 +Problem: complete: preinsert does not work well with preinsert +Solution: Make "preinsert" completeopt value work with autocompletion + (Girish Palya). + +Patch 9.1.1743 +Problem: Haiku: no full-screen support +Solution: Add support for toggling full-screen using the keyboard (rymdbar) + +Patch 9.1.1744 +Problem: tests: Test_skip_wildtrigger_hist_navigation() may fail (zeertzjq). +Solution: Correct test to validate intended behavior (Girish Palya). + +Patch 9.1.1745 +Problem: tabpanel: not properly redraw after wildmenu (ddad431) +Solution: Mark tabpanel to be redrawn (Hirohito Higashi). + +Patch 9.1.1746 +Problem: Missing Null ptr check in cs_find_common() +Solution: Return when tmp pointer is null (ashamedbit). + +Patch 9.1.1747 +Problem: completion: redo (.) broken with preinsert and autocompletion +Solution: Make redo (.) work with preinsert and autocompletion (Girish Palya). + +Patch 9.1.1748 +Problem: macOS: Default scheduler priority too low +Solution: Explicitly set TASK_DEFAULT_APPLICATION scheduler priority + to improve responsiveness (Luna Razzaghipour). + +Patch 9.1.1749 +Problem: leaking memory in cs_find_common() (after v9.1.1746) +Solution: Also free nummatches before returning. + +Patch 9.1.1750 +Problem: completion: preinserted text highlighed using ComplMatchIns +Solution: Use highlighting group PreInsert and update the documentation + (Girish Palya). + +Patch 9.1.1751 +Problem: potential buffer-overflow in find_pattern_in_path() +Problem: Verify ptr p has enough room before adding ins_compl_len(). + +Patch 9.1.1752 +Problem: tests: No test when deleting text after autocompletion with + preinsert did complete an entry +Solution: Verify, that after deletion autocompletion does not reinsert + the deleted text. Note: the actual issue was fixed with v9.1.1750 + (Girish Palya). + +Patch 9.1.1753 +Problem: defaults: 'diffopt' option value can be improved +Solution: Update diffopt defaults to include "indent-heuristic" and + "inline:char" (Yee Cheng Chin) + +Patch 9.1.1754 +Problem: :helptags doesn't skip examples with syntax (Evgeni Chasnovski) +Solution: Check for examples with syntax (zeertzjq). + +Patch 9.1.1755 +Problem: filetype: generic log files are not recognized +Solution: Detect *.log files as log filetype, include simple log syntax + script (Mao-Yining). + +Patch 9.1.1756 +Problem: termdebug: Need a few more user commands +Solution: Add the :RunOrContinue and the :ToggleBreak user commands + (bennyyip) + +Patch 9.1.1757 +Problem: The colorresp plugin causes additional redraws + (Linwei, after v9.1.1703) +Solution: Move the code back into the C core and get rid of the vim + plugin (Foxe Chen). + +Patch 9.1.1758 +Problem: Diff mode crashes when adding text property in autocommand + (after 9.1.1557). +Solution: Only restore ML_EMPTY memline flag, ignore the others (zeertzjq). + +Patch 9.1.1759 +Problem: filetype: generic log detection is too disturbing (after v9.1.1755) +Solution: Revert setting log filetype. + +Patch 9.1.1760 +Problem: wrong proto file for insexpand.pro +Solution: Update insexpand.pro (Hirohito Higashi). + +Patch 9.1.1762 +Problem: completion: selected item not cleared on backspace when + 'autocomplete' is set +Solution: Clear the selected item (Girish Palya). + +Patch 9.1.1763 +Problem: filetype: kitty config files are not recognized +Solution: Detect */kitty/*.conf as kitty filetype, include a syntax + script (Shawon). + +Patch 9.1.1764 +Problem: filetype: CODEOWNERS file not recognized +Solution: Detect CODEOWNERS file as codeowners filetype, include a + syntax and filetype plugin (Jon Parise). + +Patch 9.1.1765 +Problem: f_isnan() and f_isinf() do not correctly initialize rettv type +Solution: Initialize them with type: VAR_NUMBER and value 0 (Damien Lejay). + +Patch 9.1.1766 +Problem: Vim9: some Vim9 functions do not handle null_string correctly + and may crash Vim (kennypete). +Solution: Check for null_string correctly in the searchpair() and + substitute() functions (Yegappan Lakshmanan). + +Patch 9.1.1767 +Problem: Patch v9.1.1765 was wrong +Solution: Roll back the change, it's correct to have call_func() initialize + the type, so that not each function has to do this on its own. + +Patch 9.1.1768 +Problem: Makefile does not uninstall global plugins (after v9.1.1757) +Solution: Uninstall global plugins before installing them, so that old files + are not carried around and loaded when no longer used. + +Patch 9.1.1769 +Problem: completion: "preinsert" insert wrong word with 'smartcase' and + 'autocomplete' +Solution: Add compare completed item with the leader (Girish Palya). + +Patch 9.1.1770 +Problem: Vim9: wrong behaviour with trailing comments in command blocks + (balki) +Solution: Correctly skip over trailing comments (Yegappan Lakshmanan). + +Patch 9.1.1771 +Problem: complete: some redraw issues with 'autocomplete' +Solution: Fix the issues (Girish Palya). + +Patch 9.1.1772 +Problem: completion: inconsistent selection of first item with + 'autocomplete' (Tomasz N) +Solution: Check for 'autocomplete' option in ins_compl_new_leader() + (Girish Palya). + +Patch 9.1.1773 +Problem: Crash in BufLeave/WinLeave/TabLeave when closing window after + BufUnload closes all other windows in the tab page. +Solution: Avoid duplicate BufLeave/WinLeave events. Trigger TabLeave + before removing the buffer (zeertzjq). + +Patch 9.1.1774 +Problem: cannot calculate sha256() of a Blob +Solution: Change sha256() to accept a Blob or String argument (thinca). + +Patch 9.1.1775 +Problem: filetype: Mamba configuration files are not recognized +Solution: Detect .mambarc and mambarc as yaml filetype (Samuel Huang). + +Patch 9.1.1776 +Problem: "adding" expansion doesn't work with cfc=keyword. +Solution: Remove incorrect assignment to compl_cont_status. Don't use + fuzzy collection in "adding" status (zeertzjq). + +Patch 9.1.1777 +Problem: Mouse click to open fold doesn't work with utf-8 "foldclose" + chars (Balki) +Solution: Use ScreenLinesUC[off] if it is set (zeertzjq). + +Patch 9.1.1778 +Problem: sha256() treats empty blob and null blob differently + (after 9.1.1774). +Solution: Handle null blob the same as empty blob (zeertzjq). + +Patch 9.1.1779 +Problem: completion: 'autocomplete' cannot be enabled per buffer (Tomasz N) +Solution: Make 'autocomplete' global or local to buffer (Girish Palya). + +Patch 9.1.1780 +Problem: mbyte contains overlapping list of utf_classes table +Solution: Update table to contain non-overlapping list (Yuta Yamamoto). + +Patch 9.1.1781 +Problem: some functions could be defined static +Solution: Change function definitions and make them static + (Yegappan Lakshmanan). + +Patch 9.1.1782 +Problem: buffer-listener callbacks may not match buffer content, since + they are buffered until the screen is updated. +Solution: Allow to handle buffer-callbacks un-buffered, meaning to + handle those changes as soon as they happen (Paul Ollis). + +Patch 9.1.1783 +Problem: ins_compl_leader() defined too far away from + ins_compl_leader_len() (after 9.1.1781). +Solution: Move ins_compl_leader() just before ins_compl_leader_len(). Add + missing "static" to eval0_simple_funccal() definition (zeertzjq). + +Patch 9.1.1784 +Problem: Wayland code can be improved +Solution: Refactor Wayland Clipboard code (Foxe Chen). + +Patch 9.1.1785 +Problem: typo in comment in change.c (after v9.1.1782) +Solution: Fix typo in comment in change.c (Christ van Willegen). + +Patch 9.1.1786 +Problem: Compile error with clipboard (lacyggoill, after v9.1.1784) +Solution: Add $WAYLAND_SRC as dependency for clipboard.c in Makefile + (Foxe Chen). + +Patch 9.1.1787 +Problem: filetype: not all Sway config files are recognized +Solution: Detect files within /sway/config.d/* as swayconfig filetype + (Felix Pehla). + +Patch 9.1.1788 +Problem: Vim9: can declare a void variable (Ernie Rael) +Solution: Disallow such variable declaration (Yegappan Lakshmanan). + +Patch 9.1.1789 +Problem: MS-Windows: using wrong check for bold font (after v9.1.1347) +Solution: Test if lf.lfWeight == FW_BOLD instead of a simple truthiness + test (Shay). + +Patch 9.1.1790 +Problem: completion: Enter does not insert match with "noinsert" + (Sergey Vlasov) +Solution: Check for compl_shown_match instead of compl_selected_item + (zeertzjq). + +Patch 9.1.1791 +Problem: type(void) throws an internal error (atitcreate) +Solution: Return proper error message (Yegappan Lakshmanan). + +Patch 9.1.1792 +Problem: List of changes not protected from changes when processing + listeners (after v9.1.1782) +Solution: Fully lock changes list for listener callbacks (Paul Ollis). + +Patch 9.1.1793 +Problem: Link error when build without channel feature + (lindhobe, after v9.1.1774) +Solution: Remove ifdef FEAT_JOB_CHANNEL around check_for_string_or_blob_arg(). + +Patch 9.1.1794 +Problem: configure: terminfo test does not work with musl + (T3rm1, after v9.9.1.0837) +Solution: Include term.h in configure script, add forward declarations, + in case headers are not found. + +Patch 9.1.1795 +Problem: Vim9: popup_show() may return void +Solution: Modify popup_show() to return -1 for an invalid popup window + id (Yegappan Lakshmanan). + +Patch 9.1.1796 +Problem: Wrong cursor position with wrapped "after" virtual text and + 'showbreak' (Ben Jackson) +Solution: Count size of 'showbreak' in wrapped "after" virtual text in + line size (zeertzjq). + +Patch 9.1.1797 +Problem: completion: autocompletion can be improved +Solution: Add support for "longest" and "preinsert" in 'autocomplete'; + add preinserted() (Girish Palya) + +Patch 9.1.1798 +Problem: Wrong display with 'smoothscroll' and long wrapped virtual + text at EOL. +Solution: Handle w_skipcol inside long wrapped virtual text at EOL (zeertzjq). + +Patch 9.1.1799 +Problem: completion: crash with autcompletion (Maxim Kim) +Solution: Rework remove_old_matches (Girish Palya). + +Patch 9.1.1800 +Problem: completion: strange behaviour with 'ac' + completeopt=longest,preinsert (zeertzjq) +Solution: Let preinsert take precedence (Girish Palya). + +Patch 9.1.1801 +Problem: Vim9: misleading error when extending dictionary (lacygoill). +Solution: Give a proper error message when a Dict type is used with a + compound operator (Yegappan Lakshmanan). + +Patch 9.1.1802 +Problem: 'nowrap' in a modeline may hide malicious code. +Solution: Forcibly use '>' as 'listchars' "extends" if 'nowrap' was set + from a modeline (zeertzjq). + +Patch 9.1.1803 +Problem: Amiga: build errors +Solution: Update preprocessor conditionals (Ola Söder). + +Patch 9.1.1804 +Problem: Wrong indentation of nested ifdefs in findfile.c +Solution: Update indentation (Ola Söder). + +Patch 9.1.1805 +Problem: Amiga: Missing build date in version string +Solution: Set build date in CFLAGS in Makefile (Ola Söder). + +Patch 9.1.1806 +Problem: Missing PROTO defines +Solution: Update ifdefs, update Makefile dependencies, updated proto files + (Hirohito Higashi). + +Patch 9.1.1807 +Problem: :set doesn't clear local insecure flag like :setlocal does. +Solution: Also clear the local insecure flag when using :set (zeertzjq). + +Patch 9.1.1808 +Problem: Option insecure flags not copied when splitting window. +Solution: Move window-local insecure flags to winopt_T and copy them + properly (zeertzjq). + +Patch 9.1.1809 +Problem: winclip.pro included in PRO_AUTO +Solution: Remove it from PRO_AUTO since it is already defined in + PRO_MANUAL (Hirohito Higashi). + +Patch 9.1.1810 +Problem: completion: "longest" doesn't work for manual completion when + 'autocomplete' is on (after 9.1.1800). +Solution: Only reset compl_get_longest when enabling autocompletion (zeertzjq) + +Patch 9.1.1811 +Problem: Amiga: Initialization of random buffer can be improved +Solution: Use RANDOM device when available (Ola Söder) + +Patch 9.1.1812 +Problem: completion: flicker with slow LSPs +Solution: Disable flushing the changed text (Girish Palya). + +Patch 9.1.1813 +Problem: MS-Windows: title bar is always white +Solution: Set_caption() and set the title bars color to the Normal + highlighting background (Mao-Yining) + +Patch 9.1.1814 +Problem: Patch v9.1.1812 causes crashes +Solution: Revert v9.1.1812 + +Patch 9.1.1815 +Problem: file mode changes in os_amiga.pro to 644 (RestorerZ after v9.1.1811) +Solution: Fix the permissions of proto/os_amiga.pro to 644 (Hirohito Higashi). + +Patch 9.1.1816 +Problem: existing icon files are dated +Solution: Update and remake those icons using 256 colors (RestorerZ). + +Patch 9.1.1817 +Problem: popup: there are some position logic bugs +Solution: Refactor position logic and fix a few bugs (Girish Palya). + +Patch 9.1.1818 +Problem: possible crash when calculating topline in diff.c (youngmith) +Solution: Check for pointer being Null before accessing it. + +Patch 9.1.1819 +Problem: Cannot configure the inner foldlevel indicator for the + foldcolumn +Solution: Add "foldinner" suboption value to the 'fillchar' option + (Maria José Solano). + +Patch 9.1.1820 +Problem: completion: some issues with 'acl' when "preinsert" and + "longest" is in 'completeopt' (musonius, after v9.1.1638) +Solution: Fix various issues (see details below) (Girish Palya). + +Patch 9.1.1821 +Problem: filetype: Not all PKL files are recognized +Solution: Detect *.pcf as pkl filetype, detect using the pkl-lsp:// + protocol as pkl filetype, include PKL syntax script (Jan Claußen). + +Patch 9.1.1822 +Problem: Makefile still supports Perl < 5.005 +Solution: Remove support for Perl < 5.005, it's long been obsolete + (Hirohito Higashi) + +Patch 9.1.1823 +Problem: diff: w_topline may be invalidated +Solution: Update lnum in diff_set_topline() (Yee Cheng Chin). + +Patch 9.1.1824 +Problem: tests: no test for displaying 'foldcolumn' with Unicode + "foldinner" in 'fillchars'. +Solution: Add a few more test cases. Also fix misplaced "foldinner" + entry in version9.txt (zeertzjq). + +Patch 9.1.1825 +Problem: completion: flicker when LSP server is slow +Solution: reinsert leader text before invoking user function (Girish Palya). + +Patch 9.1.1826 +Problem: Patch v9.1.1230 causes confusion about Ctrl-C behaviour + (kuuote, after v9.1.1230) +Solution: Revert the behaviour, keep the old behaviour. + +Patch 9.1.1827 +Problem: completion: v9.1.1797 broke Ctrl-Y behaviour + (ddad431, after v9.1.1797) +Solution: Restore correct behaviour (Girish Palya). + +Patch 9.1.1828 +Problem: local variables shadowed by import names +Solution: Check if a local variable exists before handling imports (thinca). + +Patch 9.1.1829 +Problem: filetype: KerML and SysML files are not recognized +Solution: Detect *.kerml as kerml filetype, detect *.sysml as sysml + filetype, include a kerml and sysml filetype plugin + (Daumantas Kavolis). + +Patch 9.1.1830 +Problem: MS-Windows: Dark mode titlebar is not configurable (after v9.1.1813) +Solution: Revert Patch v9.1.1813 + +Patch 9.1.1831 +Problem: vertical separator of 'winfixwidth' windows may remain if they + become right-most windows from closing windows to the right. +Solution: Don't implicitly rely on frame_new_width to fix vseps, as the + call may be skipped for 'winfixwidth' windows to preserve + their width; do it explicitly in winframe_remove (Sean Dewar). + +Patch 9.1.1832 +Problem: if_perl: contains references to legacy if_perlsfio.{c,pro} and + USE_SFIO +Solution: Remove those references (Hirohito Higashi). + +Patch 9.1.1833 +Problem: completion: fuzzy candidates are not sorted (ddad431) +Solution: Always sort fuzzy candidates (Girish Palya). + +Patch 9.1.1834 +Problem: MS-Windows: not possible to highlight the title bar +Solution: Make the title/caption bar configurable by introducing the + 'go-C' option value which allows to highlight it using the + TitleBar and TitleBarNC highlighting groups (Mao-Yining). + +Patch 9.1.1835 +Problem: not possible to style popup borders globally +Solution: Add the 'pumborder' option (Girish Palya). + +Patch 9.1.1836 +Problem: 'cursorlineopt' "screenline" isn't redrawn when moving cursor + and then using line("w0") and :retab that does nothing. +Solution: Call redraw_for_cursorcolumn() when setting a valid w_virtcol + (zeertzjq). + +Patch 9.1.1837 +Problem: tests: Test_plugin_evaluate_in_popup() fails on 32bit arch + (James McCoy) +Solution: Instead of evaluating the ptr, let's evaluate just the pointer + content, skipping printing the pointer address. + +Patch 9.1.1838 +Problem: proto files out of sync +Solution: Update proto files (Hirohito Higashi). + +Patch 9.1.1839 +Problem: Window may have wrong height if resized from another tabpage. +Solution: Improve check for whether a tabline has been added (zeertzjq). + +Patch 9.1.1840 +Problem: Generating prototype files does not work on all platforms +Solution: Rework prototypes generation using python instead of cproto, + enable it in CI to test it for each PR (Hirohito Higashi). + +Patch 9.1.1841 +Problem: Patch 9.1.1840 adds python build dependency (chdizza) +Solution: Update dependencies (Hirohito Higashi). + +Patch 9.1.1842 +Problem: MS-Windows: build failure when mzscheme is included + (dertuxmalwieder, after v9.1.1838) +Solution: skip specific section when PROTO is defined (Hirohito Higashi). + +Patch 9.1.1843 +Problem: tests: Test_search_stat_option() may fail on slow systems +Solution: test_search_stat: Extend searchcount() timeout if the test is + being re-run due to flakiness (James McCoy). + +Patch 9.1.1844 +Problem: Makefile: dependencies not updated (Hirohito Higashi) +Solution: Update Dependencies after v9.1.1841. + +Patch 9.1.1845 +Problem: Makefile: Missing dependency on osdef.h +Solution: Add explicit dependency on auto/osdef.h. + +Patch 9.1.1846 +Problem: Build failure when building without wayland + (bennyyip, after v9.1.1844) +Solution: Update Makefile dependencies again, remove wayland dependencies for + clipboard.c. + +Patch 9.1.1847 +Problem: No cmdline completion for :echoconsole, :echowindow and second + expression after :echoerr. +Solution: Set EXPAND_EXPRESSION for :echoconsole and :echowindow, and + check for multiple expressions after :echoerr (zeertzjq). + +Patch 9.1.1848 +Problem: A few typos in the code +Solution: Fix typos (zeertzjq). + +Patch 9.1.1849 +Problem: CTRL-F and CTRL-B don't work in more prompt +Solution: Make CTRL-F and CTRL-B scroll by a screen down/up + (Bjoern Foersterling) + +Patch 9.1.1850 +Problem: completion: not triggered after i_Ctrl-W/i_Ctrl-U +Solution: Trigger autocomplete when entering Insert mode (Girish Palya). + +Patch 9.1.1851 +Problem: memory leak in heredoc_get() +Solution: Free "str" if list_append_string() fails (Lidong Yan). + +Patch 9.1.1852 +Problem: vim9class: fix memory leak in parse_member() +Solution: Free evalarg before returning (Lidong Yan). + +Patch 9.1.1853 +Problem: Ctrl-F and Ctrl-B at more prompt not working with kitty + keyboard protocol or modifyOtherKeys (after v9.1.1849). +Solution: Call merge_modifyOtherKeys() in get_keystroke() (zeertzjq). + +Patch 9.1.1854 +Problem: unnecessary code in optionstr.c +Solution: Remove it (Hirohito Higashi). + +Patch 9.1.1855 +Problem: Makefile: using non-portable syntax (Jonathan Schleifer) +Solution: Remove duplicate parenthesis. + +Patch 9.1.1856 +Problem: cannot style popup window (border, shadow, etc) +Solution: Extend the 'completepopup' option with additional properties + (Girish Palya). + +Patch 9.1.1857 +Problem: Missing clipboard provider support (lilydjwg) +Solution: Add clipboard provider feature (Foxe Chen). + +Patch 9.1.1858 +Problem: v:register not reset after Visual mode command (laktak). +Solution: Reset v:register if Visual mode was active before + do_pending_operator() (zeertzjq). + +Patch 9.1.1859 +Problem: completion: whitespace not cleared with 'ai' +Solution: Remove spaces added by 'autoindent' when autocomplete is set + and restore did_ai in ins_compl_start() (Maxim Kim) + +Patch 9.1.1860 +Problem: clipboard register "+" enabled with cplipboard provider feature + (BenYip, after v9.1.1857) +Solution: Don't make clipboard provider enable plus register on UNIX + (Foxe Chen). + +Patch 9.1.1861 +Problem: Amiga: Locating runtime directory and rc files can be + simplified. +Solution: Use assigns since it's simpler and more in line with + how other Amiga applications work (Ola Söder). + +Patch 9.1.1862 +Problem: Wrong ifdefs for clipboard provider (after v9.1.1857) +Solution: Update ifdefs (Foxe Chen). + +Patch 9.1.1863 +Problem: Cannot test for working "+" register +Solution: Add a few more feature tests (Foxe Chen). + +Patch 9.1.1864 +Problem: tests: Clipboard provider feature test failure +Solution: Check in the test that the + clipboard register is available, + fix compile warning (Foxe Chen) + +Patch 9.1.1865 +Problem: tests: test_codestyle does not notice lines containing only a tab +Solution: Fix the whitespace issue in eval.txt, update test_codestyle to + notice such issues (Hirohito Higashi). + +Patch 9.1.1866 +Problem: HAVE_STRCSPN define is unused +Solution: Remove all HAVE_STRCSPN defines (Ola Söder). + +Patch 9.1.1867 +Problem: HAVE_STDARG_H still defined (after v7.4.1216) +Solution: Remove all remaining occurrences of HAVE_STDARG_H (Ola Söder). + +Patch 9.1.1868 +Problem: v:register is wrong in v_: command (after 9.1.1858). +Solution: Don't reset v:register for OP_COLON (zeertzjq). + +Patch 9.1.1869 +Problem: tests: test failures with Python 3.14 and test_python3 +Solution: Adjust the expected error message (Yee Cheng Chin). + +Patch 9.1.1870 +Problem: :Tutor may not work as expected +Solution: set buftype=nowrite instead of nofile (Phạm Bình An). + +Patch 9.1.1871 +Problem: Wrong 'showcmd' in the command-line window. +Solution: Clear 'showcmd' when entering cmdwin (zeertzjq). + +Patch 9.1.1872 +Problem: Cmdline history not updated when mapping both and . +Solution: Consider the command typed when in Cmdline mode and there is + no pending input (zeertzjq). + +Patch 9.1.1873 +Problem: Clipboard provider feature broke clipboard support (Yee Cheng Chin) +Solution: Revert clipboard changes (Foxe Chen). + +Patch 9.1.1874 +Problem: PMenuShadow overrides highlighting attributes (Maxim Kim) +Solution: Use hl_combine_attr() to combine popup attribute with shadow + attribute (Girish Palya). + +Patch 9.1.1875 +Problem: username parsing bug in netrw plugin when using remote adding + feature +Solution: Allow any characters except for "@" (Václav Kobera), add a + test for the netrw plugin. + +Patch 9.1.1876 +Problem: pre-inserted text not exposed in complete_info() +Solution: Add the pre-inserted text to the complete_info() Vim script + function (Girish Palya). + +Patch 9.1.1877 +Problem: cindent: wrong indentation after an array declaration +Solution: check if the filetype if javascript before matching the syntax + (Anttoni Erkkilä). + +Patch 9.1.1878 +Problem: filetype: Soy files are not recognized +Solution: Detect *.soy files as soy filetype, include a soy filetype plugin + (Riley Bruins). + +Patch 9.1.1879 +Problem: Crash when using a lambda funcref with :defer +Solution: De-reference the partial correctly after invoking the deferred + functions (Yegappan Lakshmanan). + +Patch 9.1.1880 +Problem: Allocation error with complete_info() (after v9.1.1876) +Solution: Make sure length is positive (kuuote). + +Patch 9.1.1881 +Problem: tests: test_popupwin fails after c8eeda9b due to syntax + highlighting change +Solution: Regenerate terminal dumps Test_popup_setbuf*dump (Yee Cheng Chin). + +Patch 9.1.1882 +Problem: Vim9: Not able to use a lambda with :defer (Maxim Kim) +Solution: Add support for this (Yegappan Lakshmanan). + +Patch 9.1.1883 +Problem: Wrong display with 'smoothscroll' when FEAT_DIFF is disabled. +Solution: Use plines_correct_topline() (zeertzjq). + +Patch 9.1.1884 +Problem: :defer an empty lambda causes a crash + (Maxim Kim, after v9.1.1882) +Solution: Check for missing arguments (Yegappan Lakshmanan). + +Patch 9.1.1885 +Problem: Wrong restored cursor position when re-entering a buffer + previously viewed in a window after making changes to the same + buffer in another window. +Solution: Adjust per-window "last cursor" positions on buffer changes + (zeertzjq). + +Patch 9.1.1886 +Problem: filetype: Android aconfig files are not recognized +Solution: Detect *.aconfig files as pbtxt filetype (Bruno Belanyi). + +Patch 9.1.1887 +Problem: string handling in strings.c can be improved +Solution: Refactor strings.c and remove calls to STRLEN() (John Marriott). + +Patch 9.1.1888 +Problem: Wrong display with cpo+=$, matchparen and wrapped line. +Solution: Use old cursor line height when scrolling with cpo+=$. Also + fix wrong redraw in non-current window (zeertzjq). + +Patch 9.1.1889 +Problem: filetype: not all AppleScript files are recognized +Solution: Detect *.applescript files as applescript filetype (Samuel Huang). + +Patch 9.1.1890 +Problem: %P in 'statusline' doesn't behave as documented + (after 9.1.1479). +Solution: Make the percentage 3-chars wide when not translated (zeertzjq). + +Patch 9.1.1891 +Problem: In visual mode, g does not move to the last non-blank + character when the end of a line is on the same line as the + cursor (after v9.0.1753). +Solution: Move the cursor back by one position if it lands after the + line (varsidry). + +Patch 9.1.1892 +Problem: A plugin does not know when startup scripts were already + triggered. This is useful to determine if a function is + called inside vimrc or after (like when sourcing 'plugin/' files). +Solution: Add the v:vim_did_init variable (Evgeni Chasnovski). + +Patch 9.1.1893 +Problem: ICCF charity will dissolve +Solution: Update references to Kuwasha + +Patch 9.1.1894 +Problem: global_runtime_dir appends /after directory when using XDG + configuration directory (Marius Gedminas). +Solution: Do not append /after to RUNTIME_GLOBAL_AFTER. + +Patch 9.1.1895 +Problem: OSC terminal response hard to detect +Solution: Add the and pseudo keys (Foxe Chen). + +Patch 9.1.1896 +Problem: tests: Patch v9.1.1895 breaks CI, by failing screen dump tests + test_listlbr_utf8, test_diffmode and test_cmdline +Solution: Revert it + +Patch 9.1.1897 +Problem: Mac: Build failure on Mac OS X 10.6 due to the use of generics + for the sound feature. +Solution: Use the simple, non-generic Objective-C version (Luke Lollard). + +Patch 9.1.1898 +Problem: tabpanel: inconsistent use of cmdline and message area with + tabpanel +Solution: Reduce the cmdline and message area by the horizontal size of + the tabpanel (Hirohito Higashi). + +Patch 9.1.1899 +Problem: tabpanel: getcmdscreenpos() wrong when tabpanel is shown +Solution: Adjust f_getcmdscreenpos() and add cmdline_col_off + (Hirohito Higashi). + +Patch 9.1.1900 +Problem: tabpanel: wrong condition after v9.1.1898 +Solution: Update condition (Hirohito Higashi). + +Patch 9.1.1901 +Problem: tests: test_vim9_generics fails when built without the job or + channel feature (lazypingu) +Solution: Skip test if job/channel feature is not available. + +Patch 9.1.1902 +Problem: GTK fails to compile with !FEAT_PROP_POPUP +Solution: Correct syntax under #ifdef (Drew Vogel). + +Patch 9.1.1903 +Problem: GTK naming still reflects GTK1 support +Solution: Rename to avoid confusion (Drew Vogel). + +Patch 9.1.1904 +Problem: Code still supports GTK2 versions older than 2.4. +Solution: Drop support for GTK2 < 2.4 (Drew Vogel). + +Patch 9.1.1905 +Problem: tabpanel: truncates terminal output (hokorobi) +Solution: Use topframe->fr_width, not Columns (which includes the + tabpanel width) (Hirohito Higashi) + +Patch 9.1.1906 +Problem: filetype: not all Ruby files are recognized +Solution: Detect *.rbi and Brewfile as ruby filetype (botantony). + +Patch 9.1.1907 +Problem: xterm: no support for mouse buttons 8 and 9 +Solution: Add support for terminals with xterm-like mouse functionality + (notuxic). + +Patch 9.1.1908 +Problem: tests: test_crash.vim times out in CI ASAN builds +Solution: Increase timeout for ASAN or Valgrind runs. + +Patch 9.1.1909 +Problem: filetype: .mom files recognized as nroff files +Solution: Detect *.mom files as groff filetype instead (Callum Andrew). + +Patch 9.1.1910 +Problem: tests: test failures in Test_term_gettitle() in CI +Solution: CI: Allow for title buffering in Test_term_gettitle() + (Aliaksei Budavei). + +Patch 9.1.1911 +Problem: build failure on Solaris Sparc with gcc 5 (idgn23, after v9.1.1736) +Solution: Correctly initialize the key_name variable. + +Patch 9.1.1912 +Problem: tests: test_plugin_comment fails, because it depends on nroff + filetype for .mom file (after v9.1.1909) +Solution: Explicitly set filetype to nroff. + +Patch 9.1.1913 +Problem: Error message with :unlet! and non-existing dictionary item + (Coacher) +Solution: Set GLV_QUIET when using unlet with bang attribute. + +Patch 9.1.1914 +Problem: runtime(netrw): LocalBrowseCheck() wipes unnamed buffers when + g:netrw_fastbrowse=0 (Carlos Falgueras García) +Solution: Check that bufname() is not empty. + +Patch 9.1.1915 +Problem: :breaklist accepts unprocessed arguments. +Solution: Remove EX_EXTRA flag from the Ex command definition (Doug Kearns). + +Patch 9.1.1916 +Problem: WinEnter autocommand may confuse Vim when closing tabpage (hokorobi) +Solution: Verify that curwin did not change in close_others(). + +Patch 9.1.1917 +Problem: Vim9: incorrect type inference with mkdir() (dezza) +Solution: Before compiling a RHS expression in an assignment, save the + new local variable contents (Yegappan Lakshmanan). + +Patch 9.1.1918 +Problem: completion: crash with fuzzy completion (Christian Brabandt) +Solution: When completion candidates are gathered from a different + window, and when completing ``, linked list should be + sorted only after all items are collected (Girish Palya). + +Patch 9.1.1919 +Problem: tabpanel: cannot handle mouse clicks in command line + (char101, after v9.1.1898) +Solution: Update the condition that checks if the mouse pointer is on + the command line (Hirohito Higashi). + +Patch 9.1.1920 +Problem: tests: not enough testing for wildtrigger() pum redrawing. +Solution: Also test redrawing when leaving cmdline mode (zeertzjq). + +Patch 9.1.1921 +Problem: xdiff: included xdiff code is outdated because it is based on + git 2.40.0 +Solution: Sync with xdiff from git 2.52 (Yee Cheng Chin). + +Patch 9.1.1922 +Problem: Wrong virtcol('$') with virtual text at EOL (rickhowe). +Solution: Also add 1 to end virtcol when there is virtual text (zeertzjq). + +Patch 9.1.1923 +Problem: When assigning to @. in a :let command an incorrect "E15" + error is emitted. +Solution: Emit the correct "E354" error. (Doug Kearns). + +Patch 9.1.1924 +Problem: 'commentstring' requires the +folding feature but is used in + contexts other than folding. +Solution: Remove the +folding feature guards from 'commentstring' and + make it available in all builds (Doug Kearns). + +Patch 9.1.1925 +Problem: make depend does not add osdef.h for the dependencies (Drew Vogel) +Solution: Move ifdef PROTO (Hirohito Higashi). + +Patch 9.1.1926 +Problem: xdiff: Coverity warning with MAX_CNT/UINT_MAX usage + (after v9.1.1921) +Solution: Replace XDL_MIN macro to a manual check (Yee Cheng Chin). + +Patch 9.1.1927 +Problem: Wayland: clipboard code too complex +Solution: Simplify clipboard related code around W23/W24 (Foxe Chen). + +Patch 9.1.1928 +Problem: xxd: exit_with_usage() can be simplified +Solution: Clean up exit_with_usage() formatting slightly (Stefan Haubenthal). + +Patch 9.1.1929 +Problem: completion: spell completion wrong with fuzzy +Solution: Disable fuzzy sort for spell completion (Maxim Kim). + +Patch 9.1.1930 +Problem: completion: 'completefuzzycollect' option is too obscure +Solution: Deprecate the option, but don't error out for existing scripts, + behave like 'completefuzzycollect' is set when fuzzy + completion is enabled (Girish Palya). + +Patch 9.1.1931 +Problem: completion: wrong item selected with fuzzy and noinsert + (Evgeni Chasnovski) +Solution: Reset selected item after fuzzy sort (Girish Palya). + +Patch 9.1.1932 +Problem: OSC terminal response hard to detect +Solution: Add the and pseudo keys (Foxe Chen). + +Patch 9.1.1933 +Problem: completion: complete_match() Vim script function and + 'isexpand' option are not that useful and confusing + (after v9.1.1341) +Solution: Remove function and option and clean up code and documentation + (Girish Palya). + +Patch 9.1.1934 +Problem: filetype: not all starlark files are recognized +Solution: Detect *.sky files as starlark filetype (Bruno Belanyi). + +Patch 9.1.1935 +Problem: filetype: not all Erlang files are recognized +Solution: Detect *.app.src and rebar.config files as erlang filetype + (John Parise). + +Patch 9.1.1936 +Problem: filetype: Erlang lexical files are not recognized +Solution: Detect *.xrl files as leex filetype, include syntax and + filetype plugins (Jon Parise). + +Patch 9.1.1937 +Problem: tests: Test_matchfuzzy_initialized() fails +Solution: Send a dummy key (Corey Hickey) + +Patch 9.1.1938 +Problem: tests: excessive wait in Test_matchfuzzy_initialized +Solution: Use term_wait() instead of the TermWait() wrapper (Corey Hickey). + +Patch 9.1.1939 +Problem: tests: test_matchfuzzy() leaves swapfiles behind +Solution: Close loaded buffers using "%bw". + +Patch 9.1.1940 +Problem: clipboard registers "+" and "*" synced without "autoselect" +Solution: Remove code that explicitly syncs those clipboard registers + (Corey Hickey). + +Patch 9.1.1941 +Problem: tests: Test_execute_register() leaves swapfile behind +Solution: Use :bw instead of :close to close the buffer completely. + +Patch 9.1.1942 +Problem: Assignment to read-only registers @: and @% is allowed during + compilation. +Solution: Abort compilation and emit an E354 error when assigning to + these registers (Doug Kearns). + +Patch 9.1.1943 +Problem: Memory leak with :breakadd expr +Solution: Free debug_oldval and debug_newval before assigning to them. + Verify the existing (though confusing) :breakadd expr behavior + (zeertzjq). + +Patch 9.1.1944 +Problem: gewininfo() does not return if statusline is visible +Solution: Add status_height to the dict items returned by + getwininfo() (Hirohito Higashi). + +Patch 9.1.1945 +Problem: tests: Test_getbufwintabinfo() leaves swapfiles behind +Solution: Close all open buffers using %bw! + +Patch 9.1.1946 +Problem: Cannot open the help in the current window +Solution: Promote the example from tips.txt to a proper package and + include the helpcurwin package, add tests for it (Peter Kenny). + +Patch 9.1.1947 +Problem: [security]: Windows: Vim may execute commands from current + directory (Simon Zuckerbraun) +Solution: Set the $NoDefaultCurrentDirectoryInExePath before running + external commands. + +Patch 9.1.1948 +Problem: Windows: Vim always adds the current directory to search path. + This should only happen when using cmd.exe as 'shell'. For + example, powershell won't run binaries from the current + directory. +Solution: Only add current directory to system path, when using cmd.exe + as 'shell'. + +Patch 9.1.1949 +Problem: :stag does not use 'swichtbuf' option, though the + documentation states differently (Christian Brabandt) +Solution: Respect 'switchbuf' option (Yegappan Lakshmanan). + +Patch 9.1.1950 +Problem: tests: Test_tagjump.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.1951 +Problem: tests: Test_windows_external_cmd_in_cwd() is only run in huge + builds (after 9.1.1947). +Solution: Move it to test_system.vim so that it is run in normal builds. + +Patch 9.1.1952 +Problem: tests: need better tests for tf files +Solution: Add better filetype test for terraform/tf filetype + +Patch 9.1.1953 +Problem: gui_mch_set_titlebar_colors() doesn't need to be called when + 'go+=C' is not set. +Solution: Switch the default value to false. + +Patch 9.1.1954 +Problem: Setting a byte in a blob, accepts values outside 0-255 +Solution: When setting a byte in a blob, check for valid values + (Yegappan Lakshmanan). + +Patch 9.1.1955 +Problem: sort() does not handle large numbers correctly + (Igbanam Ogbuluijah) +Solution: Don't truncate the return value of tv_get_number_chk() + (Yegappan Lakshmanan). + +Patch 9.1.1956 +Problem: tests: test_sort.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.1957 +Problem: filetype: bpftrace files are not recognized +Solution: Detect *.bt files as btftrace filetype, + include a btftrace filetype plugin (Stanislaw Gruszka). + +Patch 9.1.1958 +Problem: Wrong display when scrolling with 'scrolloff' and calling + sign_unplace() and setline() in CursorMoved (after 8.2.3204). +Solution: Still scroll for changed lines below the top area when the top + is scrolled down (zeertzjq). + +Patch 9.1.1959 +Problem: Outputting long strings using :echowindow wraps one character + per line and display in reverse order (Hirohito Higashi) +Solution: Use full width for :echowindow, reset msg_col after wrapping, + and increment lnum correctly when creating new lines (glepnir). + +Patch 9.1.1960 +Problem: When the popup menu is displayed above the cursor and the + selected item has no room below for the info popup, + popup_adjust_position() places the popup in the available + space above. The calculation added some extra lines, causing + the popup to be misaligned. +Solution: For info popups, undo that extra spacing so the popup stays + aligned with the selected item (glepnir). + +Patch 9.1.1961 +Problem: :0tab behaves like :tab for :stag when 'switchbuf' contains + "newtab" (after 9.1.1949). +Solution: Don't override cmod_tab if it's already non-zero (zeertzjq). + +Patch 9.1.1962 +Problem: filetype: Erlang application resource files are not recognized +Solution: Add content-based filetype detection for application resource + files matching extension '*.app' (Doug Kearns). + +Patch 9.1.1963 +Problem: diff: missing diff size limit for xdiff +Solution: Impose file size limit for internal diff (xdiff) + (Yee Cheng Chin). + +Patch 9.1.1964 +Problem: Wrong display when using setline() at hit-enter prompt + (after 8.2.3204). +Solution: Only skip scrolling for changed lines in top area if it's + scrolled down due to w_topline change. Also add more testing + for what 8.2.3204 fixed (zeertzjq). + +Patch 9.1.1965 +Problem: When exiting at the end of the more prompt (at the hit enter + prompt) by hitting q the recording mode will be started. + (Jakub Łuczyński) +Solution: Don't add the q key to the typeahead buffer + in the function wait_return (Bjoern Foersterling) + +Patch 9.1.1966 +Problem: MS-Windows: dark mode in gui is not supported +Solution: Inplement the 'd' flag in 'guioptions' (Mao-Yining). + +Patch 9.1.1967 +Problem: if_python: 64bit numbers truncated +Solution: cast python result to long long (lsq). + +Patch 9.1.1968 +Problem: tests: test_python3.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.1969 +Problem: Wrong cursor position after formatting with long 'formatprg'. +Solution: Don't show hit-enter prompt when there are stuffed characters. + +Patch 9.1.1970 +Problem: visual end column returns wrong value after block edit +Solution: update visual end column after block insert (phanium). + +Patch 9.1.1971 +Problem: Crash when buffer gets deleted inside charconvert during save +Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to + unload a buffer while it’s still being saved (glepnir). + +Patch 9.1.1971 +Problem: crash with invalid positional argument 0 in printf() +Solution: Reject positional arguments <= 0. + +Patch 9.1.1972 +Problem: No way to access the clipboard without X11/Wayland. +Solution: Add the clipboard provider feature (Foxe Chen). + +Patch 9.1.1973 +Problem: some minor problems with clipboard provider code + (after v9.1.1972) +Solution: Fix minor issues (Foxe Chen) + +Patch 9.1.1974 +Problem: tests: missing cleanup in Test_bwipe_during_save(). +Solution: Reset &charconvert. + +Patch 9.1.1975 +Problem: blob2str() may call strcpy with a NULL pointer +Solution: Check for NULL before calling STRNCPY(). + +Patch 9.1.1976 +Problem: When using listeners, there is no way to run callbacks at + specific points in the redraw cycle. +Solution: Add redraw_listener_add() and redraw_listener_remove() and + allow specifying callbacks for redraw start and end (Foxe Chen). + +Patch 9.1.1977 +Problem: MS-Windows: missing dependency on optiondefs.h in Mingw and + Cygwin Makefile (Mao-Yining) +Solution: Update $INCL variable. + +Patch 9.1.1978 +Problem: tests: Test_smoothscroll_number() may fail because of 'showcmd' +Solution: Send redraw command (Hirohito Higashi). + +Patch 9.1.1979 +Problem: :helpclose incorrectly accepts a range and a count. +Solution: Remove EX_COUNT and EX_RANGE from the command definition + (Doug Kearns). + +Patch 9.1.1980 +Problem: filetype: N-Quads files are not recognized +Solution: Detect *.nq files as nq filetype. + +Patch 9.1.1981 +Problem: tests: test suite may stop on error in gen_opt_test.vim +Solution: Use a different output file for log files (Muraoka Taro). + +Patch 9.1.1982 +Problem: Use after free with redraw_listener_add() (after: v9.1.1976) +Solution: Copy Callbacks into listener struct (Foxe Chen). + +Patch 9.1.1983 +Problem: Vim9: class_name definition can be improved +Solution: Use string_T to store class_name, avoid using STRLEN() calls, + simplify code, remove unused definition of struct + oc_newmember_S (John Marriott). + +Patch 9.1.1984 +Problem: terminal OSC52 support to access the clipboard can be improved +Solution: Include and package the optional osc52 package, note: this + requires a Vim with clipboard provider feature (Foxe Chen). + +Patch 9.1.1985 +Problem: tests: test_sound.vim fails when run locally on Windows +Solution: Skip Test_play_silent in Windows non-GUI environments. + +Patch 9.1.1986 +Problem: clipboard provider does not work when redirecting messages + (BenYip, after v9.1.1972) +Solution: Adjust ifdefs in ex_redir(). + +Patch 9.1.1987 +Problem: assert_equal() prepends unnecessary ':' when typed (after 9.0.1758). +Solution: Don't change a NULL stacktrace to an empty string (zeertzjq). + +Patch 9.1.1988 +Problem: osc52 package can be further improved (after v9.1.1984). +Solution: Improve plugin, update test and check for clipboard_provider + feature (Foxe Chen). + +Patch 9.1.1989 +Problem: Vim intro screen shows register message (after v9.1.1893) +Solution: Remove the register message, registering is no longer useful + and possible. + +Patch 9.1.1990 +Problem: tests: Test_term_gettty() fails when using conpty on Windows, + CI uses winpty, so this test passes. +Solution: Skip the test Test_term_gettty(). Since conpty communicates + via anonymous pipes, there is no name that can be obtained + with term_gettty() (Muraoka Taro) + +Patch 9.1.1991 +Problem: :setlocal changes effective global 'omnifunc' (Maxim Kim) +Solution: Don't change global callback when using :setlocal (zeertzjq). + +Patch 9.1.1992 +Problem: Vim9: heap buffer overflow with COMPAREANY instruction +Solution: Verify the type and error out in case of different types (Foxe Chen) + +Patch 9.1.1993 +Problem: MS-Windows: compile error because of implicit size conversions + (after v9.1.1983) +Solution: Change type casts + +Patch 9.1.1994 +Problem: More deterministic synchronisation can be established between + processes running test cases and collecting visual effects to + a screendump file for future verification by anticipating + the availability of known parts of such a file and asserting + the location of the cursor. +Solution: Provide a convenience test function that waits a specified + time for cursor positioning (Aliaksei Budavei). + +Patch 9.1.1995 +Problem: Data races between test buffers are currently addressed by + relying on arbitrary execution delays or blissfully dismissed. +Solution: Prefer more deterministic synchronisation between test buffers + for test cases that generate screendump files with expected + results (Aliaksei Budavei). + +Patch 9.1.1996 +Problem: tests: test_cmdline.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.1997 +Problem: Missing out-of-memory check in vim9class.c in calls to + vim_strnsave(). +Solution: Refactor is_duplicate_variable() and is_duplicate_enum() and + make use of string_T struct instead (John Marriott). + +Patch 9.1.1998 +Problem: Not enough tests for :setlocal omnifunc (after 9.1.1991). +Solution: Move the last :new after :setlocal. Also test with 'complete' + (zeertzjq). + +Patch 9.1.1999 +Problem: clipboard provider does not respect 'clipboard' option + (Satoru Kitaguchi, after v9.1.1972) +Solution: Make clipboard provider register respect "unnamed/unnamedplus" + from the 'clipboard' option value. + +Patch 9.1.2000 +Problem: Vim9: class and object member names are stored as char_u * + pointer requiring repeated strlen() calls and making it harder + to use length-aware string operations consistently. +Solution: Store ocm_name as a string_T instead of char_u * (John Marriott). + +Patch 9.1.2001 +Problem: After :botright copen and closing the quikfix window, the + cursor ends up in the wrong window. The problem is fr_child + always points to the first (leftmost for FR_ROW, topmost for + FR_COL) child frame. When do :vsplit, the new window is + created on the left, and frame_insert() updates the parent's + fr_child to point to this new left window. +Solution: Create a snapshot before open the quickfix window and restore + it when close it (glepnir). + +Patch 9.1.2002 +Problem: Vim9: heap-use-after-free when when accessing protect class + member (Foxe Chen) +Solution: Set cl->class_type_list and return directly, add tests for + using protected class method and variable from another class + (Yegappan Lakshmanan). + +Patch 9.1.2003 +Problem: tests: Test_glob_symlinks may fail on Windows with UCRT + runtime +Solution: Comment out the code, do not use _wstat(). + +Patch 9.1.2004 +Problem: MS-Windows: If a directory with a single character name is + included in the PATH environment variable without a trailing + path separator, executable() will not be able to find the + executable file under it. +Solution: The second argument of the after_pathsep() function is now + passed the next pointer where a path separator may exist + (Muraoka Taro). + +Patch 9.1.2005 +Problem: MS-Windows: Missing fullscreen support for GUI version +Solution: Add "s" flag to guioptions (Mao-Yining) + +Patch 9.1.2006 +Problem: ANSI escape colors are not displayed correctly in + non-termguicolors in vim (cli) on Windows. The red and blue + channels seem to be swapped. +Cause: When converting VTerm ANSI index colors to cterm colors in + terminal.c, the Windows case equivalent to NR-16 (:help + cterm-colors) is ignored. +Solution: Created and used a table to convert ANSI indexed colors to + cterm's NR-16 representation (Windows only). This table + corresponds to the inverse conversion of cterm_ansi_idx in + term.c. The values in both tables are exactly the same, but + the meanings are opposite, so they are separate tables + (Muraoka Taro). + +Patch 9.1.2007 +Problem: bpftrace files are not recognized from the hashbang line. +Solution: Add a hashbang check (Stanislaw Gruszka). + +Patch 9.1.2008 +Problem: filetype: hylo files are not recognized +Solution: Detect *.hylo files as hylo filetype (Ambrus Tóth). + +Patch 9.1.2009 +Problem: tests: "Xm4" test directory may not be deleted +Solution: Use "R" flag with mkdir() call to have the directory + recursively deleted at the end of function Test_m4_format() + (Muraoka Taro). + +Patch 9.1.2010 +Problem: Missing out-of-memory checks in vim9class.c (after v9.1.2000). +Solution: Return FAIL early (John Marriott). + +Patch 9.1.2011 +Problem: crash when unreferencing gtk icon theme + (noamhalevy-wq, after v9.1.1583) +Solution: Remove the g_object_unref() call. + +Patch 9.1.2012 +Problem: Vim9: cannot initialize class member with protected var +Solution: Allow this to work if this happens within the same class + (Foxe Chen). + +Patch 9.1.2013 +Problem: tests: When opening a conpty terminal, if process startup + fails, it will silently exit. As a result, the + Test_terminal_shell_option in test_terminal3.vim failed in + conpty. +Solution: Make conpty fail with an error messages in the same way as winpty + (Muraoka Taro). + +Patch 9.1.2014 +Problem: clipboard: clipboard register corrupted with clipboard + provider (Satoru Kitaguchi and mikoto2000 after v9.1.1972) +Solution: Only adjust clipboard register points to the unnamed register + (Foxe Chen). + +Patch 9.1.2015 +Problem: blob2string() stopped after an empty line +Solution: Specifically check for empty content (Foxe Chen). + +Patch 9.1.2016 +Problem: At "if(0) do if(0); while(0); else", else should be aligned + with outer if, but is aligned with inner if. +Solution: In function find_match, ignore "if" and "else" inside a + do-while loop, when looking for "if". (Anttoni Erkkilä). + +Patch 9.1.2017 +Problem: getregionpos() depends on 'linebreak' setting +Solution: Reset linebreak setting temporarily (McAuley Penney). + +Patch 9.1.2018 +Problem: proto: ops.pro outdated (after v9.1.2017) +Solution: Regenerate the ops.pro proto file (Tao). + +Patch 9.1.2019 +Problem: When virtualedit is set to all, the cursor is supposed to be + permitted to reside anywhere, including on the virtual space + beyond the end of the buffer's text. Switching modes triggered + a routine that "fixed" a cursor that was past the end of the + line by shifting it back to the last actual character in the + line and compensating with a virtual column offset. While + visually identical, this re-encoding changed the underlying + byte index, causing position-reporting functions to return + inconsistent values after a mode change. +Solution: Skip this coordinate adjustment when virtual editing is fully + enabled. By treating the line terminator as a valid, stable + position, the cursor’s internal representation remains + unchanged when entering or exiting Visual mode, ensuring + consistent coordinate reporting. Add a regression test to + check this functionality (McAuley Penney). + +Patch 9.1.2020 +Problem: tests: test_virtualedit.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.2021 +Problem: filetype: fluent files are not recognized +Solution: Detect *.ftl files as fluent filetype (ners). + +Patch 9.1.2022 +Problem: Compilation issues on Windows when VIM + is compiled with OLE enabled, as "if_ole.cpp" cannot compile + due to the keyword conflict (after v9.1.2012). +Solution: Rename the member variable of `exarg` from `class` to `ea_class`. + (Wei Tang) + +Patch 9.1.2023 +Problem: A BufAdd autocommand may cause alist_add() to use freed + memory, this is caused by the w_locked variable unset too + early (henices) +Solution: In trigger_undo_ftplugin() only set w_locked to false, if it + was false when calling the function. + +Patch 9.1.2024 +Problem: 'fsync' option cannot be set per buffer +Solution: Make 'fsync' option global-local (glepnir). + +Patch 9.1.2025 +Problem: Conpty terminal process may not start. +Solution: Do not close the input handle at EOF when conpty is in use + (Muraoka Taro). + +Patch 9.1.2026 +Problem: tests: Patch 9.1.2019 not tested properly. +Solution: Add missing :exe (zeertzjq). + +Patch 9.1.2027 +Problem: filetype: bicep filetype used for 2 bicep file types +Solution: Detect *.bicepparam files as bicep-param filetype, include + new bicep-params and bicep filetype plugin (Scott McKendry). + +Patch 9.1.2028 +Problem: Buffer overflow in buf_write() when converting incomplete + multi-byte characters (Kevin Goodsell) +Solution: Make the buffer slightly larger. + +Patch 9.1.2029 +Problem: tests: the test_vim9_class.vim testfile is too long +Solution: Split out the interface related test cases into a new + test file test_vim9_interface.vim (Yegappan Lakshmanan). + +Patch 9.1.2030 +Problem: inefficient use of ga_concat() +Solution: Use ga_concat_len() when length is known (John Marriott). + +Patch 9.1.2031 +Problem: Makefile: cannot run make installinks twice +Solution: Change "ln -s" to "ln -sf" to force creation of the symlinks + (Thomas Petazzoni). + +Patch 9.1.2032 +Problem: Vim9: error when using class member in Lambda +Solution: Compare against uf_defclass variable (Foxe Chen). + +Patch 9.1.2033 +Problem: tests: Test_terminal_cwd in test_terminal.vim fails flaky + in the Windows ConPTY terminal. +Solution: In ConPTY, the timeout is extended to 1msec when reading a + channel associated with a job that is about to finish. This + allows Vim to read the last output of a process in a pseudo + console. Add comments to make the reasoning clear (Muraoka Taro). + +Patch 9.1.2034 +Problem: filetype: Fennel fnml files are not recognized (Alexei Mozaidze) +Solution: Detect *.fnml files as fennel filetype. + +Patch 9.1.2035 +Problem: filetype: Fennel fnlm files are not recognized + (Alexei Mozaidze, after v9.1.2034) +Solution: Detect *.fnlm files as fennel filetype, revert detecting + *.fnml files + +Patch 9.1.2036 +Problem: if_ruby: build error with ruby 4.0 (Mamoru Tasaka) +Solution: Always define rb_check_typeddata (EnumDev). + +Patch 9.1.2037 +Problem: undo: cursor position not correctly restored +Solution: Do not override the saved cursor position (altermo). + +Patch 9.1.2038 +Problem: tests: test_marks.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.2039 +Problem: if_ruby: crash when using Ruby/dyn 4.0 (after v9.1.2036) +Solution: Fix Ruby 4.0 dynamic builds correctly by inlining + rb_check_typeddata (Yee Cheng Chin) + +Patch 9.1.2040 +Problem: :tlnumenu incorrectly accepts a range. +Solution: Remove EX_RANGE and EX_ZEROR from the command definition and + use ADDR_NONE (Doug Kearns). + +Patch 9.1.2041 +Problem: tests: test_menu.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.2042 +Problem: filetype: systemd quadlet files are not recognized +Solution: Detect additional patterns as systemd filetype (Ac5000). + +Patch 9.1.2043 +Problem: filetype: kos files are not reconized +Solution: Detect *.kos files as kos filetype (Chris Dragan). + +Patch 9.1.2044 +Problem: Inefficient use of ga_concat() +Solution: Use ga_concat_len() when the length is already known to avoid + use of strlen() (John Marriott). + +Patch 9.1.2045 +Problem: Mac: Build failure with Mac OS X 10.6 + (Sergey Fedorov, after: v9.1.1748) +Solution: Add ifdefs MAC_OS_X_VERSION_10_7 around the code that sets the + scheduler priority. + +Patch 9.1.2046 +Problem: MS-Windows: compile warnings in os_win32.c, + acp_to_enc() requires char_u* but others require char* + (John Marriott, after v9.1.2013) +Solution: Cast the variables (Mao-Yining). + +Patch 9.1.2047 +Problem: MS-Windows: style issue in gui_w32.c +Solution: Fix indentation, drop unnecessary braces (Mao-Yining). + +Patch 9.1.2048 +Problem: Pressing backspace in ConPTY on Windows deletes an entire + word, not just a single character. This is the same as + pressing Alt + backspace in cmd.exe. +Solution: When using ConPTY on Windows, the `VTERM_KEY_BACKSPACE` key is + now sent when the Backspace key or Ctrl+H is detected (Muraoka Taro) + +Patch 9.1.2049 +Problem: Vim9: unexpected E1209 error +Solution: Fix error message (Hirohito Higashi). + +Patch 9.1.2050 +Problem: tests: Test_cd_completion() may fail depending on the contents + of the root directory of the current drive on Windows. + readdir() may return a directory that cannot "cd" to, causing + this test to fail. An example of such a directory is + "System Volume Information" which only admin can "cd" to. +Solution: When determining the directory to use for testing, use the + directory that we actually "cd" to successfully. + In addition, directories with '$' in their names are also + excluded, as they are considered environment variables during + completion and do not work as expected (Muraoka Taro). + +Patch 9.1.2051 +Problem: Test_cd_completion test fails in Appveyor. In Appveyor, a path + containing spaces was selected as the test target. But the + comparison failed because spaces were not taken into account + (after v9.1.2050) +Solution: Escape spaces in paths for comparison (Muraoka Taro). + +Patch 9.1.2052 +Problem: Compile error when disabling linebreak feature +Solution: Adjust ifdefs (Matthias Rader). + +Patch 9.1.2053 +Problem: If another find.exe derived from findutils is installed on + Windows, unintended behavior will occur. If MSYS2 is installed and + prioritized over the system path, then find.exe derived from + findutils will be launched during build, resulting in an + unintended warning message. +Solution: Specify the absolute path including SYSTEMROOT to launch + find.exe (Muraoka Taro). + +Patch 9.1.2054 +Problem: Can't unpack tuple from imported function (Mao-Yining) +Solution: Support multi-variable assignment from a tuple returned by an + imported function (Yegappan Lakshmanan). + +Patch 9.1.2055 +Problem: Division by zero in :file after failing to wipe buffer + (after 8.2.4631). +Solution: Still call buf_clear_file() when failing to wipe buffer (zeertzjq). + +Patch 9.1.2056 +Problem: tests: inconsistent indent and line breaking in Test_maparg(). +Solution: Consistently use spaces-only indent. Reorder fields to group + similar ones together and break lines at consistent positions. + Remove a mapping when it is no longer used (zeertzjq). + +Patch 9.1.2057 +Problem: Copying to clipboard register broken with 'go-P' (Coacher) +Solution: Verify that clip_plus is available (Foxe Chen). + +Patch 9.1.2058 +Problem: b_locked_split is not checked for :sbuffer, which allows + autocommands to leave windows open to freed buffers. +Solution: In do_buffer_ext, check just before possibly splitting, after + handling 'switchbuf'. Leave win_split to handle the check for + curbuf (Sean Dewar). + +Patch 9.1.2059 +Problem: filetype: Nickel files are not recognized +Solution: Detect *.ncl files as nickel filetype (Hoang Nguyen) + +Patch 9.1.2060 +Problem: filetype: Rasi include files are not recognized +Solution: Detect *.rasinc as rasi filetype (Hoang Nguyen). + +Patch 9.1.2061 +Problem: filetype: Koka files are not recognized +Solution: Detect *.kk files as koka filetype (Hoang Nguyen). + +Patch 9.1.2062 +Problem: filetype: djot files are not recognized +Solution: Detect *.dj and *.djot files as djot filetype (Hoang Nguyen). + +Patch 9.1.2063 +Problem: A few typos in the code and runtime files +Solution: Fix those (zeertzjq). + +Patch 9.1.2064 +Problem: completion: segfault during file name completion +Solution: Initialize compl_num_bests (Girish Palya). + +Patch 9.1.2065 +Problem: When building GvimExt with MinGW, some DLLs are still linked + even if STATIC_STDCPLUS=yes is set. +Solution: Following the Vim core, make some libraries explicitly + statically linked. The order of libraries is important, and + gcc_eh must be placed before winpthread (Muraoka Taro). + +Patch 9.1.2066 +Problem: :wqall! doesn't close a terminal buffer like :qall! does + (after 8.0.1525). +Solution: Check eap->forceit (zeertzjq). + +Patch 9.1.2067 +Problem: shadow variable warning in menu.c +Solution: Rename the variable (John Marriott). + +Patch 9.1.2068 +Problem: :bdelete/bunload/bwipeout may attempt to switch to a closing + buffer, which fails. (after 9.1.2058) +Solution: Don't consider switching to closing buffers (Sean Dewar). + +Patch 9.1.2069 +Problem: when shortmess doesn't have 'S', backward search wrap doesn't + show the "W" before count. forward search works fine but + backward fails because the position check logic is backwards - + it checks if cursor < pos instead of using the existing + wrapped flag. +Solution: Use sia->sa_wrapped flag that searchit() already sets + correctly (glepnir). + +Patch 9.1.2070 +Problem: Autocomplete breaks ":help" when 'dict' points to a large file + (lxhillwind) +Solution: Reset autocompletion timer expiry flag (Girish Palya). + +Patch 9.1.2071 +Problem: tests: test_ins_complete.vim leaves swapfiles behind +Solution: Close open buffers using :bw! instead of :close! + +Patch 9.1.2072 +Problem: Socket server has some small issues +Solution: Fix issues (Foxe Chen). + +Patch 9.1.2073 +Problem: auto/configure needs to be regenerated (after v9.1.2072) +Solution: Run make autoconf and update the configure script. + +Patch 9.1.2074 +Problem: Compile error with Motif GUI (Tony Mechelynck, after v9.1.2072) +Solution: Add ifdef FEAT_GUI_GTK + +Patch 9.1.2075 +Problem: tests: wrong change to test_ins_complete.vim + (zeertzjq, after v9.1.2071) +Solution: Revert unintentional changes. + +Patch 9.1.2076 +Problem: tests: When running the MinGW test, an error occurs after + generating opt_test.vim. +Solution: Rewrite the error detection in cmd.exe syntax (Muraoka Taro). + +Patch 9.1.2077 +Problem: Vim9: type issue when appending item to a list (Peter Kenny) +Solution: When adding a new item at the end of a list in vim9script, use + the proper item type (Yegappan Lakshmanan). + +Patch 9.1.2078 +Problem: A few more typos in various files +Solution: Fix those (zeertzjq, antonkesy). + +Patch 9.1.2079 +Problem: use-after-free with 'quickfixtextfunc' wiping buffer (henices) +Solution: Evaluate 'quickfixtextfunc' with textlock enabled. + +Patch 9.1.2080 +Problem: W23/W24 messsage appears on :reg (Coacher) +Solution: Silence message when using :reg command (Foxe Chen). + +Patch 9.1.2081 +Problem: MS-Windows: "#ifdef FEAT_GUI" exists within "ifdef + FEAT_GUI_MSWIN", which is confusing when reading the code. + FEAT_GUI is always defined if FEAT_GUI_MSWIN is defined (see + vim.h). Therefore, this check and the else block are unnecessary. +Solution: Removed unnecessary "#ifdef FEAT_GUI" (Muraoka Taro). + +Patch 9.1.2082 +Problem: modeless auto-select not working (Coacher) +Solution: Add support for modeless autoselect (Foxe Chen). + +Patch 9.1.2083 +Problem: style: wrong indentation of nested ifdefs +Solution: Fix indentation (Hirohito Higashi). + +Patch 9.1.2084 +Problem: Compile error when build with job feature (after v9.1.2077) +Solution: Add ifdefs (John Marriott). + +Patch 9.1.2085 +Problem: Use-after-free in winframe_remove() (henices) +Solution: Set window_layout_locked() inside winframe_remove() + and check that writing diff files is disallowed when the + window layout is locked. + +Patch 9.1.2086 +Problem: memory leak when not evaluating (just parsing) invalid literal + dict. +Solution: Always clear the key's typval (Sean Dewar) + +Patch 9.1.2087 +Problem: Crash when using :tabonly in BufUnload. +Solution: Set curbuf when setting curwin->w_buffer. Don't wipe out a + buffer if there are no other buffers. Don't decrement + b_nwindows if it was 0 before buf_freeall() (zeertzjq). + +Patch 9.1.2088 +Problem: Redundant NULL checks in find_pattern_in_path(). +Solution: Remove the NULL checks. Also fix typos in test_diffmode.vim + (zeertzjq). + +Patch 9.1.2089 +Problem: Wayland: Clipboard not working with external programs on + Wayland (devsnek) +Solution: Simplify the Wayland offer logic and drop offering the special + mime type (Foxe Chen). + +Patch 9.1.2090 +Problem: Last buffer not freed with EXITFREE (after 9.1.2087). +Solution: Free the last buffer when inside free_all_mem() (zeertzjq). + +Patch 9.1.2091 +Problem: Ruby headers define HAVE_FSYNC, which leaks into Vim sources + on Windows and changes conditional compilation of buf_T. This + causes struct layout mismatches in if_ruby.c and results in a + different offset for the b_p_bl property, making Vim::Buffer + access fail (after v9.1.2024) +Solution: Undefine HAVE_FSYNC after including the Ruby headers. + +Patch 9.1.2092 +Problem: Cannot detect kitty foreground/background color +Solution: Update builtin termcap entries (Mateo Gjika). + +Patch 9.1.2093 +Problem: heap-use-after-free when wiping buffer in TabClosedPre. +Solution: Check window_layout_locked() when closing window(s) in another + tabpage (zeertzjq). + +Patch 9.1.2094 +Problem: filetype: tiger files are not recognized +Solution: Detect *.tig files as tiger filetype (Christian Clason). + +Patch 9.1.2095 +Problem: :wqall! doesn't quit when using :quit in BufWritePost + (after 8.0.1190). +Solution: Restore old value of "exiting" when calling not_exiting() + instead of always resetting it to FALSE (zeertzjq). + +Patch 9.1.2096 +Problem: Vim9: truthiness issue with objects (kennypete) +Solution: Return true for an non-null object (Yegappan Lakshmanan). + +Patch 9.1.2097 +Problem: TabClosedPre may be triggered twice for the same tab page when + closing another tab page in BufWinLeave (after 9.1.1211). +Solution: Store whether TabClosedPre was triggered in tabpage_T (zeertzjq). + +Patch 9.1.2098 +Problem: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A + (after 9.1.1714) (fizz-is-on-the-way). +Solution: Check if there are matches before applying one (zeertzjq). + +Patch 9.1.2099 +Problem: Depending on the worker's environment, the line endings in + ja.sjis.po may differ from those in the source ja.po. +Solution: By setting standard input and output to binary mode, the line + endings for input and output will match (Muraoka Taro) + +Patch 9.1.2100 +Problem: filetype: tiltfiles are not recognized +Solution: Detect Tiltfiles.* and *.tiltfiles as tiltfile filetype (Luis Davim) + +Patch 9.1.2101 +Problem: Vim9: more truthiness issues (kennypete) +Solution: Class, enum and typealias cannot be used with the falsy + operator (Yegappan Lakshmanan). + +Patch 9.1.2102 +Problem: foldtext not reversed and cut off in 'rightleft' mode (bfredl) +Solution: Fix the rightleft redrawing logic (Sergey Vlasov). + +Patch 9.1.2103 +Problem: tests: test_fold.vim leaves swapfiles behind +Solution: Close open buffer using :bw! instead of :close! + +Patch 9.1.2104 +Problem: readdirex() might be slow (Mao-Yining) +Solution: Avoid double slash in path concatenation in create_readdirex_item() + (Yasuhiro Matsumoto). + +Patch 9.1.2105 +Problem: Not enough tests for using plain_vgetc(). +Solution: Add tests for using plain_vgetc() during various commands (zeertzjq) + +Patch 9.1.2106 +Problem: Vim9: class, enum and type alias can be used as value in an + expression (kennypete) +Solution: Abort expression evaluation if class, enum or type alias is + used in an expression (Yegappan Lakshmanan). + +Patch 9.1.2107 +Problem: :normal may change cmdline history if the keys don't + explicitly leave Cmdline mode (after 9.1.1872). +Solution: Check ex_normal_busy (zeertzjq). + +Patch 9.1.2108 +Problem: Test_foldtextresult_rightleft() does not restore 'columns' + (after v9.1.2102) +Solution: Save and restore the value of 'columns' (zeertzjq). + +Patch 9.1.2109 +Problem: filetype: NetLinx fires are not recognized +Solution: Detect *.axs and *.axi as netlinx filetype (kb). + +Patch 9.1.2110 +Problem: filetype: skhd files are not recognized +Solution: Detect .skhdrc and skhdrc as skhd filetype, include a syntax and + filetype plugin, add syntax tests (Kiyoon Kim). + +Patch 9.1.2111 +Problem: Vim9: no error for elseif/else after else +Solution: Report an error (Hirohito Higashi). + +Patch 9.1.2112 +Problem: long statusline may crash if using singlebyte encoding + (fizz-is-on-the-way) +Solution: Drop the non-mbyte codepath and always use the mbyte code (zeertzjq) + +Patch 9.1.2113 +Problem: potential NULL pointer dereference issues (EpheraXun) +Solution: Check returned pointer to be non NULL (Yasuhiro Matsumoto). + +Patch 9.1.2114 +Problem: modeless selection not copied to * register when P in + guioptions (Coacher) +Solution: Make the "P" flag override the "a" and "A" flag (Foxe Chen). + +Patch 9.1.2115 +Problem: CI: wrong preprocessor indentation (after v9.1.2114) +Solution: Update indentation (Yasuhiro Matsumoto). + +Patch 9.1.2116 +Problem: crash when using 'tagfunc' (Rodrigo Queipo) +Solution: Do not add the user_data to the 'info' dictionary when called + for insert mode completion (the TAG_INS_COMP flag is set). + Completion should not depend on the state of a previous tag + jump (Yasuhiro Matsumoto). + +Patch 9.1.2117 +Problem: unnecessary braces in terminal.c + (Christ van Willegen, after v9.1.2113) +Solution: Remove braces. + +Patch 9.1.2118 +Problem: 'cursorline' and part of 'statusline' are missing after + :diffput to an empty buffer. +Solution: Make sure the cursor doesn't go beyond the last line after + :diffput (zeertzjq). + +Patch 9.1.2119 +Problem: tests: Test_language_cmd fails on OpenBSD because the test + uses an invalid locale name and expects the command to produce + an error. OpenBSD accepts (almost) any locale name as valid by + design, so the :lang command succeeds and the test fails. +Solution: Slightly update the "bad" locale name to make it something + that OpenBSD considers invalid by adding a dot (but not ending + with ".UTF-8"). Maintain the original two underscores in the + name because that ensures Windows will also see it as invalid + (Kevin Goodsell). + +Patch 9.1.2120 +Problem: blob2str() does not restore trailing newline +Solution: Append empty string (thinca). + +Patch 9.1.2121 +Problem: Vim9: type issue when modifying a variable using :legacy + (kennypete) +Solution: In a vim9 script, when modifying a variable using the legacy + command, check the type (Yegappan Lakshmanan). + +Patch 9.1.2122 +Problem: Vim9: Negating a float doesn't result in a boolean (kennypete) +Solution: Make it return a boolean (Yegappan Lakshmanan). + +Patch 9.1.2123 +Problem: using NOT with a float returns a float in legacy vim script + (kennypete) +Solution: Return a number instead of a float (Yegappan Lakshmanan). + +Patch 9.1.2124 +Problem: blob2str() does not handle UTF-16 encoding (Hirohito Higashi) +Solution: Refactor the code and fix remaining issues, see below + (Yasuhiro Matsumoto). + +Patch 9.1.2125 +Problem: MS-Windows: DirectX rendering can be improved +Solution: Use lpDx advance, fix vertical text shift and correct + font-size calculations (Yasuhiro Matsumoto). + +Patch 9.1.2126 +Problem: vim --version used single column for feature list + (Ben Knoble, after v9.1.1898) +Solution: Restore old behaviour and assume 80 columns, making sure the feature + list is shown in several columns (Ben Knoble, Hirohito Higashi). + +Patch 9.1.2127 +Problem: MS-Windows: DirectX renders font too small in comparison to + the GDI rendering (Linwei, after v9.1.2125) +Solution: Implement proper font clipping (Yasuhiro Matsumoto). + +Patch 9.1.2128 +Problem: heap UAF if autocommands from reloading a file changed outside + of Vim wipe its buffer. +Solution: Validate the bufref after buf_reload (Sean Dewar). vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual:nofoldenable -- 2.47.3