]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
7 weeks agopatch 9.2.0028: matchadd() conceal may use unrelated syntax cchar v9.2.0028
zeertzjq [Thu, 19 Feb 2026 16:42:09 +0000 (16:42 +0000)] 
patch 9.2.0028: matchadd() conceal may use unrelated syntax cchar

Problem:  matchadd() conceal may use unrelated syntax cchar.
Solution: Only use syntax cchar when syntax_flags has HL_CONCEAL
          (zeertzjq).

closes: #19459

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0027: filetype: yara files are not recognized v9.2.0027
Thomas Dupuy [Thu, 19 Feb 2026 16:12:06 +0000 (16:12 +0000)] 
patch 9.2.0027: filetype: yara files are not recognized

Problem:  filetype: yara files are not recognized
Solution: Detect *.yara and *.yar files as yara filetype
          (Thomas Dupuy).

Reference:
- https://github.com/VirusTotal/yara
- https://github.com/VirusTotal/yara-x

closes: #19460

Signed-off-by: Thomas Dupuy <thom4s.d@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0026: The ss_pending_cmds variable is visible globally v9.2.0026
Foxe Chen [Thu, 19 Feb 2026 16:06:47 +0000 (16:06 +0000)] 
patch 9.2.0026: The ss_pending_cmds variable is visible globally

Problem:  The ss_pending_cmds variable is visible globally
Solution: Make it static (Foxe Chen).

closes: #19461

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(less.sh): Fix reading from stdin.
Shane Harper [Wed, 18 Feb 2026 22:28:21 +0000 (22:28 +0000)] 
runtime(less.sh): Fix reading from stdin.

Problem:  less.sh can't read from stdin; it will try to read from a file named "-" instead (after 515da6ecdb).
Solution: Do not prepend "-" with "--" in the arguments list for vim.

The following were checked manually and worked as expected:
    echo Test | less.sh
    echo Test | less.sh -
    less.sh some_file
    less.sh --cmd some_file  # vim will try to load "--cmd" and "some_file".
    less.sh                  # script outputs "No input."
    # All of the above repeated with the output piped to 'cat'.

closes: #19462

Signed-off-by: Shane Harper <shane@shaneharper.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agotranslation(zh): Update menu translation for changed "Sponsor" entry
Mao-Yining [Wed, 18 Feb 2026 22:24:14 +0000 (22:24 +0000)] 
translation(zh): Update menu translation for changed "Sponsor" entry

closes: #19463

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doctags): remove unused header include file
Mao-Yining [Wed, 18 Feb 2026 22:19:06 +0000 (22:19 +0000)] 
runtime(doctags): remove unused header include file

closes: #19465

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoFilelist: Fix CI error caused by xdg.vim missing in Filelist
Hirohito Higashi [Wed, 18 Feb 2026 22:14:00 +0000 (22:14 +0000)] 
Filelist: Fix CI error caused by xdg.vim missing in Filelist

closes: #19466

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(xdg): Move viminfofile storage to state dir
Christian Brabandt [Thu, 19 Feb 2026 11:24:53 +0000 (12:24 +0100)] 
runtime(xdg): Move viminfofile storage to state dir

fixes: #19456

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(xdg): remove // from 'undo' and 'viwedir'
Christian Brabandt [Thu, 19 Feb 2026 06:38:04 +0000 (07:38 +0100)] 
runtime(xdg): remove // from 'undo' and 'viwedir'

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0025: filetype: cshtml incorrectly recognized v9.2.0025
tris203 [Wed, 18 Feb 2026 22:00:09 +0000 (22:00 +0000)] 
patch 9.2.0025: filetype: cshtml incorrectly recognized

Problem:  filetype: cshtml incorrectly recognized, razor files are not
          recognized
Solution: Detect *.cshtml and *.razor files as razor filetype
          (tris203)

Reference:
https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-10.0

closes: #19207

Signed-off-by: tris203 <admin@snappeh.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0024: Reading files with very long lines crashes with a segfault v9.2.0024
Christian Brabandt [Wed, 18 Feb 2026 21:52:40 +0000 (21:52 +0000)] 
patch 9.2.0024: Reading files with very long lines crashes with a segfault

Problem:  Reading files with lines approaching MAXCOL length crashes
          with segfault due to colnr_T overflow.
Solution: The split check 'linerest >= MAXCOL' fired too late because
          linerest could grow by up to 'size' bytes before the next
          check. Change threshold to 'linerest >= MAXCOL - size' to
          ensure the line passed to ml_append() stays within colnr_T
          range.

Note: supported by AI claude

fixes:   #17935
closes:  #18953
closes:  #19332

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0023: fix integer overflow in ml_append_int() for long lines v9.2.0023
Christian Brabandt [Wed, 18 Feb 2026 21:49:58 +0000 (21:49 +0000)] 
patch 9.2.0023: fix integer overflow in ml_append_int() for long lines

Problem:  ml_append_int() crashes when appending lines near MAXCOL
          length due to signed integer overflow in space_needed
          calculation.
Solution: Change 'space_needed' from int to long to handle the
          'len + INDEX_SIZE' computation without overflow. Update
          db_free comparison casts from (int) to (long) to match.

Note: supported by AI claude

related: #17935
related: #18953
related: #19332

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0022: bt_quickfix() is slow v9.2.0022
zeertzjq [Wed, 18 Feb 2026 21:42:25 +0000 (21:42 +0000)] 
patch 9.2.0022: bt_quickfix() is slow

Problem:  In order to prevent a use-after-free, bt_quickfix() added a
          call to buf_valid(), which slows it down, because Vim has to
          loop through many buffers all the time (v9.0.1859)
Solution: Patch v9.0.2010 fixed a similar problem, so that the call to
          buf_valid() is no longer required (zeertzjq)

fixes:  #19169
closes: #19183

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0021: channel: connection timeout fails to fall back to IPv4 v9.2.0021
thinca [Wed, 18 Feb 2026 21:34:57 +0000 (21:34 +0000)] 
patch 9.2.0021: channel: connection timeout fails to fall back to IPv4

Problem:  When ch_open() tries to connect to a hostname that resolves to
          multiple addresses (e.g., both IPv6 and IPv4), it uses a
          single waittime for all connection attempts. If the first IPv6
          connection attempt times out, it consumes almost all of the
          waittime, leaving insufficient time (often just 1ms) for the
          IPv4 attempt to succeed. (reporter)
