]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
44 hours agopatch 9.1.1999: clipboard provider does not respect 'clipboard' option v9.1.1999
Foxe Chen [Thu, 18 Dec 2025 20:47:34 +0000 (21:47 +0100)] 
patch 9.1.1999: clipboard provider does not respect 'clipboard' option

Problem:  clipboard provider does not respect 'clipboard' option
          (Satoru Kitaguchi, after v9.1.1972)
Solution: make clipboard provider register respect "unnamed/unnamedplus"
          from the 'clipboard' option value

fixes:  #18930
closes: #18952

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agoruntime(tutor): Chapter 2: consistently use upper case letter, fix typo after 1e3e1ba...
Christian Brabandt [Thu, 18 Dec 2025 20:22:06 +0000 (21:22 +0100)] 
runtime(tutor): Chapter 2: consistently use upper case letter, fix typo after 1e3e1ba067c79a

Chapter 2: Fix missing "R" after 1e3e1ba067c79a when using register from insert
mode. While at it, consistently use upper case letter for CTRL-R in the
new-tutor.

related: #18950

Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agoruntime(compiler): improve rust errorformat
yilisharcs [Thu, 18 Dec 2025 20:14:12 +0000 (21:14 +0100)] 
runtime(compiler): improve rust errorformat

This commit adds match patterns for:
- warnings with error codes (warning[E0123]: foobar)
- valid nightly unicode entries

closes: #18957

Signed-off-by: yilisharcs <yilisharcs@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.1.1998: tests: not enough tests for :setlocal omnifunc v9.1.1998
zeertzjq [Thu, 18 Dec 2025 20:02:48 +0000 (21:02 +0100)] 
patch 9.1.1998: tests: not enough tests for :setlocal omnifunc

Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
          (zeertzjq).

closes: #18958

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(doc): use codepoint consistently
Christian Brabandt [Wed, 17 Dec 2025 22:24:57 +0000 (23:24 +0100)] 
runtime(doc): use codepoint consistently

fixes: #18944

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(tutor): Update Chapter 2, remove mentioning surround plugin
Christian Brabandt [Wed, 17 Dec 2025 22:13:36 +0000 (23:13 +0100)] 
runtime(tutor): Update Chapter 2, remove mentioning surround plugin

fixes: #18950

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1997: Missing out-of-memory check in vim9class.c v9.1.1997
John Marriott [Wed, 17 Dec 2025 21:31:59 +0000 (22:31 +0100)] 
patch 9.1.1997: Missing out-of-memory check in vim9class.c

Problem:  Missing out-of-memory check in vim9class.c in calls to
          vim_strnsave().
Solution: Refactor is_duplicate_variable() and is_duplicate_enum() and
          make use of string_T struct instead (John Marriott).

closes: #18947

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(compiler): Match gcc.vim make error format
yilisharcs [Wed, 17 Dec 2025 21:29:24 +0000 (22:29 +0100)] 
runtime(compiler): Match gcc.vim make error format

Problem:  gcc.vim interprets "make: *** [Makefile" in the error message
          "make: *** [Makefile:2: all] Error 1" as a valid filename.
Solution: Add pattern to extract the filename correctly. Note that this
  doesn't remove the dangling "]" from the output ("all]").

closes: #18956

Signed-off-by: yilisharcs <yilisharcs@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1996: tests: test_cmdline.vim leaves swapfiles behind v9.1.1996
Christian Brabandt [Wed, 17 Dec 2025 21:16:31 +0000 (22:16 +0100)] 
patch 9.1.1996: tests: test_cmdline.vim leaves swapfiles behind

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

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1995: tests: flaky test_cmdline.vim causes test failures v9.1.1995
Aliaksei Budavei [Wed, 17 Dec 2025 21:08:19 +0000 (22:08 +0100)] 
patch 9.1.1995: tests: flaky test_cmdline.vim causes test failures

Problem:  Data races between test buffers are currently addressed by
          relying on arbitrary execution delays or blissfully dismissed.
Solution: Prefer more deterministic synchronisation between test buffers
          for test cases that generate screendump files with expected
          results (Aliaksei Budavei)

closes: #18920

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1994: CI: slow cursor positioning may cause flaky test failures v9.1.1994
Aliaksei Budavei [Wed, 17 Dec 2025 21:00:49 +0000 (22:00 +0100)] 
patch 9.1.1994: CI: slow cursor positioning may cause flaky test failures

Problem:  More deterministic synchronisation can be established between
          processes running test cases and collecting visual effects to
          a screendump file for future verification by anticipating
          the availability of known parts of such a file and asserting
          the location of the cursor.
Solution: Provide a convenience test function that waits a specified
          time for cursor positioning (Aliaksei Budavei)

related: #18920

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(doc): fix wrong help tag reference in eval.txt
Christian Brabandt [Wed, 17 Dec 2025 20:59:32 +0000 (21:59 +0100)] 
runtime(doc): fix wrong help tag reference in eval.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1993: MS-Windows: compile error because of implicit type conversions v9.1.1993
Christian Brabandt [Wed, 17 Dec 2025 20:52:01 +0000 (21:52 +0100)] 
patch 9.1.1993: MS-Windows: compile error because of implicit type conversions

Problem:  MS-Windows: compile error because of implicit size conversions
          (after v9.1.1983)
Solution: Change type casts

closes: #18946

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1992: Vim9: heap buffer overflow with COMPAREANY instruction v9.1.1992
Foxe Chen [Wed, 17 Dec 2025 20:47:53 +0000 (21:47 +0100)] 
patch 9.1.1992: Vim9: heap buffer overflow with COMPAREANY instruction

Problem:  Vim9: heap buffer overflow with COMPAREANY instruction
Solution: Verify the type and error out in case of different types
          (Foxe Chen)

