]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
8 days agoAlways force LF line endings in old test .ok files
Muraoka Taro [Tue, 6 Jan 2026 10:30:09 +0000 (10:30 +0000)] 
Always force LF line endings in old test .ok files

Problem: When running tests on a source tree checked out with git for
Windows, the old tests fail.

The Git for Windows installer installs git with core.autocrlf=true by
default. If you check out, build, and run tests using such a git, the
old test .ok files will likely fail because they use CRLF line endings.
Tests on Windows assume that .ok files use LF line endings, and
appropriately convert the line endings of related files.  This
assumption breaks down when .ok files use CRLF.

Solution: Force LF line endings for old test .ok files in the
.gitattributes file.  Related to that, we've stopped explicitly
specifying line endings when checking out in CI, since this is no longer
necessary.

While at it, also fix a typo in the comment of the gitattributes file.

closes: #19086

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(cangjie): Update syntax script
Neila [Tue, 6 Jan 2026 10:18:09 +0000 (10:18 +0000)] 
runtime(cangjie): Update syntax script

This commit updates `syntax/cangjie.vim` to match the latest `std.core`
library:

New Features:
* Documentation: Added highlighting for documentation keywords (e.g., `@param`, `@return`).
* Standard Library: Added highlighting for `std.core` functions, interfaces, and classes.
* Exceptions: Added highlighting for standard exception types.
* FFI Support: Added highlighting for C interoperability types (e.g., `CPointer`).

Improvements:
* Configuration: Added a unified switch (`s:enabled('builtin')`) for standard library highlighting.
* Type System: Updated `Int` and `UInt` aliases.
* Interpolation: Enabled standard library highlighting inside string interpolation.
* Cleanup: Removed non-core types like `ArrayList` and `HashMap`.

closes: #19085

Signed-off-by: Neila <wu.junkai@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2054: Can't unpack tuple from imported function v9.1.2054
Yegappan Lakshmanan [Tue, 6 Jan 2026 10:13:02 +0000 (10:13 +0000)] 
patch 9.1.2054: Can't unpack tuple from imported function

Problem:  Can't unpack tuple from imported function
          (Mao-Yining)
Solution: Support multi-variable assignment from a tuple returned by an
          imported function (Yegappan Lakshmanan)

fixes:  #19080
closes: #19083

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2053: MS-Windows: May use wrong find command v9.1.2053
Muraoka Taro [Tue, 6 Jan 2026 10:04:59 +0000 (10:04 +0000)] 
patch 9.1.2053: MS-Windows: May use wrong find command

Problem:  If another find.exe derived from findutils is installed on
          Windows, unintended behavior will occur. If MSYS2 is installed and
          prioritized over the system path, then find.exe derived from
          findutils will be launched during build, resulting in an
          unintended warning message.
Solution: Specify the absolute path including SYSTEMROOT to launch
          find.exe (Muraoka Taro)

closes: #19081

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2052: Compile error when disabling linebreak feature v9.1.2052
Matthias Rader [Tue, 6 Jan 2026 09:58:04 +0000 (09:58 +0000)] 
patch 9.1.2052: Compile error when disabling linebreak feature

Problem:  Compile error when disabling linebreak feature
Solution: Adjust ifdefs (Matthias Rader)

When compiling with all features except for linebreak, there were some
compiler errors. By slightly modifying some preprocessor conditions,
compiling without the linebreak feature should work as expected.

closes: #19068

Signed-off-by: Matthias Rader <matthias.rader@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2051: tests: fix Test_cd_completion fails in Appveyor v9.1.2051
Muraoka Taro [Mon, 5 Jan 2026 08:13:18 +0000 (08:13 +0000)] 
patch 9.1.2051: tests: fix Test_cd_completion fails in Appveyor

Problem:  Test_cd_completion test fails in Appveyor. In Appveyor, a path
          containing spaces was selected as the test target. But the
          comparison failed because spaces were not taken into account
          (after v9.1.2050)
Solution: Escape spaces in paths for comparison (Muraoka Taro)

closes: #19087

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2050: tests: Test_cd_completion may fail v9.1.2050
Muraoka Taro [Sat, 3 Jan 2026 23:44:35 +0000 (23:44 +0000)] 
patch 9.1.2050: tests: Test_cd_completion may fail

Problem:  tests: Test_cd_completion() may fail depending on the contents
          of the root directory of the current drive on Windows.
          readdir() may return a directory that cannot "cd" to, causing
          this test to fail. An example of such a directory is
          "System Volume Information" which only admin can "cd" to.
Solution: When determining the directory to use for testing, use the
          directory that we actually "cd" to successfully.
          In addition, directories with '$' in their names are also
          excluded, as they are considered environment variables during
          completion and do not work as expected.
          Example: "$RECYCLE.BIN" (Muraoka Taro).

closes: #19078

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2049: Vim9: unexpected E1209 error v9.1.2049
Hirohito Higashi [Sat, 3 Jan 2026 17:16:23 +0000 (17:16 +0000)] 
patch 9.1.2049: Vim9: unexpected E1209 error

Problem:  Vim9: unexpected E1209 error
Solution: Fix error message (Hirohito Higashi)

closes: #19067

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2048: MS-Windows: backspace behavior wrong with ConPTY v9.1.2048
Muraoka Taro [Sat, 3 Jan 2026 17:06:03 +0000 (17:06 +0000)] 
patch 9.1.2048: MS-Windows: backspace behavior wrong with ConPTY

Problem:  Pressing backspace in ConPTY on Windows deletes an entire
          word, not just a single character. This is the same as
          pressing Alt + backspace in cmd.exe.
Solution: When using ConPTY on Windows, the `VTERM_KEY_BACKSPACE` key is
          now sent when the Backspace key or Ctrl+H is detected.
          (Muraoka Taro)

Historically, Windows has assigned the code 0x7F (DEL) to backspace, and
it seems necessary to follow that behavior when using ConPTY.

closes: #19065

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2047: MS-Windows: style issue in gui_w32.c v9.1.2047
Mao-Yining [Sat, 3 Jan 2026 17:00:09 +0000 (17:00 +0000)] 
patch 9.1.2047: MS-Windows: style issue in gui_w32.c

Problem:  MS-Windows: style issue in gui_w32.c
Solution: Fix indentation, drop unnecessary braces
          (Mao-Yining)