Solution: Implement a simplified version of Happy Eyeballs (RFC 8305) to
          improve connection fallback behavior when IPv6 is unavailable
          or slow (thinca).

Distribute the waittime across multiple addresses:
- First address: use up to 250ms (RFC 8305 Connection Attempt Delay) or
  half of the total waittime, whichever is smaller
- Middle addresses: divide remaining time equally
- Last address: use all remaining time

This ensures that IPv4 fallback has sufficient time to succeed even when
IPv6 connection attempts fail or timeout.

closes: #19233

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0020: Wrong shortened buffer after :cd with duplicate slashes v9.2.0020
zeertzjq [Wed, 18 Feb 2026 21:27:50 +0000 (21:27 +0000)] 
patch 9.2.0020: Wrong shortened buffer after :cd with duplicate slashes

Problem:  Wrong shortened buffer name after :cd with duplicate slashes.
Solution: Skip over multiple consecutive path separators (zeertzjq).

related: neovim/neovim#37080
closes:  #19444

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): Mention xdg.vim in version9.txt
Christian Brabandt [Wed, 18 Feb 2026 21:24:40 +0000 (21:24 +0000)] 
runtime(doc): Mention xdg.vim in version9.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0019: Hard to configure Vim according to full XDG spec v9.2.0019
Andrey Butirsky [Wed, 18 Feb 2026 21:14:24 +0000 (21:14 +0000)] 
patch 9.2.0019: Hard to configure Vim according to full XDG spec

Problem:  Hard to configure Vim according to full XDG spec
Solution: Include the $VIMRUNTIME/xdg.vim script as an example.
          (Andrey Butirsky).

closes: #19421

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Andrey Butirsky <butirsky@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(syntax-tests): Fail when executable syntax tests are found
Aliaksei Budavei [Wed, 18 Feb 2026 18:35:26 +0000 (18:35 +0000)] 
runtime(syntax-tests): Fail when executable syntax tests are found

The input files with syntax test cases are never compiled or
interpreted on behalf of test runners, just read, and their
parts are rendered in accordance with syntax definitions for
associated languages, to be compared with previously vetted
renderings.  Whether their arbitrary contents will be valid
programs, benign programs, etc., is left for test authors to
decide and verify in their own environments.  As executable
and non-executable files equally qualify for testing and yet
executability is never exercised, and since maintaining
executable files turns out to be a short-lived exception
than common practice, let us persist in keeping syntax files
non-executable and enforce it with a CI check.

closes: #19433

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoREADME.md: mention r/vim and #vim libera
Christoffer Aasted [Wed, 18 Feb 2026 18:29:16 +0000 (18:29 +0000)] 
README.md: mention r/vim and #vim libera

closes: #19440

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0018: high cpu usage with Wayland compositor v9.2.0018
Christoffer Aasted [Wed, 18 Feb 2026 18:13:18 +0000 (18:13 +0000)] 
patch 9.2.0018: high cpu usage with Wayland compositor

Problem:  High cpu usage with Wayland compositor
          (lilydjwg, after v9.2.0010).
Solution: Partly revert patch v9.2.0010 for now
          (Christoffer Aasted)

fixes:  #19448
closes: #19451

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0017: popup: cannot allow to specify transparency v9.2.0017
Yasuhiro Matsumoto [Wed, 18 Feb 2026 17:58:54 +0000 (17:58 +0000)] 
patch 9.2.0017: popup: cannot allow to specify transparency

Problem:  popup: Popup windows do not support a transparency setting.
Solution: Add the "opacity" option to popup windows to support
          transparency when using the GUI or 'termguicolors'
          (Yasuhiro Matsumoto).

closes: #19272

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(less.sh): simplify the script and avoid startup messages
Shane Harper [Wed, 18 Feb 2026 17:30:27 +0000 (17:30 +0000)] 
runtime(less.sh): simplify the script and avoid startup messages

closes: #19445

Signed-off-by: Shane Harper <shane@shaneharper.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0016: popup border not redrawn correctly with wide chars v9.2.0016
Yasuhiro Matsumoto [Wed, 18 Feb 2026 17:15:37 +0000 (17:15 +0000)] 
patch 9.2.0016: popup border not redrawn correctly with wide chars

Problem:  When a popup window's border overwrites part of a wide
          character from another popup, the remaining half loses its
          original attribute (background color) because it is reset to 0.
Solution: Modify screen_line(), screen_puts_len(), and screen_fill() to
          preserve the existing ScreenAttrs value when clearing wide
          character boundaries. Also ensure background data is refreshed
          for transparent popup cells (Yasuhiro Matsumoto).

closes: #19299

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(ccomplete): handle structs from tags file
Christian Brabandt [Wed, 18 Feb 2026 16:37:39 +0000 (17:37 +0100)] 
runtime(ccomplete): handle structs from tags file

fixes: #7292

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agotranslation(ta): Update Tamil Translation
தமிழ் நேரம் [Tue, 17 Feb 2026 19:57:55 +0000 (19:57 +0000)] 
translation(ta): Update Tamil Translation

closes: #19435

Signed-off-by: தமிழ் நேரம் <67970539+TamilNeram@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0015: Vim gets confused by OSC handling v9.2.0015
Foxe Chen [Mon, 16 Feb 2026 22:26:57 +0000 (22:26 +0000)] 
patch 9.2.0015: Vim gets confused by OSC handling

Problem:  Vim gets confused by OSC handling, causing Vim to start in
          search mode (Shane Harper, after v9.1.1703)
Solution: In handle_mapping(), check if we are handling OSC sequences
          and if yes go straight to check_termcode() (Foxe Chen)

fixes:  #19426
closes: #19435

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoproto: make proto doesn't handle bool type correctly
Hirohito Higashi [Mon, 16 Feb 2026 22:20:50 +0000 (22:20 +0000)] 
proto: make proto doesn't handle bool type correctly

closes: #19436

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): Update runtimepath default locations
Andrey Butirsky [Mon, 16 Feb 2026 22:17:06 +0000 (22:17 +0000)] 
runtime(doc): Update runtimepath default locations

Stop mentioning "home directory" in the rtp search locations 1. and 5.,
which is incorrect in case of XDG scheme. $MYVIMDIR is correct, so use
this instead.

closes: #19438