closes: #18945

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1991: :setlocal changes effective global 'omnifunc' v9.1.1991
zeertzjq [Wed, 17 Dec 2025 20:34:23 +0000 (21:34 +0100)] 
patch 9.1.1991: :setlocal changes effective global 'omnifunc'

Problem:  :setlocal changes effective global 'omnifunc' (Maxim Kim)
Solution: Don't change global callback when using :setlocal (zeertzjq).

fixes:  #18948
closes: #18951

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.1990: tests: Test_term_gettty() fails when using conpty on Windows v9.1.1990
Muraoka Taro [Wed, 17 Dec 2025 19:52:32 +0000 (20:52 +0100)] 
patch 9.1.1990: tests: Test_term_gettty() fails when using conpty on Windows

Problem:  tests: Test_term_gettty() fails when using conpty on Windows,
          CI uses winpty, so this test passes.
Solution: Skip the test Test_term_gettty(). Since conpty communicates
          via anonymous pipes, there is no name that can be obtained
          with term_gettty() (Muraoka Taro)

closes: #18954

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.1989: Vim intro screen shows register message v9.1.1989
Christian Brabandt [Tue, 16 Dec 2025 19:39:31 +0000 (20:39 +0100)] 
patch 9.1.1989: Vim intro screen shows register message

Problem:  Vim intro screen shows register message (after v9.1.1893)
Solution: Remove the register message, registering is no longer useful
          and possible.

fixes:  #18933
closes: #18934

Signed-off-by:
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.1988: osc52 package can be further improved v9.1.1988
Foxe Chen [Tue, 16 Dec 2025 19:35:53 +0000 (20:35 +0100)] 
patch 9.1.1988: osc52 package can be further improved

Problem:  osc52 package can be further improved (after v9.1.1984).
Solution: Improve plugin, update test and check for clipboard_provider
          feature (Foxe Chen).

closes: #18935

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.1987: assert_equal() prepends unnecessary ':' when typed v9.1.1987
zeertzjq [Tue, 16 Dec 2025 19:07:27 +0000 (20:07 +0100)] 
patch 9.1.1987: assert_equal() prepends unnecessary ':' when typed

Problem:  assert_equal() prepends unnecessary ':' when typed
          (after 9.0.1758).
Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

closes: #18936

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.1986: clipboard provider does not work when redirecting messages v9.1.1986
Foxe Chen [Tue, 16 Dec 2025 19:02:20 +0000 (20:02 +0100)] 
patch 9.1.1986: clipboard provider does not work when redirecting messages

Problem:  clipboard provider does not work when redirecting messages
          (BenYip, after v9.1.1972)
Solution: Adjust ifdefs in ex_redir()

fixes:  #18937
closes: #18939

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(tutor): Improve Spanish translations
Victorhck [Tue, 16 Dec 2025 18:56:59 +0000 (19:56 +0100)] 
runtime(tutor): Improve Spanish translations

This change does the following:
- fix lesson number in tutor 1
- added and explanation about how get vimtutor lesson 2
- fix credits to authors in lesson 2

closes: #18940

Signed-off-by: Victorhck <victorhck@mailbox.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.1985: tests: test_sound.vim fails on Windows v9.1.1985
Muraoka Taro [Tue, 16 Dec 2025 18:51:26 +0000 (19:51 +0100)] 
patch 9.1.1985: tests: test_sound.vim fails on Windows

Problem:  tests: test_sound.vim fails when run locally on Windows
Solution: Skip Test_play_silent in Windows non-GUI environments.

Cause: There are two causes:

1) The global variable g:id is undefined, causing an undefined
   reference. Due to the execution order of test cases, g:id is defined in
   Test_play_event. However, on Windows, this test is skipped, so g:id is
   not defined. It is referenced in Test_play_silent's WaitForAssert()
   without being defined, resulting in an undefined error.

   Solution: Define g:id at the beginning of Test_play_silent.

2) In the non-GUI Windows version of vim, there is no message loop,
   so the callback when play file sound ends does not occur, and
   Test_play_silent's WaitForAssert times out and fails. In CI,
   sound_playfile() returns 0, so Test_play_silent is skipped. The
   reason for this is unknown, but it may be because CI is running on
   Windows Server or something like that.

   Solution: Skip Test_play_silent in Windows non-GUI environments.

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
closes: #18941

4 days agopatch 9.1.1984: terminal OSC52 support can be improved v9.1.1984
Foxe Chen [Mon, 15 Dec 2025 20:45:07 +0000 (21:45 +0100)] 
patch 9.1.1984: terminal OSC52 support can be improved

Problem:  terminal OSC52 support to access the clipboard can be improved
Solution: Include and package the optional osc52 package, note: this
          requires a Vim with clipboard provider feature (Foxe Chen).

related: #14995
closes: #18575

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.1983: Vim9: class_name definition can be improved v9.1.1983
John Marriott [Mon, 15 Dec 2025 20:09:29 +0000 (21:09 +0100)] 
patch 9.1.1983: Vim9: class_name definition can be improved

Problem:  Vim9: class_name definition can be improved
Solution: Use string_T to store class_name, avoid using STRLEN() calls,
          simplify code, remove unused definition of struct
          oc_newmember_S (John Marriott)

Use struct string_T to store the field class_name in struct class_T,
which means we can just use the .length field in struct string_T
instead of measuring it.

In addition:
1. In eval.c use string_T to store class_name and s in function
   class_tv2string().
2. In vim9type.c change some calls from ga_concat() to ga_concat_len()
   where the length is known.
3. In vim9class.c remove unused struct definition oc_newmember_S.
   Change some calls from ga_concat() to ga_concat_len() where the
   length is known.
4. In scriptfile.c use string_T to store type_name, class_name and
   es_name in function estack_sfile().
5. In function estack_sfile() simplify construction of the grow array ga
   and change some calls from ga_concat() to ga_concat_len() when the
   length is known.