closes: #19073

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2046: MS-Windows: compile warnings v9.1.2046
Mao-Yining [Sat, 3 Jan 2026 16:51:47 +0000 (16:51 +0000)] 
patch 9.1.2046: MS-Windows: compile warnings

Problem:  MS-Windows: compile warnings in os_win32.c,
          acp_to_enc() requires char_u* but others require char*
          (John Marriott, after v9.1.2013)
Solution: Cast the variables (Mao-Yining)

closes: #19074

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime(doc): Clarify visual mark behavior in getpos(), setpos()
Larson, Eric [Sat, 3 Jan 2026 16:46:59 +0000 (16:46 +0000)] 
runtime(doc): Clarify visual mark behavior in getpos(), setpos()

Add documentation notes explaining that visual marks '< and '> have
different behaviors in getpos() and setpos().

Also fix a small typo.

closes: #19070

Signed-off-by: Larson, Eric <numeric.larson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime: mention subscription only ml, fix typo in maintainer email
Christian Brabandt [Sat, 3 Jan 2026 16:29:07 +0000 (16:29 +0000)] 
runtime: mention subscription only ml, fix typo in maintainer email

Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoCI: Missing test of Vim with ConPTY on Windows
Muraoka Taro [Sat, 3 Jan 2026 11:06:30 +0000 (11:06 +0000)] 
CI: Missing test of Vim with ConPTY on Windows

Problem:  Current CI Windows testing does not test Vim using ConPTY.

Solution: Added a configuration to enable ConPTY to the Windows matrix.
          This configuration suppresses the installation of winpty,
          allowing testing with ConPTY.

Since the fixes made at the end of last year, all tests now pass when
using ConPTY, just like when using winpty. ConPTY itself is stable on
recent versions of Windows, so there are no longer any reasons not to
test it.

closes: #19066

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agotranslation(it): Update Italian translation
Antonio Giovanni Colombo [Fri, 2 Jan 2026 14:29:17 +0000 (14:29 +0000)] 
translation(it): Update Italian translation

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2045: Mac: Build failure with Mac OS X 10.6 v9.1.2045
Christian Brabandt [Fri, 2 Jan 2026 14:24:42 +0000 (14:24 +0000)] 
patch 9.1.2045: Mac: Build failure with Mac OS X 10.6

Problem:  Mac: Build failure with Mac OS X 10.6
          (Sergey Fedorov, after: v9.1.1748)
Solution: Add ifdefs MAC_OS_X_VERSION_10_7 around the code that sets the
          scheduler priority.

fixes:   #19044
related: #18120
closes:  #19054

Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2044: Inefficient use of ga_concat() v9.1.2044
John Marriott [Fri, 2 Jan 2026 14:11:58 +0000 (14:11 +0000)] 
patch 9.1.2044: Inefficient use of ga_concat()

Problem:  Inefficient use of ga_concat()
Solution: Use ga_concat_len() when the length is already known to avoid
          use of strlen() (John Marriott).

Additionally the following changes are done:
os_unix.c:
- in function `socket_server_list_sockets()` use a `string_T` for the
  strings `buf` and `path` for use in `ga_concat_len()`
  and drop un-needed variable `dir`.

quickfix.c:
- in function `qf_jump_print_msg()` use a `string_T` for the string
  `IObuff` for use in `ga_concat_len()`.
- in function `qf_range_text()` use a `string_T` for the string `buf`
  for use in `ga_concat_len()`.

register.c:
- simplify function `execreg_line_continuation()`.

terminal.c:
- in function `read_dump_file()` use a `string_T` for the
  string `prev_char` for use in `ga_concat_len()`.

tuple.c:
- in function `tuple_join_inner()` use a `string_T` for the
  string `s` for use in `ga_concat_len()`. Also, change local struct
  `join_T` to use `string_T`.

vim9type.c:
- in functions `type_name_tuple()` and `type_name_func()`
  use a `string_T` for the string `arg_type` for use in
  `ga_concat_len()`.

closes: #19038

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2043: filetype: kos files are not reconized v9.1.2043
Chris Dragan [Fri, 2 Jan 2026 14:06:55 +0000 (14:06 +0000)] 
patch 9.1.2043: filetype: kos files are not reconized

Problem:  filetype: kos files are not reconized
Solution: Detect *.kos files as kos filetype
          (Chris Dragan)

Reference:
- https://github.com/kos-lang/kos

closes: #19056

Signed-off-by: Chris Dragan <chris@dragan.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2042: filetype: systemd quadlet files are not recognized v9.1.2042
Ac5000 [Fri, 2 Jan 2026 13:58:30 +0000 (13:58 +0000)] 
patch 9.1.2042: filetype: systemd quadlet files are not recognized

Problem:  filetype: systemd quadlet files are not recognized
Solution: Detect additional patterns as systemd filetype
          (Ac5000)

Reference:
- https://docs.podman.io/en/latest/markdown/podman.1.html
- https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html
- https://docs.podman.io/en/latest/markdown/podman-quadlet.1.html

fixes:  #15078
closes: #19057

Signed-off-by: Ac5000 <15003210+Ac5000@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2041: tests: test_menu.vim leaves swapfiles behind v9.1.2041
Christian Brabandt [Fri, 2 Jan 2026 13:49:18 +0000 (13:49 +0000)] 
patch 9.1.2041: tests: test_menu.vim leaves swapfiles behind

Problem:  tests: test_menu.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2040: :tlunmenu incorrectly accepts a range v9.1.2040
Doug Kearns [Fri, 2 Jan 2026 13:45:46 +0000 (13:45 +0000)] 
patch 9.1.2040: :tlunmenu incorrectly accepts a range

Problem:  :tlnumenu incorrectly accepts a range.
Solution: Remove EX_RANGE and EX_ZEROR from the command definition and
          use ADDR_NONE (Doug Kearns).

closes: #19055

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(logtalk): Update Logtalk runtime files for the latest language spec
Paulo Moura [Fri, 2 Jan 2026 13:42:57 +0000 (13:42 +0000)] 
runtime(logtalk): Update Logtalk runtime files for the latest language spec

closes: #19058