Signed-off-by: Andrey Butirsky <butirsky@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0014: unsafe string functions may lead to buffer overflows v9.2.0014
Yasuhiro Matsumoto [Mon, 16 Feb 2026 22:03:29 +0000 (22:03 +0000)] 
patch 9.2.0014: unsafe string functions may lead to buffer overflows

Problem:  Unsafe string functions may lead to buffer overflows
Solution: Use vim_strncpy() instead of strpcy(), replace sprintf() by
          vim_snprintf() (Yasuhiro Matsumoto)

closes: #19412

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0013: parallel make invocation may break Wayland header generation v9.2.0013
Jan Palus [Mon, 16 Feb 2026 21:46:27 +0000 (21:46 +0000)] 
patch 9.2.0013: parallel make invocation may break Wayland header generation

Problem:  parallel make invocation may break Wayland header generation
Solution: Use single make target to generate Wayland protocol files.
          (Jan Palus)

$(WAYLAND_SRC) contains up to 4 files which, given right timing and
parallelization level, can spawn 4 independent `make` processes during
parallel build. Each process generates same set of files intermittently
leading to inconsistent results. Instead use one common target each
source file depends on.

fixes:  #19419
closes: #19420

Signed-off-by: Jan Palus <jpalus@fastmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0012: Build fails when wayland is not defined v9.2.0012
Christoffer Aasted [Mon, 16 Feb 2026 21:39:57 +0000 (21:39 +0000)] 
patch 9.2.0012: Build fails when wayland is not defined

Problem:  Build fails when wayland is not defined
          (fjaell, after v9.2.0010)
Solution: Add ifdef GDK_WINDOWING_WAYLAND
          (Christoffer Aasted)

fixes:  #19429
closes: #19428

Signed-off-by: Christoffer Aasted <chr.aasted@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0011: A few double semicolons after statement v9.2.0011
Christian Brabandt [Mon, 16 Feb 2026 21:32:29 +0000 (21:32 +0000)] 
patch 9.2.0011: A few double semicolons after statement

Problem:  A few double semicolons after statement
Solution: Remove those, add a codestyle test

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): Update version9.txt, update the description of getwininfo()
Hirohito Higashi [Sun, 15 Feb 2026 18:09:36 +0000 (18:09 +0000)] 
runtime(doc): Update version9.txt, update the description of getwininfo()

closes: #19424

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoFix a few more typos in various files
zeertzjq [Sun, 15 Feb 2026 18:03:37 +0000 (18:03 +0000)] 
Fix a few more typos in various files

closes: #19427

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): correct XDG runtimepath
Andrey Butirsky [Sun, 15 Feb 2026 18:00:52 +0000 (18:00 +0000)] 
runtime(doc): correct XDG runtimepath

There is no `/after` directory.

closes: #19431

Signed-off-by: Andrey Butirsky <butirsky@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0010: Using Wayland compositor is still slow v9.2.0010
Christoffer Aasted [Sun, 15 Feb 2026 17:21:03 +0000 (17:21 +0000)] 
patch 9.2.0010: Using Wayland compositor is still slow

Problem:  Using the Wayland backend in GTK, rendering remains slow due
          to per-line redraws, unnecessary Cairo push/pop groups, and
          scroll operations that allocate new surfaces repeatedly.
Solution: Improve rendering performance (Christoffer Aasted).

This commit does the following:
- Add gui.is_wayland to detect Wayland backend
- Avoid blocking the input loop
- Skip early redraws; let the compositor handle full-screen redraws
- Use CAIRO_OPERATOR_SOURCE to overwrite instead of blend
- Reuse scroll source region for destination scroll region
- Optimize fast scroll-up
- Remove cairo_push_group/pop_group and cairo_clip in scroll path
  to reduce allocations (~50MB saved on 4K fractional scale)

Since Wayland redraws the entire screen between updates (unlike X11),
further performance gains are possible by batching drawing in other code
paths, e.g.:
- message.c: batch lines to avoid scroll
- term.c: batch terminal redraws

These could be refactored later to deferred redraw with Wayland.

closes: #19062

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0009: tests: test_cindent are not ordered v9.2.0009
Christian Brabandt [Sun, 15 Feb 2026 16:38:49 +0000 (16:38 +0000)] 
patch 9.2.0009: tests: test_cindent are not ordered

Problem:  tests: the tests test_cindent_* functions were numbered
          inconsistently, causing them to be executed in wrong order.
Solution: Rename the test_cindent functions with zero-padded numbers.

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(zip): use system() instead of :!
Mao-Yining [Sun, 15 Feb 2026 16:36:29 +0000 (16:36 +0000)] 
runtime(zip): use system() instead of :!

- ':!' is not stable, so use system() to get more consistent behaviour.
- Only warns when using 'pwsh'.
- Remove trailing spaces.

closes: #19370

Co-Authored-by: @lxhillwind
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0008: MS-Windows: font size calculation may be wrong v9.2.0008
Char [Sun, 15 Feb 2026 16:27:52 +0000 (16:27 +0000)] 
patch 9.2.0008: MS-Windows: font size calculation may be wrong

Problem:  MS-Windows: font size calculation may be wrong when font does
          not specify a valid ascent value. (Char, after v9.1.2129)
Solution: Calculate ascent as a ratio of ascent to total font height
          with a fallback if metrics are zero.

Fallback to default value when font does not specify ascent value.

As proposed in https://github.com/vim/vim/pull/19318#issuecomment-3864669253

related: #19318
closes:  #19367

Signed-off-by: Char <peacech@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0007: cindent: recognizing labels within commented lines v9.2.0007
Anttoni Erkkilä [Sun, 15 Feb 2026 16:21:15 +0000 (16:21 +0000)] 
patch 9.2.0007: cindent: recognizing labels within commented lines

Problem:  Comment lines which start like a label are recognized as a
          label and indented based on that.
Solution: Check if the position is in a comment after recognizing a label
          in cin_islabel (Anttoni Erkkilä)

closes: #19397

Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0006: powershell commands wrongly wrapped when executed v9.2.0006
Peter Lustig [Sun, 15 Feb 2026 16:14:11 +0000 (16:14 +0000)] 
patch 9.2.0006: powershell commands wrongly wrapped when executed

Problem:  powershell commands wrongly wrapped when executed
Solution: Use &{ ... } to wrap commands when powershell/pwsh is in use
          (Peter Lustig).