closes: #18925

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.1982: Use after free with redraw_listener_add() v9.1.1982
Foxe Chen [Mon, 15 Dec 2025 18:58:54 +0000 (19:58 +0100)] 
patch 9.1.1982: Use after free with redraw_listener_add()

Problem:  Use after free with redraw_listener_add() (after: v9.1.1976)
Solution: Copy Callbacks into listener struct (Foxe Chen)

closes: #18926

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.1981: tests: test suite may stop on error in gen_opt_test.vim v9.1.1981
MURAOKA Taro [Mon, 15 Dec 2025 18:51:55 +0000 (19:51 +0100)] 
patch 9.1.1981: tests: test suite may stop on error in gen_opt_test.vim

Problem:  tests: test suite may stop on error in gen_opt_test.vim
Solution: Use a different output file for log files (Muraoka Taro)

When running newtests, it may unexpectedly stop just before
test_options_all.

Cause: When generating the opt_test.vim file for test_options_all, the
failure is detected by the existence of test.log. Therefore, if a test
performed before test_options_all fails and test.log is created, it is
mistakenly thought that the generation of opt_tet.vim has failed, and
the test suite stops there.

So let's change the filename created when utils/gen_opt_test.vim fails
from test.log to gen_opt_test.log, so that it can be detected
independently from other test failures.

closes: #18928

Signed-off-by: MURAOKA Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoCI: Bump actions/cache from 4 to 5
dependabot[bot] [Mon, 15 Dec 2025 18:49:29 +0000 (19:49 +0100)] 
CI: Bump actions/cache from 4 to 5

Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

closes: #18927

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agotranslation(sr): Update the Serbian translation
Ivan Pešić [Mon, 15 Dec 2025 18:48:00 +0000 (19:48 +0100)] 
translation(sr): Update the Serbian translation

closes: #18929

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(fvwm): Update fvwm keywords
Christian Brabandt [Sun, 14 Dec 2025 16:45:50 +0000 (17:45 +0100)] 
runtime(fvwm): Update fvwm keywords

fixes: #18924

Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.1980: filetype: N-Quads files are not recognized v9.1.1980
Gordian Dziwis [Sun, 14 Dec 2025 15:51:34 +0000 (16:51 +0100)] 
patch 9.1.1980: filetype: N-Quads files are not recognized

Problem:  filetype: N-Quads files are not recognized
Solution: Detect *.nq files as nq filetype

Reference:
- https://www.w3.org/TR/n-quads/

closes: #18923

Signed-off-by: Gordian Dziwis <gordian@dziw.is>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.1979: :helpclose allows range and counts v9.1.1979
Doug Kearns [Sun, 14 Dec 2025 15:41:03 +0000 (16:41 +0100)] 
patch 9.1.1979: :helpclose allows range and counts

Problem:  :helpclose incorrectly accepts a range and a count.
Solution: Remove EX_COUNT and EX_RANGE from the command definition.
          (Doug Kearns)

closes: #18917

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(doc): Update version9.txt for v9.1.1966
Mao-Yining [Sun, 14 Dec 2025 15:35:04 +0000 (16:35 +0100)] 
runtime(doc): Update version9.txt for v9.1.1966

closes: #18919

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.1978: tests: Test_smoothscroll_number() may fail v9.1.1978
Hirohito Higashi [Sun, 14 Dec 2025 15:23:18 +0000 (16:23 +0100)] 
patch 9.1.1978: tests: Test_smoothscroll_number() may fail

Problem:  tests: Test_smoothscroll_number() may fail because of
          'showcmd'
Solution: Send redraw command (Hirohito Higashi)

closes: #18921

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.1977: MS-Windows: missing dependency on optiondefs.h in Make_cyg_ming.mak v9.1.1977
Christian Brabandt [Sat, 13 Dec 2025 17:43:27 +0000 (18:43 +0100)] 
patch 9.1.1977: MS-Windows: missing dependency on optiondefs.h in Make_cyg_ming.mak

Problem:  MS-Windows: missing dependency on optiondefs.h in Mingw and
          Cygwin Makefile (Mao-Yining)
Solution: Update $INCL variable

fixes: #18915

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.1.1976: Cannot define callbacks for redraw events v9.1.1976
Foxe Chen [Sat, 13 Dec 2025 17:14:59 +0000 (18:14 +0100)] 
patch 9.1.1976: Cannot define callbacks for redraw events

Problem:  When using listeners, there is no way to run callbacks at
          specific points in the redraw cycle.
Solution: Add redraw_listener_add() and redraw_listener_remove() and
          allow specifying callbacks for redraw start and end
          (Foxe Chen).

closes: #18902

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agonsis: add Chinese translation to nsis installer
Mao-Yining [Sat, 13 Dec 2025 16:50:47 +0000 (17:50 +0100)] 
nsis: add Chinese translation to nsis installer

closes: #18912

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(doc): Tweak documentation style in eval.txt and options.txt
Hirohito Higashi [Sat, 13 Dec 2025 16:45:36 +0000 (17:45 +0100)] 
runtime(doc): Tweak documentation style in eval.txt and options.txt

closes: #18914

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(doc): Remove outdated agide.org link
Gourmet [Sat, 13 Dec 2025 16:39:13 +0000 (17:39 +0100)] 
runtime(doc): Remove outdated agide.org link

The agide.org domain no longer hosts Vim-related tools and now points to
unrelated content. Remove the outdated reference to avoid confusion.

closes: #18916

Signed-off-by: Gourmet <110063472+ItalianG0urmet@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1975: blob2str() may call STRNCPY() with a NULL pointer v9.1.1975
Foxe Chen [Fri, 12 Dec 2025 07:52:07 +0000 (08:52 +0100)] 
patch 9.1.1975: blob2str() may call STRNCPY() with a NULL pointer