Signed-off-by: Paulo Moura <pmoura@logtalk.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.2039: if_ruby: crash when using Ruby/dyn 4.0 v9.1.2039
Yee Cheng Chin [Thu, 1 Jan 2026 16:25:10 +0000 (16:25 +0000)] 
patch 9.1.2039: if_ruby: crash when using Ruby/dyn 4.0

Problem:  if_ruby: crash when using Ruby/dyn 4.0
          (after v9.1.2036)
Solution: Fix Ruby 4.0 dynamic builds correctly by inlining
          rb_check_typeddata (Yee Cheng Chin)

Ruby 4.0 broke Vim compilation in dynamic builds. That's because the
function `rb_check_typeddata` is now used in an inline function defined
in Ruby headers, which causes it to link against the lib statically
rather than using the one we load in dynamically
(`dll_rb_check_typeddata`) as we only remap it later (after the Ruby
header include).

A previous fix (v9.1.2036) did a wrong fix by stubbing in the actual
inline function `rbimpl_check_typeddata` instead. This does not work
because the inline function is not part of the dynamic lib and therefore
it's not possible to load it in dynamically (the patch also did not
actually attempt to load in the stub). With that patch, Vim would
crash when this function is used as the function pointer is null.

Fix this properly by reverting the previous change, and simply stub
`rb_check_typeddata` using similar mechanisms the file had already set
up for similar situations.

fixes:   #18884
related: #19051
closes:  #19060

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.2038: tests: test_marks.vim leaves swapfiles behind v9.1.2038
Christian Brabandt [Thu, 1 Jan 2026 16:20:08 +0000 (16:20 +0000)] 
patch 9.1.2038: tests: test_marks.vim leaves swapfiles behind

Problem:  tests: test_marks.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

closes: #19061

Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agoruntime: Revert several "mark invalid contact addresses" commits
Christian Brabandt [Thu, 1 Jan 2026 15:14:14 +0000 (15:14 +0000)] 
runtime: Revert several "mark invalid contact addresses" commits

This reverts commits:
6b652a785033fd4164e049492a7327c1ed7c3e5f
2f689d5abde0ccddca9e20d8c93a0299bd054e32
a025a46d4169587145fb54f04af349cd05cb6122

Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.

Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.2037: undo: cursor position not correctly restored v9.1.2037
altermo [Thu, 1 Jan 2026 14:32:50 +0000 (14:32 +0000)] 
patch 9.1.2037: undo: cursor position not correctly restored

Problem:  undo: cursor position not correctly restored
Solution: Do not override the saved cursor position (altermo)

closes: #19052

Signed-off-by: altermo <107814000+altermo@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.2036: if_ruby: build error with ruby 4.0 v9.1.2036
EnumDev [Thu, 1 Jan 2026 14:25:38 +0000 (14:25 +0000)] 
patch 9.1.2036: if_ruby: build error with ruby 4.0

Problem:  if_ruby: build error with ruby 4.0
          (Mamoru Tasaka)
Solution: Always define rb_check_typeddata (EnumDev).

fixes:  #18884
closes: #19051

Signed-off-by: EnumDev <enumdev@enumerated.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime: mark more invalid email addresses
Christian Brabandt [Wed, 31 Dec 2025 17:17:02 +0000 (17:17 +0000)] 
runtime: mark more invalid email addresses

Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime: mark more invalid email addresses
Christian Brabandt [Wed, 31 Dec 2025 16:38:08 +0000 (16:38 +0000)] 
runtime: mark more invalid email addresses

Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime: mark invalid contact addresses
Christian Brabandt [Wed, 31 Dec 2025 12:00:02 +0000 (12:00 +0000)] 
runtime: mark invalid contact addresses

Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agopatch 9.1.2035: filetype: filetype: Fennel fnlm files are not recognized v9.1.2035
Christian Brabandt [Wed, 31 Dec 2025 11:52:34 +0000 (11:52 +0000)] 
patch 9.1.2035: filetype: filetype: Fennel fnlm files are not recognized

Problem:  filetype: Fennel fnlm files are not recognized
          (Alexei Mozaidze, after v9.1.2034)
Solution: Detect *.fnlm files as fennel filetype, revert detecting
          *.fnml files

related: #19047

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2034: filetype: Fennel fnml files are not recognized v9.1.2034
Christian Brabandt [Wed, 31 Dec 2025 09:54:14 +0000 (09:54 +0000)] 
patch 9.1.2034: filetype: Fennel fnml files are not recognized

Problem:  filetype: Fennel fnml files are not recognized
          (Alexei Mozaidze)
Solution: Detect *.fnml files as fennel filetype

Reference:
- https://fennel-lang.org/changelog#160--2025-10-13

fixes: #19047

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2033: tests: Test_terminal_cwd flaky when using ConPTY v9.1.2033
Muraoka Taro [Wed, 31 Dec 2025 09:42:02 +0000 (09:42 +0000)] 
patch 9.1.2033: tests: Test_terminal_cwd flaky when using ConPTY

Problem:  tests: Test_terminal_cwd in test_terminal.vim fails flaky
          in the Windows ConPTY terminal.
Solution: In ConPTY, the timeout is extended to 1msec when reading a
          channel associated with a job that is about to finish.  This
          allows Vim to read the last output of a process in a pseudo
          console. Add comments to make the reasoning clear.
          (Muraoka Taro)

Processes that terminate too quickly in the ConPTY terminal cause Vim to
miss their final output.

In my environment, the probability of the "cmd /D /c cd" used in
Test_terminal_cwd occurring is about 1/4.  For a simple statically
linked Hello World, the probability of it occurring is about 3/4.

closes: #19036

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2032: Vim9: error when using class member in Lambda v9.1.2032
Foxe Chen [Wed, 31 Dec 2025 09:30:51 +0000 (09:30 +0000)] 
patch 9.1.2032: Vim9: error when using class member in Lambda

Problem:  Vim9: error when using class member in Lambda
Solution: Compare against uf_defclass variable
          (Foxe Chen)

closes: #19041

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation(zh_CN): Update the Simplify Chinese translation
Mao-Yining [Wed, 31 Dec 2025 09:28:45 +0000 (09:28 +0000)] 
translation(zh_CN): Update the Simplify Chinese translation