Allow compound commands with 'system()' when 'shell' is 'pwsh'

When the 'shell' option was set to 'powershell' or 'pwsh' and the
'system()' vimscript function was called with an argument containing two
or more shell commands (delimited by ';' or '&'), the function would
always fail with 'E282'.

The cause of the error was that VIM would wrap the shell command string
with parentheses (to allow the entire output to be redirected to a
temporary file for capturing) before actually passing it to the
PowerShell process for execution.

Unlike the typical shell that uses parentheses to group commands (and
possibly spawn a subshell), PowerShell uses them to resolve a single
command (pipeline) to an expression. To group multiple commands with
PowerShell, you must instead wrap them with either the subexpression
operator '$(...)' or an immediately evaluated script block '& { ... }'.
The latter option may be more efficient since it does not buffer its
output like for the former one does.

closes: #19401

Signed-off-by: Peter Lustig <tiamatX18@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0005: Coverity reports unreachable code v9.2.0005
Christian Brabandt [Sun, 15 Feb 2026 16:07:27 +0000 (16:07 +0000)] 
patch 9.2.0005: Coverity reports unreachable code

Problem:  Coverity reports unreachable code, CID: 1681310
Solution: Drop the ternary checking for non-NULL of from_encoding_raw.

closes: #19402

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(fstab): Add cgroup2 to valid device types
Radu Dineiu [Sun, 15 Feb 2026 16:05:41 +0000 (16:05 +0000)] 
runtime(fstab): Add cgroup2 to valid device types

closes: #19403

Signed-off-by: Radu Dineiu <radu.dineiu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(hare): update syntax script for Hare 0.26.0
Amelia Clarke [Sun, 15 Feb 2026 16:03:52 +0000 (16:03 +0000)] 
runtime(hare): update syntax script for Hare 0.26.0

closes: #19398

Signed-off-by: Amelia Clarke <selene@perilune.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(vim): Error codes should not be highlighed with vim9CommentTitle
Peter Kenny [Sun, 15 Feb 2026 15:59:36 +0000 (15:59 +0000)] 
runtime(vim): Error codes should not be highlighed with vim9CommentTitle

closes: #19390

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(netrw): Use right file system commands initialization for Windows
Miguel Barro [Sun, 15 Feb 2026 15:50:24 +0000 (15:50 +0000)] 
runtime(netrw): Use right file system commands initialization for Windows

closes: #19287
fixes:  #12290

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0004: Changing hidden prompt buffer cancels :startinsert/:stopinsert v9.2.0004
zeertzjq [Sun, 15 Feb 2026 15:38:19 +0000 (15:38 +0000)] 
patch 9.2.0004: Changing hidden prompt buffer cancels :startinsert/:stopinsert

Problem:  Changing hidden prompt buffer cancels :startinsert/:stopinsert
          (after 9.0.1439).
Solution: Don't change mode for a prompt buffer in an autocommand
          window (zeertzjq).

closes: #19410

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0003: tests: invalid indent in message.c v9.2.0003
Christian Brabandt [Sun, 15 Feb 2026 15:35:37 +0000 (15:35 +0000)] 
patch 9.2.0003: tests: invalid indent in message.c

Problem:  tests: invalid indent in message.c
          (after: v9.2.0002)
Solution: Use tabs for indent

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoMakefile: dosrt target fails because of duplicate lang directories
Christian Brabandt [Sun, 15 Feb 2026 15:31:26 +0000 (15:31 +0000)] 
Makefile: dosrt target fails because of duplicate lang directories

Problem:  Makefile: dosrt target fails because of duplicate lang directories
Solution: Rename the parent lang/ directory to readme/

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(sh): fix spurious nextgroup=shComment on shEscape
Bozhidar Batsov [Sun, 15 Feb 2026 14:53:55 +0000 (14:53 +0000)] 
runtime(sh): fix spurious nextgroup=shComment on shEscape

Remove `nextgroup=shComment` from the `shEscape` syntax pattern.
This was causing `#` characters after escape sequences inside
double-quoted strings to be misinterpreted as comments, breaking
highlighting for the rest of the file.

Add a test case for escaped characters followed by # in double quotes.

fixes:  #19053
closes: #19414

Signed-off-by: Bozhidar Batsov <bozhidar@batsov.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0002: str2specialbuf() can be improved v9.2.0002
Yasuhiro Matsumoto [Sun, 15 Feb 2026 14:48:54 +0000 (14:48 +0000)] 
patch 9.2.0002: str2specialbuf() can be improved

Problem:  str2specialbuf() can be improved
Solution: Optimize str2specialbuf function in message.c
          (Yasuhiro Matsumoto)

closes: #19415

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoREADME: Updated version from 91 to 92 in various READMEs
mikoto2000 [Sun, 15 Feb 2026 14:26:30 +0000 (14:26 +0000)] 
README: Updated version from 91 to 92 in various READMEs

closes: #19404

Signed-off-by: mikoto2000 <mikoto2000@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.1.0001: tests: Test_popup_setbuf() fails v9.2.0001
Christian Brabandt [Sun, 15 Feb 2026 14:22:29 +0000 (14:22 +0000)] 
patch 9.1.0001: tests: Test_popup_setbuf() fails

Problem:  tests: Test_popup_setbuf fails, because the dump file contains
          a reference to Vim version 9.1 (after v9.2.0000)
Solution: Replace Version number by 9.1 always.

closes: #19406

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.2.0: Need a new Vim release v9.2.0 v9.2.0000
Christian Brabandt [Sat, 14 Feb 2026 14:47:24 +0000 (14:47 +0000)] 
patch 9.2.0: Need a new Vim release

Problem:  Need a new Vim release
Solution: Release Vim 9.2 🎉

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): Update todo.txt and remove solved issues
Christian Brabandt [Sat, 14 Feb 2026 10:19:14 +0000 (10:19 +0000)] 
runtime(doc): Update todo.txt and remove solved issues

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agoruntime(doc): Clarify :bd behaviour
Christian Brabandt [Fri, 13 Feb 2026 20:53:49 +0000 (20:53 +0000)] 
runtime(doc): Clarify :bd behaviour

closes: #19389

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 weeks agopatch 9.1.2148: [security]: Buffer overflow in netbeans interface v9.1.2148
Christian Brabandt [Fri, 13 Feb 2026 09:27:12 +0000 (10:27 +0100)] 
patch 9.1.2148: [security]: Buffer overflow in netbeans interface