Problem:  blob2str() may call strcpy with a NULL pointer
Solution: Check for NULL before calling STRNCPY()

closes: #18907

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1974: tests: missing cleanup in Test_bwipe_during_save() v9.1.1974
zeertzjq [Fri, 12 Dec 2025 07:47:18 +0000 (08:47 +0100)] 
patch 9.1.1974: tests: missing cleanup in Test_bwipe_during_save()

Problem:  tests: missing cleanup in Test_bwipe_during_save().
Solution: Reset &charconvert.

closes: #18908

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1973: some minor problems with clipboard provider code v9.1.1973
Foxe Chen [Fri, 12 Dec 2025 07:44:14 +0000 (08:44 +0100)] 
patch 9.1.1973: some minor problems with clipboard provider code

Problem:  some minor problems with clipboard provider code
          (after v9.1.1972)
Solution: Fix minor issues (Foxe Chen)

- allow empty register type for paste function to mean automatic
- fix internal inc_clip_provider() and dec_clip_provider() functions not
  setting the pause count correctly
- don't call paste function when yanking

closes: #18909

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1972: No way to access the clipboard without X11/Wayland v9.1.1972
Foxe Chen [Thu, 11 Dec 2025 20:11:03 +0000 (21:11 +0100)] 
patch 9.1.1972: No way to access the clipboard without X11/Wayland

Problem:  No way to access the clipboard without X11/Wayland.
Solution: Add the clipboard provider feature (Foxe Chen).

closes: #18781

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1971: crash with invalid positional argument 0 in printf()
Christian Brabandt [Thu, 11 Dec 2025 19:51:03 +0000 (20:51 +0100)] 
patch 9.1.1971: crash with invalid positional argument 0 in printf()

Problem:  crash with invalid positional argument 0 in printf()
Solution: Reject positional arguments <= 0.

closes: #18898

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1971: Crash when buffer gets deleted inside charconvert during save v9.1.1971
glepnir [Thu, 11 Dec 2025 19:45:09 +0000 (20:45 +0100)] 
patch 9.1.1971: Crash when buffer gets deleted inside charconvert during save

Problem:  Crash when buffer gets deleted inside charconvert during save
Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
          unload a buffer while it’s still being saved (glepnir).

closes: #18901

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1970: visual end column returns wrong value after block edit v9.1.1970
phanium [Thu, 11 Dec 2025 19:39:27 +0000 (20:39 +0100)] 
patch 9.1.1970: visual end column returns wrong value after block edit

Problem:  visual end column returns wrong value after block edit
Solution: update visual end column after block insert (phanium)

fixes:  #18900
closes: #18903

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: phanium <91544758+phanen@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): Rename NoDefaultCurrentDirectoryInExePath tag
Doug Kearns [Thu, 11 Dec 2025 19:33:51 +0000 (20:33 +0100)] 
runtime(doc): Rename NoDefaultCurrentDirectoryInExePath tag

- Add leading "$" to match other environment variable tags.
- Clarify :help $NoDefaultCurrentDirectoryInExePath.

closes: #18895

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1969: Wrong cursor position after formatting with long 'formatprg' v9.1.1969
zeertzjq [Thu, 11 Dec 2025 19:28:48 +0000 (20:28 +0100)] 
patch 9.1.1969: Wrong cursor position after formatting with long 'formatprg'

Problem:  Wrong cursor position after formatting with long 'formatprg'.
Solution: Don't show hit-enter prompt when there are stuffed characters.

Previously a stuffed character at the hit-enter prompt will dismiss the
prompt immediately and be put in the typeahead buffer, which leads to
incorrect behavior as the typeahead buffer is processed after the stuff
buffers. Using vungetc() when KeyStuffed is TRUE can fix this problem,
but since the hit-enter prompt isn't visible anyway (and is likely not
desired here), just skip the prompt instead, which also avoids a wait
when using "wait" instead of "hit-enter" in 'messagesopt'.

fixes:  #18905
closes: #18906

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1968: tests: test_python3.vim leaves swapfiles behind v9.1.1968
Christian Brabandt [Thu, 11 Dec 2025 19:26:06 +0000 (20:26 +0100)] 
patch 9.1.1968: tests: test_python3.vim leaves swapfiles behind

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

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.1967: if_python: 64bit numbers truncated v9.1.1967
lsq [Thu, 11 Dec 2025 18:59:13 +0000 (19:59 +0100)] 
patch 9.1.1967: if_python: 64bit numbers truncated

Problem:  if_python: 64bit numbers truncated
Solution: cast python result to long long (lsq)

fixes:  #18899
closes: #18904

Signed-off-by: lsq <lsqypj@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.1966: MS-Windows: dark mode in gui is not supported v9.1.1966
Mao-Yining [Tue, 9 Dec 2025 14:23:39 +0000 (15:23 +0100)] 
patch 9.1.1966: MS-Windows: dark mode in gui is not supported

Problem:  MS-Windows: dark mode in gui is not supported
Solution: Inplement the 'd' flag in 'guioptions'
          (Mao-Yining).

related: #12282
closes: #18877

Co-Authored-By: LemonBoy <thatlemon@gmail.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(vim): Update base syntax, match full :help command
Doug Kearns [Tue, 9 Dec 2025 12:40:59 +0000 (13:40 +0100)] 
runtime(vim): Update base syntax, match full :help command

closes: #18833

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.1965: q can accidentally start recording at more prompt v9.1.1965
Bjoern Foersterling [Tue, 9 Dec 2025 12:27:00 +0000 (13:27 +0100)] 
patch 9.1.1965: q can accidentally start recording at more prompt

Problem:  When exiting at the end of the more prompt (at the hit enter
          prompt) by hitting q the recording mode will be started.
          (Jakub Łuczyński)