closes: #19034

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rust): Update indentation after nested array literal
Brian Carbone [Wed, 31 Dec 2025 09:24:31 +0000 (09:24 +0000)] 
runtime(rust): Update indentation after nested array literal

fixes:  #18974
closes: #19042

Signed-off-by: Brian Carbone <brian@briancarbone.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Update Contributing.md on the use of AI
Christian Brabandt [Wed, 31 Dec 2025 09:20:37 +0000 (09:20 +0000)] 
runtime(doc): Update Contributing.md on the use of AI

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Emphasize adding tests when contributing
Christian Brabandt [Wed, 31 Dec 2025 09:05:54 +0000 (09:05 +0000)] 
runtime(doc): Emphasize adding tests when contributing

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoREADME.md: remove the warp ad again
Christian Brabandt [Tue, 30 Dec 2025 09:35:10 +0000 (10:35 +0100)] 
README.md: remove the warp ad again

related: #18153

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rust): partly revert e426245b, it causes more issues than it solves
Christian Brabandt [Mon, 29 Dec 2025 08:41:17 +0000 (09:41 +0100)] 
runtime(rust): partly revert e426245b, it causes more issues than it solves

related: #18974

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2031: Makefile: cannot run make installinks twice v9.1.2031
Thomas Petazzoni [Sun, 28 Dec 2025 14:26:52 +0000 (14:26 +0000)] 
patch 9.1.2031: Makefile: cannot run make installinks twice

Problem:  Makefile: cannot run make installinks twice
Solution: Change "ln -s" to "ln -sf" to force creation of the symlinks
          (Thomas Petazzoni)

Running "make installlinks" twice towards the same destination
directory will fail, as symlink will already exist. This is not really
expected as "make install" is normally expected to work again and
again towards the same destination directory.

Fix this by using ln -sf.

closes: #19035

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2030: inefficient use of ga_concat() v9.1.2030
John Marriott [Sun, 28 Dec 2025 14:14:41 +0000 (14:14 +0000)] 
patch 9.1.2030: inefficient use of ga_concat()

Problem:  inefficient use of ga_concat()
Solution: Use ga_concat_len() when length is known.
          (John Marriott)

closes: #19027

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2029: tests: the test_vim9_class.vim testfile is too long v9.1.2029
Yegappan Lakshmanan [Sun, 28 Dec 2025 14:08:21 +0000 (14:08 +0000)] 
patch 9.1.2029: tests: the test_vim9_class.vim testfile is too long

Problem:  tests: the test_vim9_class.vim testfile is too long
Solution: Split out the interface related test cases into a new
          test file test_vim9_interface.vim (Yegappan Lakshmanan)

closes: #19032

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(tutor): Improve Spanish translation for chapter 2 after 757b42a
Victorhck [Sun, 28 Dec 2025 14:03:25 +0000 (14:03 +0000)] 
runtime(tutor): Improve Spanish translation for chapter 2 after 757b42a

related: #18950
closes:  #19014

Signed-off-by: Victorhck <victorhck@mailbox.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(indent-tests): Include a simple Rust indent test
Christian Brabandt [Sun, 28 Dec 2025 14:00:44 +0000 (14:00 +0000)] 
runtime(indent-tests): Include a simple Rust indent test

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rust): clean-up indent script, handle opening empty line correctly
Christian Brabandt [Sun, 28 Dec 2025 13:57:33 +0000 (13:57 +0000)] 
runtime(rust): clean-up indent script, handle opening empty line correctly

fixes: #18974

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars v9.1.2028
Christian Brabandt [Sat, 27 Dec 2025 15:43:37 +0000 (15:43 +0000)] 
patch 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars

Problem:  Buffer overflow in buf_write() when converting incomplete
          multi-byte characters (Kevin Goodsell)
Solution: Make the buffer slightly larger

closes: #19007

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(bpftrace): add indention plugin
Stanislaw Gruszka [Sat, 27 Dec 2025 15:37:53 +0000 (15:37 +0000)] 
runtime(bpftrace): add indention plugin

Problem:  No indention support when editing bpftrace files.
Solution: Add indention settings based on cindent with custom options.

closes: #19030

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation(zh_CN): Update the Simplify Chinese translation
Mao-Yining [Sat, 27 Dec 2025 15:33:21 +0000 (15:33 +0000)] 
translation(zh_CN): Update the Simplify Chinese translation

closes: #19031

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): improve :catch documentation
Mao-Yining [Sat, 27 Dec 2025 15:28:26 +0000 (15:28 +0000)] 
runtime(doc): improve :catch documentation

related: #18984
closes:  #19029

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2027: filetype: bicep filetype used for 2 bicep file types v9.1.2027
Scott McKendry [Sat, 27 Dec 2025 15:15:35 +0000 (15:15 +0000)] 
patch 9.1.2027: filetype: bicep filetype used for 2 bicep file types

Problem:  filetype: bicep filetype used for 2 bicep file types
Solution: Detect *.bicepparam files as bicep-param filetype, include
          new bicep-params and bicep filetype plugin
          (Scott McKendry)

The bicep language server handles parameter files differently than
regular bicep files. Treating them the same at the editor level leads to
false positive diagnostics in the editor.

References:

Bicep Language Constants:
- https://github.com/Azure/bicep/blob/51392d32ca2c8b94b1bb7a255e78e1d559d12573/src/Bicep.Core/LanguageConstants.cs#L23
VS Code Extension definition:
- https://github.com/Azure/bicep/blob/51392d32ca2c8b94b1bb7a255e78e1d559d12573/src/vscode-bicep/package.json#L47

closes: #19026

Signed-off-by: Scott McKendry <me@scottmckendry.tech>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2026: tests: patch 9.1.2019 not tested properly v9.1.2026
zeertzjq [Sat, 27 Dec 2025 15:07:52 +0000 (15:07 +0000)] 
patch 9.1.2026: tests: patch 9.1.2019 not tested properly

Problem:  tests: patch 9.1.2019 not tested properly.
Solution: Add missing :exe (zeertzjq).

closes: #19028

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2025: conpty terminal process may not start v9.1.2025
Muraoka Taro [Sat, 27 Dec 2025 14:36:31 +0000 (14:36 +0000)] 
patch 9.1.2025: conpty terminal process may not start

Problem:  Conpty terminal process may not start.
Solution: Do not close the input handle at EOF when conpty is in use.
          (Muraoka Taro)