Problem:  [security]: Buffer overflow in netbeans special_keys() handling
Solution: Limit writing to max KEYBUFLEN bytes to prevent writing out of
          bounds.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-9w5c-hwr9-hc68

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): Fix typos in version9.txt
Bozhidar Batsov [Fri, 13 Feb 2026 16:17:22 +0000 (16:17 +0000)] 
runtime(doc): Fix typos in version9.txt

closes: #19392

Signed-off-by: Bozhidar Batsov <bozhidar@batsov.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(systemverilog): use correct matchit pattern for the covergroup block
TG [Fri, 13 Feb 2026 16:14:27 +0000 (16:14 +0000)] 
runtime(systemverilog): use correct matchit pattern for the covergroup block

A covergroup start with the "covergroup" keyword and ends with the
"endgroup" keyword. "group" is not even a reserved keyword in systemverilog.

Reference:
https://www.chipverify.com/systemverilog/systemverilog-covergroup-coverpoint#covergroup
https://github.com/MikePopoloski/slang/blob/master/docs/grammar.md#covergroup_declaration

closes: #19393

Signed-off-by: TG <tarik.graba@telecom-paris.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): Fix typos in markdown READMEs
Bozhidar Batsov [Fri, 13 Feb 2026 16:08:24 +0000 (16:08 +0000)] 
runtime(doc): Fix typos in markdown READMEs

closes: #19394

Signed-off-by: Bozhidar Batsov <bozhidar@batsov.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(go,gleam): Remove 'formatprg' from ftplugins
Doug Kearns [Fri, 13 Feb 2026 16:05:17 +0000 (16:05 +0000)] 
runtime(go,gleam): Remove 'formatprg' from ftplugins

Effective use of 'formatprg' requires both an understanding of the
specific capabilities of the formatting tool and Vim's formatting
commands.  This is overly burdensome for some users.

Rather than address each complaint on a filetype by filetype basis,
remove 'formatprg' settings from all ftplugins.

It is expected that formatter plugins will be available in the near
future as a better solution. See #17145 (Add "formatter" feature using
"compiler" as a template).

Note: 'formatprg' will be removed from older ftplugins after the release
of Vim 9.2. The setting was added to the go and gleam ftplugins during
the current development cycle and have not been included in a Vim
release.

See: #18650 (rust.vim: stop setting formatprg to rustfmt)

closes: #19108

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(sudoers): highlight usernames with hyphens, digits, underscores
Bozhidar Batsov [Fri, 13 Feb 2026 15:49:02 +0000 (15:49 +0000)] 
runtime(sudoers): highlight usernames with hyphens, digits, underscores

The username/group/netgroup patterns used \l\+ which only matched
lowercase letters. Linux usernames commonly contain hyphens, digits,
and underscores (e.g. www-data, deploy01, test_user).

Update the pattern to \l[-a-z0-9_]* to allow matching the additional
characters "-_" and numbers.

fixes:  #18963
closes: #19396

Signed-off-by: Bozhidar Batsov <bozhidar@batsov.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): Use ellipses for overlength example comments at :help vim9.txt
Doug Kearns [Fri, 13 Feb 2026 15:42:42 +0000 (15:42 +0000)] 
runtime(doc): Use ellipses for overlength example comments at :help vim9.txt

Use ellipses, matching the file's general style, rather than hard
truncation of overlength tail comments in examples.

closes: #19298

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(css): Add missing numeric units
DuckAfire [Fri, 13 Feb 2026 08:02:28 +0000 (09:02 +0100)] 
runtime(css): Add missing numeric units

- Add missing numeric units to css syntax script
  (baseline 2015, 2020, 2022, 2023, 2026):
    dvb, dvh, dvi, dvmax, dvmin, dvw ic,
    lvb, lvh, lvi, lvmax, lvmin, lvw, svb, svh,
    svi, svmax, svmin, svw, vb, vi, x, cap, lh,
    rlh, rcap, rch, rex, ric

closes: #19325

Signed-off-by: DuckAfire <155199080+duckafire@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoinstallman: Update the sed patterns in installman.sh
Julio B [Fri, 13 Feb 2026 07:50:52 +0000 (08:50 +0100)] 
installman: Update the sed patterns in installman.sh

Problem: Installing man pages does not change the placeholder file paths
Solution: Update the sed patterns in installman.sh

Additionally we remove the sed command to update the path to the ps Vim
files for those reasons:
- All the postscript files were moved to the print/ subdirectory in
  Commit e37d50a
- the sed command was wrongly quoting $vimloc so would wrongly try to
  search for the literal value $vimloc instead of using the expanded
  value.

related: ce6fe84db21f
closes:  #19382

Signed-off-by: Julio B <julio.bacel@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2147: Compile warning in strings.c v9.1.2147
John Marriott [Fri, 13 Feb 2026 07:45:29 +0000 (08:45 +0100)] 
patch 9.1.2147: Compile warning in strings.c

Problem:  Compile warning in strings.c
Solution: Use const qualifier (John Marriott).

closes: #19387

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): various netrw related corrections
Peter Kenny [Fri, 13 Feb 2026 07:29:30 +0000 (08:29 +0100)] 
runtime(doc): various netrw related corrections

closes: #19391

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2146: filetype: cel files are not recognized v9.1.2146
Stefan VanBuren [Thu, 12 Feb 2026 17:22:42 +0000 (18:22 +0100)] 
patch 9.1.2146: filetype: cel files are not recognized

Problem:  filetype: cel files are not recognized
Solution: Detect *.cel files as cel filetype (Stefan VanBuren).

Reference:
https://cel.dev/
https://github.com/google/cel-java/blob/e36c49febc36bcb16ef4f07274fcc8873c1eee59/testing/src/test/resources/expressions/coverage_test_case/simple_expression.cel
https://github.com/elastic/mito/blob/d0d2dbabae5c563dd943c61fd52992acb655942d/example.cel

closes: #19381

Signed-off-by: Stefan VanBuren <svanburen@buf.build>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(sh): Fix some ksh-specific deficiencies in syntax script
Johnothan King [Thu, 12 Feb 2026 17:17:59 +0000 (18:17 +0100)] 
runtime(sh): Fix some ksh-specific deficiencies in syntax script

