Commit Graph

19908 Commits

Author SHA1 Message Date
zeertzjq
c74d5ceda1 vim-patch:dd9f7e6: runtime(doc): Fix some overlength lines
closes: vim/vim#19286

dd9f7e6cbb

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-02-01 08:30:59 +08:00
zeertzjq
270c7b46af vim-patch:9.1.2123: using NOT with a float returns a float in legacy script (#37639)
Problem:  using NOT with a float returns a float in legacy vim script
          (kennypete)
Solution: Return a number instead of a float (Yegappan Lakshmanan)

fixes:  vim/vim#19282
closes: vim/vim#19289

ecc3faef61

N/A patches:
vim-patch:8.2.1980: Vim9: some tests are not done at the script level
vim-patch:9.1.2122: Vim9: Negating a float doesn't result in a bool

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2026-01-31 13:50:54 +00:00
zeertzjq
7ca3a56258 fix(ui): don't crash if maximum UI count reached (#37636) 2026-01-31 21:09:06 +08:00
Shadman
ed4c549ea2 fix(prompt): also store column info in ': mark #36194
Problem:
Currently, : mark is set in start of prompt-line. But more relevant
location is where the user text starts.

Solution:
Store and update column info on ': just like the line info
2026-01-30 12:22:48 -05:00
zeertzjq
47ce93ad6d vim-patch:9.1.2118: 'cursorline' missing after :diffput to empty buf (#37628)
Problem:  'cursorline' and part of 'statusline' are missing after
          :diffput to an empty buffer.
Solution: Make sure the cursor doesn't go beyond the last line after
          :diffput (zeertzjq)

related: neovim/neovim#37621
closes:  vim/vim#19281

ce1e562fda
2026-01-30 20:09:33 +08:00
zeertzjq
ebfbe4db49 vim-patch:9.1.2116: crash when using 'tagfunc' (#37627)
Problem:  crash when using 'tagfunc' (Rodrigo Queipo)
Solution: Do not add the user_data to the 'info' dictionary when called
          for insert mode completion (the TAG_INS_COMP flag is set).
          Completion should not depend on the state of a previous tag
          jump. (Yasuhiro Matsumoto)

fixes:  vim/vim#19255
closes: vim/vim#19284

57b577df32

Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-01-30 11:41:02 +00:00
luukvbaal
1a3d3b77bb fix(ui): no empty message for substitution match with ext_messages #37600
Problem:  Empty message is emitted when a match is found.
Solution: Don't emit it with ext_messages enabled.
2026-01-29 16:51:58 -05:00
zeertzjq
19a3b67789 fix(process): avoid unexpected behavior when PTY chdir failed (#37614)
Problem:  Unexpected behavior after PTY child process fails to chdir(),
          as it then thinks it's the parent process.
Solution: Exit the child process instead of returning.
2026-01-29 22:02:24 +08:00
zeertzjq
484f455402 test(terminal): status is -1 in TermClose if buffer is deleted (#37609) 2026-01-29 08:29:49 +00:00
zeertzjq
4e4e1b09d3 refactor(terminal): fix coverity warning (#37613)
*** CID 642984:         Null pointer dereferences  (FORWARD_NULL)
    /src/nvim/terminal.c: 571             in terminal_open()
    565
    566       if (term->sb_buffer != NULL) {
    567         // If scrollback has been allocated by autocommands between terminal_alloc()
    568         // and terminal_open(), it also needs to be refreshed.
    569         refresh_scrollback(term, buf);
    570       }
    >>>     CID 642984:         Null pointer dereferences  (FORWARD_NULL)
    >>>     Passing "term" to "refresh_screen", which dereferences null "term->sb_buffer".
    571       refresh_screen(term, buf);
    572       set_option_value(kOptBuftype, STATIC_CSTR_AS_OPTVAL("terminal"), OPT_LOCAL);
    573
    574       if (buf->b_ffname != NULL) {
    575         buf_set_term_title(buf, buf->b_ffname, strlen(buf->b_ffname));
    576       }
2026-01-29 05:16:41 +00:00
zeertzjq
b40880f88f fix(terminal): heap UAF if buffer deleted during TermRequest (#37612)
Problem:  Heap UAF if a terminal buffer is deleted during TermRequest in
          Normal mode.
Solution: Increment terminal refcount before triggering TermRequest, and
          destroy the terminal if the buffer is closed during that.
2026-01-29 13:02:36 +08:00
Daniel Nylander
41336a3590 fix(messages): swedish translation #37395 2026-01-28 11:35:23 -05:00
zeertzjq
97d9b85bf9 fix(terminal): wrong scrollback with BufFile* autocommand (#37601)
Problem:  Wrong terminal scrollback if BufFile* autocommand drains PTY
          output but doesn't process the pending refresh.
Solution: Refresh scrollback before refreshing screen in terminal_open()
          if scrollback has been allocated.
2026-01-28 23:32:58 +08:00
zeertzjq
1f0dbfea2f fix(tui): log chdir failure properly #37591 2026-01-28 05:44:17 -05:00
ashab-k
027b7d6bbb fix(ui): :intro not displayed with ui2 #37472
Problem:
The :intro  fails to display in  ui2 because wait_return(true) triggers a full
redraw. Furthermore statuslines are visible when using :intro

Solution:
Replace wait_return() with plain_vgetc(). This works with old and ui2 while also removing the unnecessary statusline and "press ENTER" prompt.
Updates tests to work with new behaviour.

Signed-off-by: ashab-k <ashabkhan2000@gmail.com>
2026-01-27 18:25:36 -05:00
zeertzjq
6291256868 fix(process): avoid buffering unnecessary UI event with PTY CWD (#37582)
Problem:
Calling os_chdir() to change the child processes' CWD may cause some
unnecessary UI events to be buffered. These UI events don't go anywhere
as execvp() is called before flushing the UI buffer.

Solution:
Use uv_chdir() instead of os_chdir(). Also fix getting error string
incorrectly. Add test for the current behavior.
2026-01-28 06:50:49 +08:00
zeertzjq
df21ac729c fix(terminal): losing output if BufFile* poll for events (#37580)
Problem:  Terminal loses output if a BufFilePre or BufFilePost autocmd
          polls for events.
Solution: Rename the buffer after allocating the terminal instance. Also
          fix buffer getting wrong name if BufFilePre uses NameBuff.
2026-01-28 06:21:28 +08:00
luukvbaal
1d57374c41 fix(ui): textlock still causes issues for UI callbacks #37513
Problem:  There are still ways to run into textlock errors with
          vim.ui_attach callbacks trying to display a UI event.
Solution: Disregard textlock again during vim.ui_attach() callbacks
          (also when scheduled). Partially revert 3277dc3b; avoiding
          to flush while textlock is set is still helpful.
2026-01-27 09:30:37 -05:00
github-actions[bot]
76c77bd114 docs: update version.c #37545
vim-patch:9.1.1988: osc52 package can be further improved
vim-patch:5fb29bb7e runtime(osc52): Update documentation, send DA1 query when loading package
vim-patch:e6a11d45e runtime(osc52): A few minor fixes
vim-patch:1d4fe8905 CI: Add C preproc indentation check to CI
vim-patch:a5ba252f0 runtime(doc): Tweak tag lines in vim9.txt
vim-patch:c035f518c CI: check encoding of runtime files with utf-8 name
2026-01-27 08:05:30 -05:00
zeertzjq
b88b7f9591 fix(terminal): wrong colors with nvim_open_term() in non-curbuf (#37579)
Problem:  Wrong colors with nvim_open_term() in non-current buffer.
Solution: Pass the buffer to get_config_string().
2026-01-27 06:59:23 +00:00
zeertzjq
9540e7470b fix(terminal): possible heap-use-after-free during Nvim exit
Usually, terminal_close() calls refresh_terminal(), which allocates the
scrollback buffer, and term_may_alloc_scrollback() in terminal_open()
won't dereference the buffer. However, refresh_terminal() is not called
during Nvim exit, in which case a heap-use-after-free may happen if
TermOpen wipes buffer. Check for non-NULL buf_handle to avoid that.
2026-01-27 13:12:15 +08:00
zeertzjq
b4039ec0b0 fix(terminal): don't allow b:term_title watcher to delete buffer 2026-01-27 12:45:49 +08:00
zeertzjq
b6befc7b03 fix(terminal): losing scrollback when TermOpen polls for events (#37573)
Problem:  When TermOpen polls for enough events to use the scrollback
          buffer, scrollback is lost until the next terminal refresh.
Solution: Allocate the scrollback buffer when it's needed.
2026-01-27 03:46:54 +00:00
luukvbaal
d30d91f3a4 fix(ui): only internal messages are unsafe #37462
Problem:  Fast context for msg_show event inhibits vim.ui_attach from
          displaying a stream of messages from a single command.

Solution: Remove fast context from msg_show events emitted as a result
          of explicit API/command calls. The fast context was originally
          introduced to prevent issues with internal messages.
2026-01-26 18:18:51 -05:00
luukvbaal
96e1acfa42 fix(messages): add "list_cmd" kind to :colorscheme #37561
Problem:  No kind for :colorscheme message.
Solution: Assign it the "list_cmd" kind.
2026-01-26 11:56:39 -05:00
glepnir
543e14d040 docs: nvim_set_hl fg_index, bg_indexed #37534 2026-01-26 08:31:57 -05:00
github-actions[bot]
0627b7902f docs: update version.c (#37212)
vim-patch:8.2.1857: Vim9: using job_status() on an unused var gives an error
vim-patch:8.2.2064: terminal: cursor is on while redrawing, causing flicker
vim-patch:8.2.3585: crash when passing float to "term_rows" of term_start()
vim-patch:8.2.3640: freeze when calling term_wait() in a close callback
vim-patch:8.2.3666: libvterm is outdated
vim-patch:8.2.3803: GUI: crash with 'writedelay' set using a terminal window
vim-patch:8.2.4695: JSON encoding could be faster
vim-patch:8.2.4699: hard to reproduce hang when reading from a channel
vim-patch:8.2.4757: list of libraries to suppress lsan errors is outdated
vim-patch:8.2.4788: large payload for LSP message not tested
vim-patch:8.2.4830: possible endless loop if there is unused typahead
vim-patch:8.2.5055: statusline is not updated when terminal title changes
vim-patch:9.0.0235: 'autoshelldir' does not work with chunked respose
vim-patch:9.0.0394: Cygwin: multibyte characters may be broken in terminal window
vim-patch:9.0.0524: build instructions for MS-Windows are outdated
vim-patch:9.0.0774: the libvterm code is outdated
vim-patch:9.0.1269: channel test often fails on Mac OS
vim-patch:9.0.1487: Content-type header for LSP channel not according to spec
vim-patch:9.0.1498: in a terminal window the cursor may jump around
vim-patch:9.0.1509: error message lacks mentioning the erroneous argument
vim-patch:9.0.1527: crash when using negative value for term_cols
vim-patch:9.0.1627: no generic mechanism to test syntax plugins
vim-patch:9.0.1628: syntax tests fail on FreeBSD
vim-patch:9.0.1692: Android not handling AI_V4MAPPED ai_flag
vim-patch:9.0.1790: Redundant LSP Content-Type header
vim-patch:b147d3148 tests: Improve the codestyle test (#12988)
vim-patch:9.0.1922: LSP server request message is misinterpreted as a response message
vim-patch:9.0.1927: patch 1916 (fixed terminal size) not optimal
vim-patch:9.0.1929: runtime tests fail with tiny vim
vim-patch:9.0.1939: still a problem when processing LSP RPC requests
vim-patch:4ae16d721 Improve CONTRIBUTING.md
vim-patch:74a233184 NSIS: Possibility to include translated license and README.txt files (#14311)
vim-patch:3ac83c714 The CODEOWNERS File is not useful
vim-patch:b7258738f runtime(doc): fix typo in usr_52.txt
vim-patch:f5c8f520b runtime(doc): fix typo in vim9script help file (#14782)
vim-patch:bad9577b9 runtime(doc): include some vim9 script examples in the help
vim-patch:98fb81846 runtime(comment): clarify the usage of 'commentstring' option value
vim-patch:9.1.0473: term_start() does not clear vertical modifier
vim-patch:9.1.0475: cmod_split modifier is always reset in term_start()
vim-patch:9d85d4dcf runtime(manpager): avoid readonly prompt
vim-patch:9.1.0606: tests: generated files may cause failure in test_codestyle
vim-patch:9.1.0639: channel timeout may wrap around
vim-patch:9.1.0643: terminal: cursor may end up on invalid position
vim-patch:166f89e04 runtime(doc): update vim90 to vim91 in docs
vim-patch:914213616 runtime(comment): add gC mapping to (un)comment rest of line
vim-patch:0fb25515c runtime(comment): fix syntax error
vim-patch:e021f39b7 runtime(comment): commenting might be off by one column
vim-patch:7b27fc49a runtime(comment): consider &tabstop in lines after whitespace indent
vim-patch:9.1.0763: tests: cannot run single syntax tests
vim-patch:f64bafd98 runtime(comment): fix commment toggle with mixed tabs & spaces
vim-patch:9.1.0787: cursor position changed when using hidden terminal
vim-patch:55adc5b46 runtime(doc): update coding style documentation
vim-patch:feea1b444 Add an .editorconfig file to repository
vim-patch:ba0b45857 translation(am): Remove duplicate keys in desktop files
vim-patch:de6a31301 runtime(doc): mention auto-format using clang-format for sound.c/sign.c
vim-patch:9.1.0989: Vim9: Whitespace after the final enum value causes a syntax error
vim-patch:9.1.1047: Makefiles uses non-portable syntax
vim-patch:9.1.1061: tests: test_glvs fails when unarchiver not available
vim-patch:7ceca3eb0 runtime(syntax-tests): Support "wait-free" test failure
vim-patch:9.1.1229: the comment plugin can be improved
vim-patch:20e46fa65 Improve contributing guide by adding a section on signing off commits
vim-patch:9.1.1240: Regression with ic/ac text objects and comment plugin
vim-patch:9.1.1254: need more tests for the comment plugin
vim-patch:9.1.1259: some issues with comment package and tailing spaces
vim-patch:9.1.1293: comment plugin does not handle 'exclusive' selection for comment object
vim-patch:9.1.1336: comment plugin does not support case-insensitive 'commentstring'
vim-patch:9.1.1348: still E315 with the terminal feature
vim-patch:55f9e2bef runtime(doc): Tweak documentation style in develop.txt
vim-patch:9.1.1399: tests: test_codestyle fails for auto-generated files
vim-patch:9.1.1456: comment plugin fails toggling if 'cms' contains \
vim-patch:aef2e53cf runtime(comment): handle special chars ^$[ robustly
vim-patch:1cbe3e89c runtime(comment): add <Plug>-mappings
vim-patch:9.1.1536: tests: test_plugin_comment uses wrong :Check command
vim-patch:58706ac04 Update editorconfig and the documented C-style for sign.c/sound.c
vim-patch:9.1.1597: CI reports leaks in libgtk3 library
vim-patch:46ec89902 runtime(doc): update develop assumptions
vim-patch:bc51ec53d runtime(doc): Update CONTRIBUTING and clarify use of Vim9 script
vim-patch:d1833d282 runtime(doc): allow more C99 features
vim-patch:0ed08788a runtime(doc): document use of proto files in develop.txt
vim-patch:05662b63b runtime(doc): Tweak spacing in develop.txt
vim-patch:e89efc22b runtime(doc): update Vim policy
vim-patch:fabe9a4c8 nsis: Getting the Vim version number via makensis
vim-patch:9.1.1841: patch 9.1.1840 adds python build dependency
vim-patch:bcf6c32b5 runtime(doc): Tweak documentation in develop.txt
vim-patch:9.1.1905: tabpanel: truncates terminal output
vim-patch:9.1.1912: tests: test_plugin_comment fails
vim-patch:ef7a577b2 runtime(doc): Remove outdated agide.org link
vim-patch:9.1.2025: conpty terminal process may not start
vim-patch:ce1636548 runtime(doc): Emphasize adding tests when contributing
vim-patch:d09be1584 runtime(doc): Update Contributing.md on the use of AI
vim-patch:9.1.2039: if_ruby: crash when using Ruby/dyn 4.0
vim-patch:0115da33b CI: Missing test of Vim with ConPTY on Windows
vim-patch:9.1.2047: MS-Windows: style issue in gui_w32.c
vim-patch:9.1.2048: MS-Windows: backspace behavior wrong with ConPTY
vim-patch:9.1.2053: MS-Windows: May use wrong find command
vim-patch:0ed8ba307 Always force LF line endings in old test .ok files
vim-patch:a735e44b3 translation(ru): updated menu files according to the patch 9.1.1989
vim-patch:416d1a5e2 translation(ru): added a disclaimer to the license translation
vim-patch:0084e4bd1 gitattributes: mark test21.ok binary, drop test42.in
vim-patch:aa58f1fe4 CI: build failure in if_perl.xs
vim-patch:9.1.2065: GvimExt cannot be linked statically using MinGW
vim-patch:5516fc534 runtime(syntax-tests): Adapt "runtime/syntax/testdir/vimcmd" for "src/testdir/util/shared.vim"
vim-patch:9.1.2073: auto/configure needs to be regenerated
vim-patch:9.1.2074: Compile error with Motif GUI
vim-patch:da44ef6a9 runtime(c,cpp): Add reference links to noreturn tests
vim-patch:8211f556d runtime(syntax-tests): tests: sh_10 fails on MacOS runners
vim-patch:9.1.2091: Ruby integration does not work correctly
vim-patch:9.1.2096: Vim9: truthiness issue with objects
vim-patch:9.1.2099: different line endings in ja.sjis.po and ja.po
vim-patch:284f8669e CI: Reorder path in Windows CI runners and move Python3 before $PATH
vim-patch:9.1.2101: Vim9: more truthiness issues

vim-patch:8.2.0572: using two lines for free and reset
vim-patch:8.2.2291: Vim9: cannot use "null" for v:null
vim-patch:8.2.2961: keys typed during a :normal command are discarded

vim-patch:9.0.1567: profiler calculation may be wrong on 32 bit builds
vim-patch:9.0.1776: No support for stable Python 3 ABI
vim-patch:9.0.1859: heap-use-after-free in bt_normal()
vim-patch:9.0.2052: win32: using deprecated wsock32 api

vim-patch:9.1.2052: Compile error when disabling linebreak feature
vim-patch:5e37e31: runtime(tutor): fix wrong motion in instruction
vim-patch:9.1.2067: shadow variable warning in menu.c
vim-patch:f78629b: runtime(doc): Fix typo at :help 'fsync'
2026-01-25 09:57:34 +08:00
zeertzjq
72ac9ac9a1 fix(terminal): possible memory leak on exit (#37532)
Problem:
On exit, it's possible that term_delayed_free() hasn't been called yet
when the main loop is freed, in which case it won't be called ever.

Solution:
Don't bail out with term->destroy set when calling terminal_close()
inside free_all_mem().
2026-01-24 03:32:52 +00:00
zeertzjq
f60051e00d vim-patch:9.0.0874: using freed memory when executing unmenu at more prompt
Problem:    Using freed memory when executing unmenu at the more prompt.
Solution:   Do not clear menus while listing them. (closes vim/vim#11439)

920d311480

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2026-01-24 10:04:44 +08:00
zeertzjq
f10a1dcf4d vim-patch:9.1.2107: :normal may change cmdline history (#37523)
Problem:  :normal may change cmdline history if the keys don't
          explicitly leave Cmdline mode (after 9.1.1872).
Solution: Check ex_normal_busy (zeertzjq)

closes: vim/vim#19237

85241020e8
2026-01-23 23:57:49 +00:00
glepnir
589232c0e0 fix(extmark): wrong eol_right_align width calculation (#37034)
Problem: Multiple eol_right_align virtual texts with different widths
are incorrectly positioned. The lookahead loop uses `item` instead of
`lookaheadItem` when checking kind and accessing data, causing all
items to use the first item's width.

Solution: Use `lookaheadItem->kind` and `lookaheadItem->data.vt`
instead of `item->kind` and `item->data.vt` in the lookahead loop.
2026-01-23 08:35:43 +00:00
zeertzjq
cae4fbf973 vim-patch:3456303: check.vim: Use silent command modifier
Problem:  When checking a .po file (make -C src/po check), errors are not
          displayed.

Solution: Adding "silent" to some normal commands in check.vim
          suppresses unnecessary output (Muraoka Taro)

This is because the output of check.vim is redirected to /dev/null.
However, if you stop the redirection, check.vim generates a lot of
output and becomes very slow.

When these commands are run in ex mode, they output the contents of the
line the cursor is pointing to.  This caused a lot of output.

closes: vim/vim#19227

3456303430

Co-authored-by: Muraoka Taro <koron.kaoriya@gmail.com>
2026-01-22 13:41:01 +08:00
zeertzjq
5f86b4b70d vim-patch:4105ef1: Drop superfluous execute permissions for readable files
- runtime/ftplugin/plsql.vim (42e498)
- runtime/pack/dist/opt/editorconfig/LICENSE.PSF (e5e043)
- src/po/check.vim (96dab9)
- src/po/it.po (bb0d3b)

closes: vim/vim#18666

4105ef16e3

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
2026-01-22 13:40:37 +08:00
zeertzjq
965f54cf50 vim-patch:96dab9c: check.vim: Further improve po message checks
96dab9c9b1

Co-authored-by: Antonio Giovanni Colombo <azc100@gmail.com>
2026-01-22 13:39:45 +08:00
zeertzjq
e27e4052c8 vim-patch:2566a9f: check.vim: Improve po message checks
2566a9f290

Co-authored-by: Antonio Giovanni Colombo <azc100@gmail.com>
2026-01-22 13:39:16 +08:00
zeertzjq
282a794feb vim-patch:41adebe: check.vim: detect trailing whitespace
41adebe572

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-22 13:36:57 +08:00
zeertzjq
5e6f0e58ed vim-patch:32a5faa: check.vim complains about overlong comment lines
Problem:  check.vim complains about overlong comment lines
Solution: only check the length of non-commented lines

32a5faa6d7

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-22 13:35:32 +08:00
zeertzjq
95b6215f0a vim-patch:c858382: Problem: Commit 6f585d breaks CI
Problem:  Commit 6f585d breaks CI
Solution: Don't error out, simply return an error message.

c858382482

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-22 13:35:09 +08:00
zeertzjq
fc4188ded8 vim-patch:6f585da: Overlong translation files may cause repo to become "dirty"
Problem:  Overlong translation files may cause repo to become "dirty"
Solution: Add a test into check.vim to warn for lines being longer than
          80 virt columns

related: vim/vim#14490

6f585da00b

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-22 13:34:52 +08:00
zeertzjq
196df35cca fix(terminal): <Ignore> should be no-op (#37494) 2026-01-22 09:26:22 +08:00
zeertzjq
25ce44845d fix(terminal): restore options properly when switching buffer (#37485) 2026-01-21 18:42:47 +08:00
glepnir
c556972ae1 fix(api): auto-load buffers in nvim_buf_set_* operations (#35046)
fix(api): auto-load buffers in nvim_buf_set_* operations

Problem: Setting marks, lines, or text on unloaded buffers fails because
ml_line_count is not accurate until the buffer is loaded.

Solution: Add require_loaded_buffer() helper and use it in write operations
(nvim_buf_set_lines, nvim_buf_set_text, nvim_buf_set_mark). These now
auto-load buffers as needed.
2026-01-21 14:17:44 +08:00
zeertzjq
1949452bd3 fix(tui): avoid using uv_pipe_t as uv_tty_t (#37479)
Check tui->out_isatty before accessing tui->output_handle.tty.
2026-01-21 11:53:18 +08:00
Tommy Guo
103ddaf9ae fix(lua): correct line number reporting for options set in coroutines (#37463) 2026-01-21 02:18:33 +00:00
James Fotherby
bfe9fa0f8e fix(socket): remove stale socket files (#37378)
Problem:
Crashed Nvim leaves socket files. Subsequent starts fail with "address already in use".

Solution:
On bind failure, test socket liveness via connect(). Remove if stale, retry bind().

Fixes #36581
2026-01-20 13:59:43 +08:00
glepnir
0712a9c87b fix(pum): separate scrollbar from shadow border (#37448)
Problem:
With shadow border, scrollbar and border overlap. Shadow's right border
starts from the second row (offset by 1), but scrollbar renders on every
row including the first. If they share a column, the first row shows
scrollbar where shadow hasn't started yet, causing misalignment.

Solution:
Separate scrollbar from the shadow's right border.
2026-01-19 19:39:48 -08:00
zeertzjq
64057d266c vim-patch:9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A (#37466)
Problem:  Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A
          (after 9.1.1714) (fizz-is-on-the-way).
Solution: Check if there are matches before applying one (zeertzjq).

closes: vim/vim#19210

311b98d942
2026-01-19 23:36:57 +00:00
zeertzjq
b4e602dde5 vim-patch:9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost
Problem:  :wqall! doesn't quit when using :quit in BufWritePost
          (after 8.0.1190).
Solution: Restore old value of "exiting" when calling not_exiting()
          instead of always resetting it to FALSE (zeertzjq).

related: vim/vim#2205
closes:  vim/vim#19212

e803ad1c56
2026-01-20 07:09:15 +08:00
zeertzjq
7470e63260 vim-patch:9.1.2097: TabClosedPre may be triggered twice for the same tab page
Problem:  TabClosedPre may be triggered twice for the same tab page when
          closing another tab page in BufWinLeave (after 9.1.1211).
Solution: Store whether TabClosedPre was triggered in tabpage_T
          (zeertzjq).

Also fix the inconsistency that :tabclose! triggers TabClosedPre after
a failed :tabclose, but :close! doesn't even if there is only one window
in the tab page.

closes: vim/vim#19211

9168a04e0c
2026-01-20 06:23:11 +08:00
zeertzjq
30bcb25341 vim-patch:9.1.2093: heap-use-after-free when wiping buffer in TabClosedPre
Problem:  heap-use-after-free when wiping buffer in TabClosedPre.
Solution: Check window_layout_locked() when closing window(s) in another
          tabpage (zeertzjq).

closes: vim/vim#19196

8fc7042b3d
2026-01-20 06:23:11 +08:00