It causes the following tests to fail in Windows conpty:

          - Test_terminal_duplicate_eof_arg()
          - Test_terminal_eof_arg()
          - Test_terminal_eof_arg_win32_ctrl_z()

To be precise, the process is launched, but immediately after it is
launched, the input handle to the console is closed with the EOF of the
input, and the console is terminated. When the console is terminated,
the associated process is also terminated.

In the Windows pseudo console, input and output handles are closed after
the process in the console has terminated.  This is not explicitly
stated in Microsoft's documentation.  However, looking at the code for
Windows Terminal, which is presented as a complete example of the pseudo
console, it is implemented exactly this way.

See the sample codes below:

- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/EchoCon/EchoCon/EchoCon.cpp
- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/GUIConsole/GUIConsole.ConPTY/Terminal.cs
- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/MiniTerm/MiniTerm/Terminal.cs

The handle that is not closed at EOF is closed when Vim detects the end
of the job, so there is no risk of them being forgotten and leaking.

`ch_anonymous_pipe`, which was used to determine whether a channel was
for conpty, was set to TRUE only when conpty was being used. The
definition also had the comment `// ConPTY` attached to it.  This name
is not very appropriate, but I felt it would be rude to add a new field
to `channel_T` just for this purpose, so I reused it.

closes: #19025

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2024: 'fsync' option cannot be set per buffer v9.1.2024
glepnir [Sat, 27 Dec 2025 14:26:38 +0000 (14:26 +0000)] 
patch 9.1.2024: 'fsync' option cannot be set per buffer

Problem:  'fsync' option cannot be set per buffer
Solution: Make 'fsync' option global-local
          (glepnir)

closes: #19019

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd v9.1.2023
Christian Brabandt [Sat, 27 Dec 2025 14:10:37 +0000 (14:10 +0000)] 
patch 9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd

Problem:  A BufAdd autocommand may cause alist_add() to use freed
          memory, this is caused by the w_locked variable unset too
          early (henices)
Solution: in trigger_undo_ftplugin() only set w_locked to false, if it
          was false when calling the function.

related: v9.1.0678
closes: #19023

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(compiler): add pyright Python type checker
Konfekt [Sat, 27 Dec 2025 14:07:21 +0000 (14:07 +0000)] 
runtime(compiler): add pyright Python type checker

closes: #19017

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): remove some fixed items from todo.txt
Mao-Yining [Fri, 26 Dec 2025 16:01:31 +0000 (16:01 +0000)] 
runtime(doc): remove some fixed items from todo.txt

closes: #19024

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2022: using C++ keyword class as member variable name v9.1.2022
Wei Tang [Fri, 26 Dec 2025 15:54:46 +0000 (15:54 +0000)] 
patch 9.1.2022: using C++ keyword class as member variable name

Problem:  A recent commit introduced a member variable named `class` in
          the `exarg` structure, which conflicts with the C++ keyword
          `class`. This causes compilation issues on Windows when VIM
          is compiled with OLE enabled, as "if_ole.cpp" cannot compile
          due to the keyword conflict (after v9.1.2012).
Solution: Rename the member variable of `exarg` from `class` to `ea_class`.
          (Wei Tang)

related: #18949
closes:  #19016

Signed-off-by: Wei Tang <gauchyler@uestc.edu.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(netrw): Fix reading UNC paths on windows
tao [Fri, 26 Dec 2025 15:51:32 +0000 (15:51 +0000)] 
runtime(netrw): Fix reading UNC paths on windows

Problem:  When Vim is launched with a UNC directory, netrw treats it as a
          relative path and compose it again.
Solution: This is due to `exists("g:netrw_cygwin")` always being true.
          We can directly use `g:netrw_cygwin`.

closes: #19015

Signed-off-by: tao <2471314@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(compiler): ignore 'Found' messages in ruff and ty compiler
Konfekt [Fri, 26 Dec 2025 15:33:39 +0000 (15:33 +0000)] 
runtime(compiler): ignore 'Found' messages in ruff and ty compiler

while at it, also update the ty command line

closes: #19012

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2021: filetype: fluent files are not recognized v9.1.2021
ners [Fri, 26 Dec 2025 15:27:19 +0000 (15:27 +0000)] 
patch 9.1.2021: filetype: fluent files are not recognized

Problem:  filetype: fluent files are not recognized
Solution: Detect *.ftl files as fluent filetype (ners)

References:
- https://projectfluent.org/

closes: #19011

Signed-off-by: ners <ners@gmx.ch>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(termdebug): update v:shell_error condition test.
Miguel Barro [Fri, 26 Dec 2025 15:19:41 +0000 (15:19 +0000)] 
runtime(termdebug): update v:shell_error condition test.

vim9 conditions only admit 0 or 1 integers, however the return value of
shells is not limited to either 0 or 1 (e.g. powershell)

closes: #19010

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2020: tests: test_virtualedit.vim leaves swapfiles behind v9.1.2020
Christian Brabandt [Fri, 26 Dec 2025 15:16:46 +0000 (15:16 +0000)] 
patch 9.1.2020: tests: test_virtualedit.vim leaves swapfiles behind

Problem:  tests: test_virtualedit.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2019: inconsistent cursor encoding past EOL with ve=all v9.1.2019
McAuley Penney [Fri, 26 Dec 2025 15:10:01 +0000 (15:10 +0000)] 
patch 9.1.2019: inconsistent cursor encoding past EOL with ve=all

Problem:  When virtualedit is set to all, the cursor is supposed to be
          permitted to reside anywhere, including on the virtual space
          beyond the end of the buffer's text. Switching modes triggered
          a routine that "fixed" a cursor that was past the end of the
          line by shifting it back to the last actual character in the
          line and compensating with a virtual column offset. While
          visually identical, this re-encoding changed the underlying
          byte index, causing position-reporting functions to return
          inconsistent values after a mode change.
Solution: Skip this coordinate adjustment when virtual editing is fully
          enabled. By treating the line terminator as a valid, stable
          position, the cursor’s internal representation remains
          unchanged when entering or exiting Visual mode, ensuring
          consistent coordinate reporting. Add a regression test to
          check this functionality.
          (McAuley Penney)

fixes:  #16276
closes: #19009