- Amend syntax highlighting to allow for ksh93 discipline function names
  (e.g. 'foo.get()') and mksh's odd function naming idiosyncrasies
  (shNamespaceOne was introduced to enforce stricter naming rules for
  ksh93 namespaces).
- Remove 'bind' from ksh93 syntax (such a builtin has never been
  implemented in ksh93).
- 'xgrep' is only available in ksh93v- as an alternative way to
  invoke the builtin 'grep -X', so reflect that in the syntax
  highlighting.
- Forbid bash-style 'function name() {' syntax when highlighting
  ksh88 and ksh93 scripts.
- Fix bug causing ' ()' to be incorrectly validated in mksh scripts.
- Add the many ksh93/ksh2020 .sh.* variables to the list of special
  variables.
- Amend iskeyword to allow '.' so that '.sh.tilde.get' and such are
  valid function names/variable names. (For mksh functions starting
  with odd characters like '%' and '@' this would probably have too
  many bad side effects, so I've omitted such a change for that shell.)
- Add new syntax tests and regenerate syntax dump files

closes: #19383

Signed-off-by: Johnothan King <johnothanking@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(sshdconfig): Update syntax
Fionn Fitzmaurice [Thu, 12 Feb 2026 17:13:37 +0000 (18:13 +0100)] 
runtime(sshdconfig): Update syntax

We add new key exchange algorithms and new enums for PubkeyAuthOptions.

We also add new keywords from sshd_config.5 not present here and remove
keywords present here that are not present in the official
documentation, with the exception of those patched in by Debian and
Fedora, as well as ChallengeResponseAuthentication which is deprecated
but still functional.

closes: #19347

Signed-off-by: Fionn Fitzmaurice <git@fionn.computer>
Signed-off-by: Jakub Jelen <jakuje@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2145: intstalltutor Makefile target does not create the tutor/sv dir v9.1.2145
Ross Burton [Thu, 12 Feb 2026 16:50:03 +0000 (17:50 +0100)] 
patch 9.1.2145: intstalltutor Makefile target does not create the tutor/sv dir

Problem:  intstalltutor Makefile target does not create the tutor/sv dir
Solution: Add the missing mkdir() calls to the Makefile (Ross Burton)

The installtutor target doesn't explicitly create the Swedish directory
that it is going to put files into:

  make[1]: Entering directory 'vim-9.1.2128/src'
  /bin/sh install-sh -c -d DESTDIR/usr/share/vim/vim91
  chmod 755 DESTDIR/usr/share/vim/vim91
  /bin/sh install-sh -c -d DESTDIR/usr/share/vim/vim91/tutor/en
  chmod 755 DESTDIR/usr/share/vim/vim91/tutor/en
  /bin/sh install-sh -c -d DESTDIR/usr/share/vim/vim91/tutor/sr
  chmod 755 DESTDIR/usr/share/vim/vim91/tutor/sr
  /bin/sh install-sh -c -d DESTDIR/usr/share/vim/vim91/tutor/it
  chmod 755 DESTDIR/usr/share/vim/vim91/tutor/it
  /bin/sh install-sh -c -d DESTDIR/usr/share/vim/vim91/tutor/ru
  chmod 755 DESTDIR/usr/share/vim/vim91/tutor/ru
  cp ../runtime/tutor/README* ../runtime/tutor/tutor* DESTDIR/usr/share/vim/vim91/tutor
  cp ../runtime/tutor/en/* DESTDIR/usr/share/vim/vim91/tutor/en/
  cp ../runtime/tutor/it/* DESTDIR/usr/share/vim/vim91/tutor/it/
  cp ../runtime/tutor/ru/* DESTDIR/usr/share/vim/vim91/tutor/ru/
  cp ../runtime/tutor/sr/* DESTDIR/usr/share/vim/vim91/tutor/sr/
  cp ../runtime/tutor/sv/* DESTDIR/usr/share/vim/vim91/tutor/sv/
  cp: target 'DESTDIR/usr/share/vim/vim91/tutor/sv/': No such file or directory

Add the missing dependency on $(DEST_TUTOR)/sv to ensure this directory
is created.

closes: #19385

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(django): add syntax support for partial
tecis [Thu, 12 Feb 2026 16:46:54 +0000 (17:46 +0100)] 
runtime(django): add syntax support for partial

Add djangoStatement integrated in version 6. 'partialdef',
'endpartialdef', 'partial'.

[Template Reference: partial](https://docs.djangoproject.com/en/6.0/ref/templates/builtins/#partial)((introduced in Django 6.0)
and 'filter'.

closes: #19386

Signed-off-by: tecis <67809811+tecis@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agotests(commondumps): Mark and fold lines in screendump views
Aliaksei Budavei [Tue, 10 Feb 2026 21:55:36 +0000 (22:55 +0100)] 
tests(commondumps): Mark and fold lines in screendump views

- Dynamically set mark "`" to pair disparate lines and
  initially set marks "`a", "`b", etc. for as many lines in
  the difference part.  Note that users are free to delete
  or change any set alphabetic marks without it affecting
  the dynamic updating of mark "`"; alphabetic marks only
  serve to help with arriving at "summary" lines, e.g.
  "`a````".
- Create a fold for the difference part (but defer to users
  the closing of it) so that disparate lines that fit real
  estate can be viewed at the same time, as an alternative
  to the builtin "s" keystroke that swaps top and bottom
  parts in place.
- Fold and mark lines with the "git difftool" extension too.

closes: #19380

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(vimgoto): Fix gf in Vim script
thinca [Tue, 10 Feb 2026 21:52:58 +0000 (22:52 +0100)] 
runtime(vimgoto): Fix gf in Vim script

Problem: `gf` in Vim script fails if multiple target files exist.
Solution: Use globpath() which returns an array.

In a Vim script, `gf` on `some#func()` will jump to `autoload/some.vim`.
In this case, if there are multiple `autoload/foo.vim`s in
'runtimepath', `globpath(&runtimepath, path)` will return multiple
paths, separated by newlines.
As a result, the second and subsequent paths will be executed as
commands in `autoload/vimgoto.vim:195`, causing an error.
This change fixes this issue by making the result of `globpath()` an
array.

closes: #19379

Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(java): Allow for org.TopLevelType<T>.NestedType return types
Aliaksei Budavei [Tue, 10 Feb 2026 21:48:57 +0000 (22:48 +0100)] 
runtime(java): Allow for org.TopLevelType<T>.NestedType return types

closes: #19349

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): Fix typo in runtime/doc/cmdline.txt
Hirohito Higashi [Tue, 10 Feb 2026 21:46:22 +0000 (22:46 +0100)] 
runtime(doc): Fix typo in runtime/doc/cmdline.txt

closes: #19378

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(ruby): Update for Vim 9.2 release
Doug Kearns [Tue, 10 Feb 2026 13:12:22 +0000 (14:12 +0100)] 
runtime(ruby): Update for Vim 9.2 release

closes: #19316

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): clarify the use of 'iskeyword' option value
Christian Brabandt [Mon, 9 Feb 2026 20:51:58 +0000 (20:51 +0000)] 
runtime(doc): clarify the use of 'iskeyword' option value

In particular, also mention the difference between the regex atom \k and
what Vim considers for a word character.

closes: #18688

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2144: garbage collection may invalidate the recorded buffer changes v9.1.2144
Paul Ollis [Mon, 9 Feb 2026 19:30:14 +0000 (19:30 +0000)] 
patch 9.1.2144: garbage collection may invalidate the recorded buffer changes

Problem:  When garbage collection runs, the list of recorded buffer
  changes may be incorrectly freed (Sainnhe Park).
Solution: In garbage_collect(), iterate through all buffers and call
          set_ref_in_list() for b_recorded_changes to ensure the list
          and its contents are marked as reachable (Paul Ollis).

fixes:  #19300
closes: #19375

Signed-off-by: Paul Ollis <paul@cleversheep.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): Mark 'scrollfocus' as non-functional
Christian Brabandt [Mon, 9 Feb 2026 19:21:02 +0000 (19:21 +0000)] 
runtime(doc): Mark 'scrollfocus' as non-functional

related: #19368

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2143: wrong rendering of popups when overlapping wide char v9.1.2143
Yasuhiro Matsumoto [Mon, 9 Feb 2026 19:08:24 +0000 (19:08 +0000)] 
patch 9.1.2143: wrong rendering of popups when overlapping wide char

Problem:  When a popup window partially overlaps a wide character
          it results in truncated or garbage display.
Solution: When a wide character is partially blocked by a popup, clear both
          cells in the screen buffer to prevent garbage (Yasuhiro Matsumoto).

closes: #19271

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agopatch 9.1.2142: MS-Windows: mouse scroll events not handled for popups v9.1.2142
Mao-Yining [Mon, 9 Feb 2026 18:49:48 +0000 (18:49 +0000)] 
patch 9.1.2142: MS-Windows: mouse scroll events not handled for popups

Problem:  MS-Windows: mouse scroll events not handled for popups
Solution: Do not return early (Mao-Yining)

Ensure mouse wheel events on popup windows are properly processed by
sending the corresponding key messages. Previously, early returns
prevented normal event flow, causing popup windows to ignore scroll
input.

fixes:  #19353
closes: #19369

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 weeks agoruntime(doc): add Swedish entries to Make_all.mak, add conversion rule to Makefile
Daniel Nylander [Mon, 9 Feb 2026 18:35:43 +0000 (18:35 +0000)] 
runtime(doc): add Swedish entries to Make_all.mak, add conversion rule to Makefile

closes: #19373

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(nginx): Update nginx syntax script
Chris Aumann [Sun, 8 Feb 2026 21:24:00 +0000 (21:24 +0000)] 
runtime(nginx): Update nginx syntax script

closes: #19374

Signed-off-by: Chris Aumann <me@chr4.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(nginx): highlight Lua in set_by_lua_block in syntax script
Josef Schönberger [Sun, 8 Feb 2026 21:19:20 +0000 (21:19 +0000)] 
runtime(nginx): highlight Lua in set_by_lua_block in syntax script

The set_by_lua_block directive of the Lua module takes an additional
variable as an argument which currently breaks the detection of inline
Lua blocks. For example:

    set_by_lua_block $myvar {
        return tonumber(ngx.var.myothervar)-1
    }

closes: #19362

Signed-off-by: Josef Schönberger <josef.schoenberger@tum.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2141: Truncation when serializing libsodium encryption parameters v9.1.2141
Yasuhiro Matsumoto [Sun, 8 Feb 2026 21:04:51 +0000 (21:04 +0000)] 
patch 9.1.2141: Truncation when serializing libsodium encryption parameters

Problem:  Truncation when serializing libsodium encryption parameters.
Solution: Correctly cast to long long type (Yasuhiro Matsumoto).

fixes:  #19248
closes: #19357

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(gdb): Update syntax and ftplugin
Doug Kearns [Sun, 8 Feb 2026 20:51:47 +0000 (20:51 +0000)] 
runtime(gdb): Update syntax and ftplugin

- Change syntax file maintainer.
- Add Guile and Python command highlighting.
- Update command list to version 12.
- Add foldable regions for the commands 'define', 'if' and 'while'
  multiline commands.
- Support documented partial command names.
- Add matchit, browsefilter, and comment formatting support.
- Support embedded C in compiler {code|print} commands.
- Add largely complete settings highlighting and folding.
- Add syntax tests (incomplete).

Thanks to Claudio Fleiner for many years of maintenance.

closes: #10649

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotranslation(ru): Update Russian translation and fix typos in tutor
Anton Malinskiy [Sat, 7 Feb 2026 22:00:32 +0000 (22:00 +0000)] 
translation(ru): Update Russian translation and fix typos in tutor

closes: #19359

Signed-off-by: Anton Malinskiy <anton@malinskiy.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoRevert "CI: Manage multibyte characters in syntax tests"
Aliaksei Budavei [Sat, 7 Feb 2026 15:48:33 +0000 (15:48 +0000)] 
Revert "CI: Manage multibyte characters in syntax tests"

This reverts commit 0fde6aebddef5cb0428e85040994ba45e55cba99.

With "v9.1.2134" applied, arbitrary multibyte characters are
not replaced with spurious U+FFFD characters (typically when
the host system is under load); U+FFFD characters that are
intentionally written in an input file continue to remain
present for later output and comparison.  The workaround of
"v9.1.1592~3" is no longer necessary.

Also prefer "page_nr" to "nr" in syntax/testdir/runtest.vim

closes: #19348

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2140: tests: Test_wayland_protocol_error_overflow() fails v9.1.2140
Christian Brabandt [Sat, 7 Feb 2026 15:41:43 +0000 (15:41 +0000)] 
patch 9.1.2140: tests: Test_wayland_protocol_error_overflow() fails

Problem:  tests: Test_wayland_protocol_error_overflow() fails
          (after v9.1.2139)
Solution: try/catch the expected error

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(python3complete): remove trailing white space
Mao-Yining [Sat, 7 Feb 2026 15:28:30 +0000 (15:28 +0000)] 
runtime(python3complete): remove trailing white space

related: #19354

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(compiler): fix space escape in pyright
Mao-Yining [Sat, 7 Feb 2026 15:28:02 +0000 (15:28 +0000)] 
runtime(compiler): fix space escape in pyright

closes: #19354

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2139: Buffer overflow in :wlrestore command v9.1.2139
Christian Brabandt [Sat, 7 Feb 2026 15:07:32 +0000 (15:07 +0000)] 
patch 9.1.2139: Buffer overflow in :wlrestore command

Problem:  Buffer overflow in :wlrestore command, caused by assuming
          wrong buffer length in vwl_log_handler() (Seungyeon Park)
Solution: Use correct buffer size (512 bytes) in vim_vsnprintf()
          to properly truncate long messages.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2138: win_execute() and 'autochdir' can corrupt buffer name v9.1.2138
Ingo Karkat [Sat, 7 Feb 2026 10:41:32 +0000 (10:41 +0000)] 
patch 9.1.2138: win_execute() and 'autochdir' can corrupt buffer name

Problem:  With 'autochdir' win_execute() can corrupt the buffer name,
          causing :write to use wrong path.
Solution: Save and restore b_fname when 'autochdir' is active
          (Ingo Karkat).

This is caused by a bad interaction of the 'autochdir' behavior,
overriding of the current directory via :lchdir, and the temporary
window switching done by win_execute(), manifesting when e.g. a custom
completion inspects other buffers:
1. In the initial state after the :lcd .. we have curbuf->b_fname =
   "Xsubdir/file".
2. do_autochdir() is invoked, temporarily undoing the :lcd .., changing
   back into the Xsubdir/ subdirectory.
3. win_execute() switches windows, triggering win_enter_ext() →
   win_fix_current_dir() → shorten_fnames(TRUE)
4. shorten_fnames() processes *all* buffers
5. shorten_buf_fname() makes the filename relative to the current
   (wrong) directory; b_fname becomes "file" instead of "Xsubdir/file"
6. Directory restoration correctly restores working directory via
   mch_chdir() (skipping a second do_autochdir() invocation because
   apply_acd is FALSE), but b_fname remains corrupted, with the
   "Xsubdir/" part missing.
7. expand("%:p") (and commands like :write) continue to use the
   corrupted filename, resolving to a wrong path that's missing the
   "Xsubdir/" part.

To fix the problem the short filename is saved if its in effect (i.e.
pointed to by curbuf->b_fname) and 'autochdir' happened. It's then
restored in case of a local cwd override. The conditions limit this
workaround to when 'autochdir' is active *and* overridden by a :lchdir.

closes: #19343

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Ingo Karkat <swdev@ingo-karkat.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2137: test: Update tests for OpenBSD v9.1.2137
Kevin Goodsell [Sat, 7 Feb 2026 10:30:33 +0000 (10:30 +0000)] 
patch 9.1.2137: test: Update tests for OpenBSD

Problem:  Some tests are not valid on OpenBSD.
Solution: Add CheckNotOpenBSD, use it to skip certain tests
          (Kevin Goodsell).

Test_readdirex_sort performs locale-dependent sorting. OpenBSD has
minimal locale support.

Test_stdin_no_newline hangs on OpenBSD and FreeBSD. I don't know exactly
why, but it may be due to bash not exiting at the end of the test. This
is skipped in the FreeBSD CI runs because bash is not installed.

Test_detect_fifo uses /dev/fd/ files (via process substitution) as
FIFOs. On OpenBSD the files in /dev/fd are not FIFOs.

closes: #19351

Signed-off-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.2136: :tab sbuffer may close old tabpage v9.1.2136
zeertzjq [Sat, 7 Feb 2026 10:20:51 +0000 (10:20 +0000)] 
patch 9.1.2136: :tab sbuffer may close old tabpage

Problem:  :tab sbuffer may close old tabpage if BufLeave autocommand
          splits window (after 9.1.0143).
Solution: Only close other windows if the buffer will be unloaded
          (zeertzjq).

related: neovim/neovim#37749
closes: #19352

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(tar): Make the path traversal detection more robust
Christian Brabandt [Sat, 7 Feb 2026 10:12:34 +0000 (10:12 +0000)] 
runtime(tar): Make the path traversal detection more robust

closes: #19341

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): clarify term_cols allowed range in terminal.txt
Kalin KOZHUHAROV [Fri, 6 Feb 2026 14:55:12 +0000 (14:55 +0000)] 
runtime(doc): clarify term_cols allowed range in terminal.txt

Patch 9.0.1527 (related issue: vim/vim#12362) introduced range checking
for `term_cols` parameter of the various terminal related functions, but
did not update the documentation. This is the fix, hopefully I found
everything that mentions is. Also improve the style for `term_rows` to
match.

Code reference ( https://github.com/vim/vim/blob/master/src/job.c#L456 ):
if (opt->jo_term_cols < 0 || opt->jo_term_cols > 1000)

closes: #19346

Signed-off-by: Kalin Kozhuharov <kalin@thinrope.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Add Swedish to help-translated list
Daniel Nylander [Fri, 6 Feb 2026 14:44:18 +0000 (14:44 +0000)] 
runtime(doc): Add Swedish to help-translated list

Swedish Vim documentation is available at:
https://github.com/yeager/vimdoc-sv
https://www.vim.org/translations.php

Translated by Daniel Nylander.

closes: #19344

Signed-off-by: Daniel Nylander <daniel@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Remove Swedish translation help.svx
Christian Brabandt [Fri, 6 Feb 2026 10:21:10 +0000 (10:21 +0000)] 
runtime(doc): Remove Swedish translation help.svx

The translation file should not be included with Vims runtime files.
Translated help files should be made available via a separate project,
like what has been mentioned here:
https://www.vim.org/translations.php

related: #19321

Signed-off-by: Christian Brabandt <cb@256bit.org>