runtime(doc): Update version9.txt with numbered patches
Commit:
https://github.com/vim/vim/commit/1ff963e15c85fa0fb2c27164dcff8e794c20e8ec
Author: Christian Brabandt <
c...@256bit.org>
Date: Wed Feb 4 15:07:40 2026 +0000
runtime(doc): Update version9.txt with numbered patches
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 48200b902..52d086a87 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 <D-Key> (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: <Del> 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=<path> 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 <enter>
+ (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 <Cmd> 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: <CSI>27;<mod>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...@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 <C-W>/<C-U>
+ (ddad431, after v9.1.1059)
+Solution: Handle <C-W> or <C-U> 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=<Tab>`), 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
end`), 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 <Tab> 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<object<any>>
+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<type> as variable type
+Solution: Add support for object<type> (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 `<C-N>` and `<C-P>` 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 '