Signed-off-by: McAuley Penney <jacobmpenney@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2018: proto: ops.pro outdated v9.1.2018
tao [Fri, 26 Dec 2025 15:04:24 +0000 (15:04 +0000)] 
patch 9.1.2018: proto: ops.pro outdated

Problem:  proto: ops.pro outdated (after v9.1.2017)
Solution: Regenerate the ops.pro proto file (Tao)

closes: #19018

Signed-off-by: tao <2471314@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(osc52): A few minor fixes
Foxe Chen [Fri, 26 Dec 2025 14:59:01 +0000 (14:59 +0000)] 
runtime(osc52): A few minor fixes

- If g:osc52_disable_paste is enabled, then return an empty list instead
  of a list with a single empty string.
- use `echo` instead of `echom` when printing osc waiting message

closes: #19002

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): add reference to searchcount() function
Christian Brabandt [Tue, 23 Dec 2025 22:22:38 +0000 (22:22 +0000)] 
runtime(doc): add reference to searchcount() function

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): Improve :catch documentation
Christian Brabandt [Tue, 23 Dec 2025 21:58:57 +0000 (21:58 +0000)] 
runtime(doc): Improve :catch documentation

fixes: #18984

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(make): Makefile highlighting breaks with ')' in string
Beleswar Prasad Padhi [Tue, 23 Dec 2025 21:32:10 +0000 (21:32 +0000)] 
runtime(make): Makefile highlighting breaks with ')' in string

Problem:  Makefile syntax highlighting incorrectly ends function calls
          when encountering ')' inside double or single quoted strings,
          causing incorrect highlighting for the remainder of the line.
Solution: Add makeDString and makeSString to the contains list for
          makeIdent regions. This allows strings to be recognized inside
          variable references and function calls.

fixes:  #18687
closes: #18818

Signed-off-by: Beleswar Prasad Padhi <beleswarprasad@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(make): Move target greedy match after $() to avoid region matching overflow
Yiyang Wu [Tue, 23 Dec 2025 21:25:04 +0000 (21:25 +0000)] 
runtime(make): Move target greedy match after $() to avoid region matching overflow