Solution: Don't add the q key to the typeahead buffer
          in the function wait_return (Bjoern Foersterling)

fixes: #2589
closes: #18889

Signed-off-by: Bjoern Foersterling <bjoern.foersterling@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.1964: Wrong display when using setline() at hit-enter prompt v9.1.1964
zeertzjq [Tue, 9 Dec 2025 12:10:12 +0000 (13:10 +0100)] 
patch 9.1.1964: Wrong display when using setline() at hit-enter prompt

Problem:  Wrong display when using setline() at hit-enter prompt
          (after 8.2.3204).
Solution: Only skip scrolling for changed lines in top area if it's
          scrolled down due to w_topline change. Also add more testing
          for what 8.2.3204 fixed (zeertzjq).

closes: #18887

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.1963: diff: missing diff size limit for xdiff v9.1.1963
Yee Cheng Chin [Tue, 9 Dec 2025 12:05:17 +0000 (13:05 +0100)] 
patch 9.1.1963: diff: missing diff size limit for xdiff

Problem:  diff: missing diff size limit for xdiff
Solution: Impose file size limit for internal diff (xdiff)
          (Yee Cheng Chin).

Git imposes a hard cap on file size for content that it passes to xdiff
(added to Git in dcd1742e56e, defined in xdiff-interface.h), due to
integer overflow concerns in xdiff. Vim doesn't specify such a limit
right now, which means it's possible for a user to diff a large file
(1GB+) and trigger these overflow issues.

Add the same size limit (1GB minus 1MB) to Vim and simply throws an
error when Vim encounters files larger than said limit. For now, reuse
the same error message regarding internal diff failures. There is no
need to add the same limit for external diff as it's up to each tool to
error check their input to decide what is appropriate or not.

closes: #18891

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(julia): Update Julia runtime files
Sergio Alejandro Vargas [Tue, 9 Dec 2025 11:55:17 +0000 (12:55 +0100)] 
runtime(julia): Update Julia runtime files

Port changes from JuliaEditorSupport/julia-vim made during 2022-2025.
Most notably:

88f178c Do not reset shiftwidth/expandtab at undo
f17257a Allow else block in try/catch
7946ce3 Support public statements (added in Julia v1.11.0-DEV.469)

Signed-off-by: Sergio Alejandro Vargas <savargasqu+git@unal.edu.co>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(rust): use textwidth=100 for the Rust recommended style
Aaron Jacobs [Tue, 9 Dec 2025 11:43:39 +0000 (12:43 +0100)] 
runtime(rust): use textwidth=100 for the Rust recommended style