Partially revert 2a33b499a3d7f46dc307234847a6562cef6cf1d8, where all
syn match makeIdent are moved before syn region makeIdent to match $()
(reason: see https://github.com/vim/vim/pull/18403#issuecomment-3341161566)

However this results in https://github.com/vim/vim/issues/18890 ,
because lines like
`$(a) =`
will first start a region search beginning with `$(`
but then the whole target including `)` will be matched by
`syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1`
which leaves the region search for the never-found `)` and let the
region matching overflow.

Same for

`$(a) ::`
`$(a) +=`

The solution is to move those greedy target match back, so they take
priority and prevents region match from happening.

fixes:  #18890
closes: #18938

Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2017: getregionpos() depends on 'linebreak' setting v9.1.2017
McAuley Penney [Tue, 23 Dec 2025 20:51:25 +0000 (20:51 +0000)] 
patch 9.1.2017: getregionpos() depends on 'linebreak' setting

Problem:  getregionpos() depends on 'linebreak' setting
Solution: Reset linebreak setting temporarily (McAuley Penney)

When a line is wrapped on word boundaries, getregionpos() may report a
different end column for a visual block than the cursor position used to
define the selection.

Update the blockwise calculation in getregionpos() to use the same
wrapping assumptions as visual block mode, so the reported region
matches the selection boundaries.

Add a regression test that forces wrapping and checks that the end
position stays consistent under "setlocal wrap" and "setlocal
linebreak".

closes: #19006

Signed-off-by: McAuley Penney <jacobmpenney@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2016: cindent wrong indentation after do-while loop v9.1.2016
Anttoni Erkkilä [Tue, 23 Dec 2025 20:42:57 +0000 (20:42 +0000)] 
patch 9.1.2016: cindent wrong indentation after do-while loop

Problem:  At "if(0) do if(0); while(0); else", else should be aligned
          with outer if, but is aligned with inner if.
Solution: In function find_match, ignore "if" and "else" inside a
          do-while loop, when looking for "if". (Anttoni Erkkilä)

closes: #19004

Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2015: blob2string() stopped after an empty line v9.1.2015
Foxe Chen [Tue, 23 Dec 2025 20:37:19 +0000 (20:37 +0000)] 
patch 9.1.2015: blob2string() stopped after an empty line

Problem:  blob2string() stopped after an empty line
Solution: Specifically check for empty content (Foxe Chen)

closes: #19001

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2014: clipboard: clipboard register corrupted with clipboard provider v9.1.2014
Foxe Chen [Tue, 23 Dec 2025 20:29:08 +0000 (20:29 +0000)] 
patch 9.1.2014: clipboard: clipboard register corrupted with clipboard provider

Problem:  clipboard: clipboard register corrupted with clipboard
          provider (Satoru Kitaguchi and mikoto2000 after v9.1.1972)
Solution: Only adjust clipboard register points to the unnamed register
          (Foxe Chen)

fixes:  #18983
fixes:  #18988
closes: #19000

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2013: tests: Test_terminal_shell_option fails with conpty v9.1.2013
Muraoka Taro [Tue, 23 Dec 2025 20:22:54 +0000 (20:22 +0000)] 
patch 9.1.2013: tests: Test_terminal_shell_option fails with conpty

Problem:  tests: When opening a conpty terminal, if process startup
          fails, it will silently exit.  As a result, the
          Test_terminal_shell_option in test_terminal3.vim failed in
          conpty.

          In a winpty terminal, the winpty-provided error message
          "CreateProcess failed" was displayed.  The test is designed to
          catch this error as an exception.

Solution: Make conpty fail with an error messages in the same way as winpty.
          (Muraoka Taro)

In addition, since the GetWin32Error() function can obtain more detailed
error messages, the format has been changed to "CreateProcess failed:
{localized message from the OS}" for conpty.

Also, since the GetWin32Error() function returns errors in ACP (Active
Code Page) encoding, these have been converted to Vim's internal
encoding, enc.  This will prevent messages from being garbled in
Japanese environments, etc.  The output of this function was basically
used by the semsg() function in other places, so this change also fixes
potential similar garbled characters.

The test now errors out immediately in places where it is expected not
to be reached, and comments have been added about the expected content
of the winpty and conpty error messages.

closes: #18998

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2012: Vim9: cannot initialize class member with protected var v9.1.2012
Foxe Chen [Tue, 23 Dec 2025 20:17:30 +0000 (20:17 +0000)] 
patch 9.1.2012: Vim9: cannot initialize class member with protected var

Problem:  Vim9: cannot initialize class member with protected var
Solution: Allow this to work if this happens within the same class
          (Foxe Chen)

closes: #18949

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(ftplugin): set different formatoptions for bpftrace
Stanislaw Gruszka [Tue, 23 Dec 2025 20:15:14 +0000 (20:15 +0000)] 
runtime(ftplugin): set different formatoptions for bpftrace

Problem:   Comment formatting does not work by default for bpftrace.
Solution:  Change default 'formatoptions' similarly as C and many other
           languages.

closes: #18996

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2011: crash when unreferencing gtk icon theme v9.1.2011
Christian Brabandt [Mon, 22 Dec 2025 18:59:50 +0000 (18:59 +0000)] 
patch 9.1.2011: crash when unreferencing gtk icon theme

Problem:  crash when unreferencing gtk icon theme
          (noamhalevy-wq, after v9.1.1583)
Solution: Remove the g_object_unref() call.

gtk_icon_theme_get_default() returns a singleton that should NOT be
unreferenced. From GTK documentation:

> A unique GtkIconTheme associated with the default screen. This icon
theme is associated with the screen and can be used as long as the
screen is open. Do not ref or unref it.

fixes: #18997

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2010: Missing out-of-memory checks in vim9class.c v9.1.2010
John Marriott [Mon, 22 Dec 2025 18:49:43 +0000 (18:49 +0000)] 
patch 9.1.2010: Missing out-of-memory checks in vim9class.c

Problem:  Missing out-of-memory checks in vim9class.c
          (after v9.1.2000)
Solution: Return FAIL early (John Marriott)

closes: #18991

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(bpftrace): add base syntax plugin
Stanislaw Gruszka [Mon, 22 Dec 2025 18:46:44 +0000 (18:46 +0000)] 
runtime(bpftrace): add base syntax plugin

Problem:  No syntax highlighting for bpftrace files.
Solution: Add basic syntax rules, which cover comments, keywords, strings,
          numbers, macros and probes (the bpftrace specific items).

closes: #18999

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2009: tests: "Xm4" test directory may not be deleted v9.1.2009
Muraoka Taro [Mon, 22 Dec 2025 18:33:50 +0000 (18:33 +0000)] 
patch 9.1.2009: tests: "Xm4" test directory may not be deleted

Problem:  tests: "Xm4" test directory may not be deleted
Solution: Use "R" flag with mkdir() call to have the directory
          recursively deleted at the end of function Test_m4_format()
          (Muraoka Taro)

Test_m4_format in test_filetype.vim creates the "Xm4" directory with the
'D' flag. Then it creates two files in the "Xm4" directory. One of them,
"alocal.m4," was created with the 'D' flag, so it will disappear after
the test is complete. However, the other, "configure.ac," was created
without any flags, so it will remain even after the test is complete.
Because the parent directory "Xm4" was created with the 'D' flag, the
latter "configure.ac" remains and is not empty, so it will not be
deleted.

This forces the directory to be deleted regardless of its contents. As a
result, the two files "alocal.m4" and "configure.ac" created in the
directory are no longer needed, so they have been deleted.

closes: #18995

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2008: filetype: hylo files are not recognized v9.1.2008
Ambrus Tóth [Mon, 22 Dec 2025 18:26:52 +0000 (18:26 +0000)] 
patch 9.1.2008: filetype: hylo files are not recognized

Problem:  filetype: hylo files are not recognized
Solution: Detect *.hylo files as hylo filetype (Ambrus Tóth)

References:
- https://hylo-lang.org/

closes: #18994

Signed-off-by: Ambrus Tóth <ping@ambrus.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(sr): Update Serbian message translation
Ivan Pešić [Mon, 22 Dec 2025 18:21:01 +0000 (18:21 +0000)] 
translation(sr): Update Serbian message translation

closes: #18993

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2007: filetype: bpftrace hashbang lines are not recognized v9.1.2007
Stanislaw Gruszka [Mon, 22 Dec 2025 18:17:36 +0000 (18:17 +0000)] 
patch 9.1.2007: filetype: bpftrace hashbang lines are not recognized

Problem:    bpftrace files are not recognized from the hashbang line.
Solution:   Add a hashbang check (Stanislaw Gruszka)

closes: #18992

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2006: MS-Windows: ANSI colors not correct in terminal v9.1.2006
Muraoka Taro [Sun, 21 Dec 2025 19:42:23 +0000 (19:42 +0000)] 
patch 9.1.2006: MS-Windows: ANSI colors not correct in terminal

Problem:  ANSI escape colors are not displayed correctly in
          non-termguicolors in vim (cli) on Windows. The red and blue
          channels seem to be swapped.
Cause:    When converting VTerm ANSI index colors to cterm colors in
          terminal.c, the Windows case equivalent to NR-16 (:help
          cterm-colors) is ignored.
Solution: Created and used a table to convert ANSI indexed colors to
          cterm's NR-16 representation (Windows only). This table
          corresponds to the inverse conversion of cterm_ansi_idx in
          term.c. The values in both tables are exactly the same, but
          the meanings are opposite, so they are separate tables
          (Muraoka Taro).

closes: #18931

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): Improve :help builtin-function-list table formatting
Doug Kearns [Sun, 21 Dec 2025 19:37:10 +0000 (19:37 +0000)] 
runtime(doc): Improve :help builtin-function-list table formatting

- Start each field at the correct tabstop - on a new line if required.
- Use "Type1/Type2" for return types rather than "Type1 or Type2",
  matching the dominant style.
- Convert hyperlinked Ex commands to command markup, `:cmd`.
- Wrap overlong lines.

closes: #18438

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2005: MS-Windows: Missing fullscreen support for GUI version v9.1.2005
Mao-Yining [Sun, 21 Dec 2025 19:31:24 +0000 (19:31 +0000)] 
patch 9.1.2005: MS-Windows: Missing fullscreen support for GUI version

Problem:  MS-Windows: Missing fullscreen support for GUI version
Solution: Add "s" flag to guioptions (Mao-Yining)

- Implement fullscreen mode controlled by the 'go-s' flag in 'guioptions'
- Update documentation with usage examples and platform-specific details

See :help 'go-s' and :help gui-w32-fullscreen for complete documentation.

closes: #18836

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2004: MS-Windows: executable() cannot find file in directory with single... v9.1.2004
Muraoka Taro [Sun, 21 Dec 2025 19:19:39 +0000 (19:19 +0000)] 
patch 9.1.2004: MS-Windows: executable() cannot find file in directory with single char

Problem:  MS-Windows: If a directory with a single character name is
          included in the PATH environment variable without a trailing
          path separator, executable() will not be able to find the
          executable file under it.
Solution: The second argument of the after_pathsep() function is now
          passed the next pointer where a path separator may exist
          (Muraoka Taro).

As a specific example, the default installation path for PowerShell v7
is "C:\Program Files\PowerShell\7", but if you set this as is in the
PATH environment variable, Vim will not be able to find the pwsh.exe
command. In this case, Vim will try to search for "C:\Program
Files\PowerShell\7pwsh.exe".

Cause: The after_pathsep() function determines whether the location
passed as its second argument immediately follows a path separator.
However, in the code where the problem occurred, the second argument was
passed a location that might contain a path separator. As a result, it
was mistakenly determined that a path separator was present in cases
where the final directory name was a single character and not followed
by a path separator, and the path to search was incorrect.

closes: #18979

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(ty): include ty compiler plugin
Konfekt [Sun, 21 Dec 2025 19:17:14 +0000 (19:17 +0000)] 
runtime(ty): include ty compiler plugin

closes: #18960

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2003: tests: Test_glob_symlinks may fail on Window v9.1.2003
Muraoka Taro [Sun, 21 Dec 2025 19:09:20 +0000 (19:09 +0000)] 
patch 9.1.2003: tests: Test_glob_symlinks may fail on Window

Problem:  tests: Test_glob_symlinks may fail on Windows with UCRT
          runtime
Solution: Comment out the code, do not use _wstat().
          (author)

For Test_glob_symlinks() to succeed, vim_stat() (which is actually
mswin_stat_impl()) must fail on empty symlinks.  When the dynamically
linked C runtime is linked, _wstat() succeeds even on empty symbolic
links. As a result, Test_glob_symlinks() fails.

For details, see here:
https://github.com/koron/vc-stat-behavior-verification

closes: #18962

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2002: Vim9: heap-use-after-free when when accessing protect class member v9.1.2002
Yegappan Lakshmanan [Sun, 21 Dec 2025 19:03:31 +0000 (19:03 +0000)] 
patch 9.1.2002: Vim9: heap-use-after-free when when accessing protect class member

Problem:  Vim9: heap-use-after-free when when accessing protect class
          member (Foxe Chen)
Solution: Set cl->class_type_list and return directly, add tests for
          using protected class method and variable from another class
          (Yegappan Lakshmanan).

closes: #18971

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agorefactor(vim9): use 'start' open urls on win32
Mao-Yining [Sun, 21 Dec 2025 18:59:48 +0000 (18:59 +0000)] 
refactor(vim9): use 'start' open urls on win32

- Use `:!start` directly, discard the using of `explorer.exe`.
- Update the document in `eval.txt`.

closes: #18985

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim9): Reset pwsh and powershell in Open()
Mao-Yining [Sun, 21 Dec 2025 18:45:26 +0000 (18:45 +0000)] 
runtime(vim9): Reset pwsh and powershell in Open()

relates: #17995
closes:  #18986

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(hy): Update Armenian language translation
gagik [Sun, 21 Dec 2025 18:42:18 +0000 (18:42 +0000)] 
translation(hy): Update Armenian language translation

closes: #18990

Signed-off-by: gagik <hakgagik@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(openPlugin): start :Launch process in the background in GUI mode
Mateo Gjika [Sun, 21 Dec 2025 09:47:38 +0000 (09:47 +0000)] 
runtime(openPlugin): start :Launch process in the background in GUI mode

fixes:  #18977
closes: #18981

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(zh_CN): Add license disclaimer
Mao-Yining [Sat, 20 Dec 2025 18:29:16 +0000 (18:29 +0000)] 
translation(zh_CN): Add license disclaimer

Added disclaimer to clarify that the Chinese translation is for
reference only and is not legally binding. The original English version
of the license is the sole authoritative text. No liability is accepted
for any ambiguities or errors arising from the translation.

closes: #18980

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(getscript): GLVS plugin fails with wget.exe with PowerShell
Muraoka Taro [Sat, 20 Dec 2025 18:13:18 +0000 (18:13 +0000)] 
runtime(getscript): GLVS plugin fails with wget.exe with PowerShell

Problem:  Only Windows: The GLVS plugin fails in a PowerShell Desktop if
          wget.exe is installed. The PowerShell Desktop has an alias
          called wget which hides wget.exe.
Solution: Force .exe extension if wget.exe is available.

closes: #18987

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): Fix "Vim script" formatting at :help clipboard-providers
Doug Kearns [Sat, 20 Dec 2025 17:39:32 +0000 (17:39 +0000)] 
runtime(doc): Fix "Vim script" formatting at :help clipboard-providers

closes: #18966

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.2001: cursor may end up in wrong window after :botright copen v9.1.2001
glepnir [Sat, 20 Dec 2025 17:26:39 +0000 (17:26 +0000)] 
patch 9.1.2001: cursor may end up in wrong window after :botright copen

Problem:  After :botright copen and closing the quikfix window, the
          cursor ends up in the wrong window. The problem is fr_child
          always points to the first (leftmost for FR_ROW, topmost for
          FR_COL) child frame. When do :vsplit, the new window is
          created on the left, and frame_insert() updates the parent's
          fr_child to point to this new left window.
Solution: Create a snapshot before open the quickfix window and restore
          it when close it (glepnir).

closes: #18961

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): clarify the behavior of CTRL-Z
Christian Brabandt [Sat, 20 Dec 2025 16:54:07 +0000 (16:54 +0000)] 
runtime(doc): clarify the behavior of CTRL-Z

fixes: #18975

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>