The help text here said 99 was the recommended style for the standard
library, but I can't find a citation for this anywhere. In contrast the
Rust Style Guide hosted on rust-lang.org
[says](https://doc.rust-lang.org/stable/style-guide/#indentation-and-line-width)
the maximum line width is 100, and rustfmt
[agrees](https://github.com/rust-lang/rust/blob/37aa2135b5d0936bd13aa699d941aaa94fbaa645/src/tools/rustfmt/src/config/options.rs#L570).

Having the two disagree causes an annoying off-by-one error in vim: if
you configure vim to highlight too-long lines then it will occasionally
complain about a line that rustfmt refuses to fix.

closes: #18892

Signed-off-by: Aaron Jacobs <jacobsa@google.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(doc): document change in Windows behavior for patch 9.1.1947
Christian Brabandt [Tue, 9 Dec 2025 11:36:15 +0000 (12:36 +0100)] 
runtime(doc): document change in Windows behavior for patch 9.1.1947

closes: #18886

Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.1962: filetype: Erlang application resource files are not recognized v9.1.1962
Doug Kearns [Sun, 7 Dec 2025 18:12:33 +0000 (19:12 +0100)] 
patch 9.1.1962: filetype: Erlang application resource files are not recognized

Problem:  filetype: Erlang application resource files are not recognized
Solution: Add content-based filetype detection for application resource
          files matching extension '*.app' (Doug Kearns)

related: #18835
closes:  #18842

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab" v9.1.1961
zeertzjq [Sun, 7 Dec 2025 18:07:37 +0000 (19:07 +0100)] 
patch 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab"

Problem:  :0tab behaves like :tab for :stag when 'switchbuf' contains
          "newtab" (after 9.1.1949).
Solution: Don't override cmod_tab if it's already non-zero (zeertzjq).

closes: #18859

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.1960: Wrong position of info popup v9.1.1960
glepnir [Sun, 7 Dec 2025 17:54:26 +0000 (18:54 +0100)] 
patch 9.1.1960: Wrong position of info popup

Problem:  When the popup menu is displayed above the cursor and the
          selected item has no room below for the info popup,
          popup_adjust_position() places the popup in the available
          space above. The calculation added some extra lines, causing
          the popup to be misaligned.
Solution: For info popups, undo that extra spacing so the popup stays
          aligned with the selected item (glepnir)

closes: #18860

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.1959: Wrong wrapping of long output using :echowindow v9.1.1959
glepnir [Sun, 7 Dec 2025 17:48:22 +0000 (18:48 +0100)] 
patch 9.1.1959: Wrong wrapping of long output using :echowindow

Problem:  Outputting long strings using :echowindow wraps one character
          per line and display in reverse order (Hirohito Higashi)
Solution: Use full width for :echowindow, reset msg_col after wrapping,
          and increment lnum correctly when creating new lines (glepnir)

fixes: #18750
closes: #18874

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved v9.1.1958
zeertzjq [Sun, 7 Dec 2025 17:45:19 +0000 (18:45 +0100)] 
patch 9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved

Problem:  Wrong display when scrolling with 'scrolloff' and calling
          sign_unplace() and setline() in CursorMoved (after 8.2.3204).
Solution: Still scroll for changed lines below the top area when the top
          is scrolled down (zeertzjq)

closes: #18878

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1957: filetype: bpftrace files are not recognized v9.1.1957
Stanislaw Gruszka [Sat, 6 Dec 2025 09:40:44 +0000 (10:40 +0100)] 
patch 9.1.1957: filetype: bpftrace files are not recognized

Problem:  filetype: bpftrace files are not recognized
Solution: Detect *.bt files as btftrace filetype,
          include a btftrace filetype plugin (Stanislaw Gruszka)

closes: #18866

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(odin): support underscore-separated numeric literals
Maxim Kim [Sat, 6 Dec 2025 09:36:30 +0000 (10:36 +0100)] 
runtime(odin): support underscore-separated numeric literals

Add support for underscore-separated numeric literals in Odin syntax
highlighting. This allows proper highlighting of numbers like 1_000_000,
0xFF_AA_BB, and 0b1010_1111 as specified in the Odin language.

>  Numerical literals are written similar to most other programming
>  languages. A useful feature in Odin is that underscores are allowed
>  for better readability: 1_000_000_000 (one billion).
>  https://odin-lang.org/docs/overview/#numbers

closes: #18852

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): fix return value in 'exists' and 'exists_compiled()'
Mao-Yining [Sat, 6 Dec 2025 09:33:45 +0000 (10:33 +0100)] 
runtime(doc): fix return value in 'exists' and 'exists_compiled()'

closes: #18867

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1956: tests: test_sort.vim leaves swapfiles behind v9.1.1956
Christian Brabandt [Sat, 6 Dec 2025 09:28:33 +0000 (10:28 +0100)] 
patch 9.1.1956: tests: test_sort.vim leaves swapfiles behind

Problem:  tests: test_sort.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.1955: sort() does not handle large numbers correctly v9.1.1955
Yegappan Lakshmanan [Sat, 6 Dec 2025 09:22:07 +0000 (10:22 +0100)] 
patch 9.1.1955: sort() does not handle large numbers correctly

Problem:  sort() does not handle large numbers correctly
          (Igbanam Ogbuluijah)
Solution: Don't truncate the return value of tv_get_number_chk()
          (Yegappan Lakshmanan)

closes: #18868

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1954: Setting a byte in a blob, accepts values outside 0-255 v9.1.1954
Yegappan Lakshmanan [Sat, 6 Dec 2025 09:13:00 +0000 (10:13 +0100)] 
patch 9.1.1954: Setting a byte in a blob, accepts values outside 0-255

Problem:  Setting a byte in a blob, accepts values outside 0-255
Solution: When setting a byte in a blob, check for valid values
          (Yegappan Lakshmanan)

closes: #18870

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1953: gui_mch_set_titlebar_colors() is excessively called v9.1.1953
Mao-Yining [Sat, 6 Dec 2025 09:04:06 +0000 (10:04 +0100)] 
patch 9.1.1953: gui_mch_set_titlebar_colors() is excessively called

Problem:  gui_mch_set_titlebar_colors() doesn't need to be called when
          'go+=C' is not set.
Solution: Switch the default value to false.

closes: #18872

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(swayconfig): separate identifier groups + cleanup
Josef Litoš [Wed, 3 Dec 2025 21:10:02 +0000 (21:10 +0000)] 
runtime(swayconfig): separate identifier groups + cleanup

- cleanup of PR for tearing and other output options
  - removed `allow_tearing` from global keywords (it's only an output option)
  - moved `...clockwise` directives from general to transform options
  - separated `icc` highlight to correctly detect and highlight paths
  - updated output bg to use the same approach as `icc` for file path
- separated all identifier-matchers into their own groups
- added support for bar identifiers

closes: #18851

Signed-off-by: Josef Litoš <54900518+litoj@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(i3config): highlight identifiers separately
Josef Litoš [Wed, 3 Dec 2025 21:09:19 +0000 (21:09 +0000)] 
runtime(i3config): highlight identifiers separately

- mapped all identifier-highlighting groups to a new group `i3ConfigIdent`
- i3config bar is now split into keyword and block matches
- support `xft:` namespace in fonts
- Update maintainer information in i3config.vim

related: #18851

Signed-off-by: Josef Litoš <54900518+litoj@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1952: tests: need better tests for tf files v9.1.1952
Christian Brabandt [Wed, 3 Dec 2025 21:01:37 +0000 (21:01 +0000)] 
patch 9.1.1952: tests: need better tests for tf files

Problem:  tests: need better tests for tf files
Solution: Add better filetype test for terraform/tf filetype

closes: #18339

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(quarto): add missing loaded guard
Doug Kearns [Wed, 3 Dec 2025 20:30:59 +0000 (20:30 +0000)] 
runtime(quarto): add missing loaded guard

closes: #18630

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(python): Highlight t-strings
Rob B [Wed, 3 Dec 2025 20:25:41 +0000 (20:25 +0000)] 
runtime(python): Highlight t-strings

- Highlight t-strings
- Update comments
- Add tests

closes: #18679

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(sml): Update syntax, improve special constant matching
Doug Kearns [Wed, 3 Dec 2025 20:21:49 +0000 (20:21 +0000)] 
runtime(sml): Update syntax, improve special constant matching

- Match \dE\d real literal form
- Match all string escape sequences
- Add related tests

closes: #18723

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(hog): set undo_ftplugin correctly, delete trailing whitespace
D. Ben Knoble [Wed, 3 Dec 2025 20:15:06 +0000 (20:15 +0000)] 
runtime(hog): set undo_ftplugin correctly, delete trailing whitespace

closes: #18727

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds v9.1.1951
zeertzjq [Wed, 3 Dec 2025 20:10:07 +0000 (20:10 +0000)] 
patch 9.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds

Problem:  tests: Test_windows_external_cmd_in_cwd() is only run in huge
          builds (after 9.1.1947).
Solution: Move it to test_system.vim so that it is run in normal builds.

closes: #18853

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1950: tests: Test_tagjump.vim leaves swapfiles behind v9.1.1950
Christian Brabandt [Wed, 3 Dec 2025 19:27:08 +0000 (19:27 +0000)] 
patch 9.1.1950: tests: Test_tagjump.vim leaves swapfiles behind

Problem:  tests: Test_tagjump.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.1949: :stag does not use 'swichtbuf' option v9.1.1949
Yegappan Lakshmanan [Wed, 3 Dec 2025 19:22:13 +0000 (19:22 +0000)] 
patch 9.1.1949: :stag does not use 'swichtbuf' option

Problem:  :stag does not use 'swichtbuf' option, though the
          documentation states differently
          (Christian Brabandt)
Solution: Respect 'switchbuf' option (Yegappan Lakshmanan).

related: #18845
closes: #18856

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Update vim9.txt Section 1
Peter Kenny [Wed, 3 Dec 2025 19:13:34 +0000 (19:13 +0000)] 
runtime(doc): Update vim9.txt Section 1

closes: #18855

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1948: Windows: Vim adds current directory to search path v9.1.1948
Christian Brabandt [Mon, 1 Dec 2025 20:51:35 +0000 (20:51 +0000)] 
patch 9.1.1948: Windows: Vim adds current directory to search path

Problem:  Windows: Vim always adds the current directory to search path.
          This should only happen when using cmd.exe as 'shell'. For
          example, powershell won't run binaries from the current
          directory.
Solution: Only add current directory to system path, when using cmd.exe
          as 'shell'.

related: #10341
related: 083ec6d9a3b7

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1947: [security]: Windows: Vim may execute commands from current directory v9.1.1947
Christian Brabandt [Tue, 25 Nov 2025 21:45:58 +0000 (22:45 +0100)] 
patch 9.1.1947: [security]: Windows: Vim may execute commands from current directory

Problem:  [security]: Windows: Vim may execute commands from current
          directory (Simon Zuckerbraun)
Solution: Set the $NoDefaultCurrentDirectoryInExePath before running
          external commands.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-g77q-xrww-p834

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1946: Cannot open the help in the current window v9.1.1946
Peter Kenny [Tue, 2 Dec 2025 20:42:53 +0000 (20:42 +0000)] 
patch 9.1.1946: Cannot open the help in the current window

Problem:  Cannot open the help in the current window
Solution: Promote the example from tips.txt to a proper package and
          include the helpcurwin package, add tests for it
          (Peter Kenny)

closes: #18840

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1945: tests: Test_getbufwintabinfo() leaves swapfiles behind v9.1.1945
Christian Brabandt [Tue, 2 Dec 2025 19:59:54 +0000 (19:59 +0000)] 
patch 9.1.1945: tests: Test_getbufwintabinfo() leaves swapfiles behind

Problem:  tests: Test_getbufwintabinfo() leaves swapfiles behind
Solution: Close all open buffers using %bw!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1944: getwininfo() does not return if statusline is visible v9.1.1944
Hirohito Higashi [Tue, 2 Dec 2025 19:58:01 +0000 (19:58 +0000)] 
patch 9.1.1944: getwininfo() does not return if statusline is visible

Problem:  gewininfo() does not return if statusline is visible
Solution: Add status_height to the dict items returned by
          getwininfo() (Hirohito Higashi)

closes: #18841

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): clarify the use of v:errormsg
Christian Brabandt [Mon, 1 Dec 2025 20:02:10 +0000 (20:02 +0000)] 
runtime(doc): clarify the use of v:errormsg

fixes: #18825

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1943: Memory leak with :breakadd expr v9.1.1943
zeertzjq [Mon, 1 Dec 2025 19:43:05 +0000 (19:43 +0000)] 
patch 9.1.1943: Memory leak with :breakadd expr

Problem:  Memory leak with :breakadd expr
Solution: Free debug_oldval and debug_newval before assigning to them.
          Verify the existing (though confusing) :breakadd expr behavior
          (zeertzjq).

It seems that :breakadd expr doesn't work as documented at all. This PR
only fixes the memory leak. The tests are for the existing behavior.

closes: #18844

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(lf): update syntax to support lf version r39
CatsDeservePets [Mon, 1 Dec 2025 18:49:24 +0000 (18:49 +0000)] 
runtime(lf): update syntax to support lf version r39

closes: #18846

Signed-off-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(vim): Update base syntax, match full :language command
Doug Kearns [Sun, 30 Nov 2025 15:44:36 +0000 (15:44 +0000)] 
runtime(vim): Update base syntax, match full :language command

closes: #18808

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1942: Vim9: Assignment to read-only registers @: and @% is allowed v9.1.1942
Doug Kearns [Sun, 30 Nov 2025 15:26:22 +0000 (15:26 +0000)] 
patch 9.1.1942: Vim9: Assignment to read-only registers @: and @% is allowed

Problem:  Assignment to read-only registers @: and @% is allowed during
          compilation.
Solution: Abort compilation and emit an E354 error when assigning to
          these registers (Doug Kearns).

Fix the E354 error emitted when attempting to declare @: with :var so
that it references the correct register, @:,  rather than the garbage
string "^@".

closes: #18806

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1941: tests: Test_execute_register() leaves swapfile behind v9.1.1941
Christian Brabandt [Sun, 30 Nov 2025 15:22:40 +0000 (15:22 +0000)] 
patch 9.1.1941: tests: Test_execute_register() leaves swapfile behind

Problem:  tests: Test_execute_register() leaves swapfile behind
Solution: Use :bw instead of :close to close the buffer completely

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1940: clipboard registers "+" and "*" synced without "autoselect" v9.1.1940
Corey Hickey [Sun, 30 Nov 2025 15:16:16 +0000 (15:16 +0000)] 
patch 9.1.1940: clipboard registers "+" and "*" synced without "autoselect"

Problem:  clipboard registers "+" and "*" synced without "autoselect"
Solution: Remove code that explicitly syncs those clipboard registers
          (Corey Hickey)

Before this change, writes to '+' get copied to '*', but only under
certain conditions. By default, this does not happen, because clipboard
"autoselect" (via :set clipboard+=autoselect) is enabled. Disabling
"autoselect" (an option which should only apply to visual mode) results
in normal-mode writes such as "+yy also going to the '*' register.

This behavior is undocumented and untested; remove the behavior in order
to make Vim's handling of these two registers be consistent.

This frees up the did_star variable to be removed.

Add a test to check that the registers are independent.

fixes: #18830
closes: #18831

Signed-off-by: Corey Hickey <bugfood-c@fatooh.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1939: tests: test_matchfuzzy() leaves swapfiles behind v9.1.1939
Christian Brabandt [Sun, 30 Nov 2025 15:09:53 +0000 (15:09 +0000)] 
patch 9.1.1939: tests: test_matchfuzzy() leaves swapfiles behind

Problem:  tests: test_matchfuzzy() leaves swapfiles behind
Solution: Close loaded buffers using "%bw"

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1938: tests: excessive wait in Test_matchfuzzy_initialized v9.1.1938
Corey Hickey [Sun, 30 Nov 2025 15:07:40 +0000 (15:07 +0000)] 
patch 9.1.1938: tests: excessive wait in Test_matchfuzzy_initialized

Problem:  tests: excessive wait in Test_matchfuzzy_initialized
Solution: Use term_wait() instead of the TermWait() wrapper
          (Corey Hickey)

Test_matchfuzzy_initialized is a terminal test, which are specified to be
"flaky" and automatically retried. The TermWait wrapper multiplies the
specified wait time by higher values for later retries, maxing out at
10x the specified value. This makes tries #3 to #6 sleep for 20 seconds
each, which makes the test very slow to work with. The specified intent
of the test (as noted in a comment eight lines above here) is to
sleep for 2s.

closes: #18822

Signed-off-by: Corey Hickey <bugfood-c@fatooh.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1937: tests: Test_matchfuzzy_initialized() fails v9.1.1937
Corey Hickey [Sun, 30 Nov 2025 15:02:39 +0000 (15:02 +0000)] 
patch 9.1.1937: tests: Test_matchfuzzy_initialized() fails

Problem:  tests: Test_matchfuzzy_initialized() fails
Solution: Send a dummy key (Corey Hickey)

Test_matchfuzzy_initialized seems to expect that the 'lvimgrep' will be
interrupted by sending a SIGINT. If the search finishes beforehand,
though, then the SIGINT triggers vim to tell the user how to quit.

Vim does not show this message immediately, though; instead, vim shows
the message next time it is active. When StopVimInTerminal() sends a key
sequence intended to cause vim to quit, this activates vim to show the
message instead of quitting.

I do not understand every detail of the problem fully--if I type the
characters from StopVimInTerminal() into a post-SIGTERM terminal
directly, that seems to work ok; there seems to be a timing issue due to
sending all the characters at once.

This fix does make the test work reliably for me, and the test still
works even if I limit my CPU frequency so that the search is interrupted
by the SIGINT.

fixes: #18821
related: #18822

Signed-off-by: Corey Hickey <bugfood-c@fatooh.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1936: filetype: Erlang lexical files are not recognized v9.1.1936
Jon Parise [Sun, 30 Nov 2025 14:45:48 +0000 (14:45 +0000)] 
patch 9.1.1936: filetype: Erlang lexical files are not recognized

Problem:  filetype: Erlang lexical files are not recognized
Solution: Detect *.xrl files as leex filetype, include syntax and
          filetype plugins (Jon Parise).

leex is the lexical analyzer generator for Erlang. Its input file format
follows a section-based structure and uses the `.xrl` file extension.

This initial work includes file detection, an ftplugin (which inherits
the Erlang configuration), and a syntax definition.

Reference:
-  https://www.erlang.org/doc/apps/parsetools/leex.html

related: #18819
closes: #18832

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Csaba Hoch <csaba.hoch@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1935: filetype: not all Erlang files are recognized v9.1.1935
Jon Parise [Sun, 30 Nov 2025 10:02:45 +0000 (10:02 +0000)] 
patch 9.1.1935: filetype: not all Erlang files are recognized

Problem:  filetype: not all Erlang files are recognized
Solution: Detect *.app.src and rebar.config files as erlang filetype
          (John Parise).

*.app.src files contain Erlang application definitions. (There are also
*.app files, which are similar but more often build artifacts, and that
file extension is too ambiguous to be recognized by default.)

Reference:
- https://www.erlang.org/doc/system/applications.html

Rebar is the Erlang build tool. rebar.config uses Erlang syntax.

Reference:
- https://rebar3.org/docs/configuration/configuration/

closes: #18835

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Update and clarify vim9.txt Section 3
Peter Kenny [Sun, 30 Nov 2025 09:40:04 +0000 (09:40 +0000)] 
runtime(doc): Update and clarify vim9.txt Section 3

closes: #18779

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Improve :help :catch command specification
Doug Kearns [Sun, 30 Nov 2025 09:23:16 +0000 (09:23 +0000)] 
runtime(doc): Improve :help :catch command specification

The pattern argument is optional.  See :help :sort for another example.

closes: #18834

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(netrw): fix undefined variable curwin in s:NetrwMenu()
Christian Brabandt [Fri, 28 Nov 2025 22:37:06 +0000 (22:37 +0000)] 
runtime(netrw): fix undefined variable curwin in s:NetrwMenu()

fixes: #18829

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