]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
4 hours agopatch 9.1.2114: modeless selection not copied to * register master v9.1.2114
Foxe Chen [Thu, 29 Jan 2026 19:10:51 +0000 (19:10 +0000)] 
patch 9.1.2114: modeless selection not copied to * register

Problem:  modeless selection not copied to * register when P in
          guioptions (Coacher)
Solution: Make the "P" flag override the "a" and "A" flag
          (Foxe Chen)

fixes:  #19187
closes: #19244

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 hours agoruntime(tera): update syntax files to support many more tera code
MuntasirSZN [Thu, 29 Jan 2026 19:03:42 +0000 (19:03 +0000)] 
runtime(tera): update syntax files to support many more tera code

This includes macros, keys etc. which were not highlighted before.

closes: #19276

Signed-off-by: Muntasir Mahmud <muntasir.joypurhat@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 hours agopatch 9.1.2113: potential NULL pointer dereference issues v9.1.2113
Yasuhiro Matsumoto [Thu, 29 Jan 2026 18:43:12 +0000 (18:43 +0000)] 
patch 9.1.2113: potential NULL pointer dereference issues

Problem:  potential NULL pointer dereference issues
          (EpheraXun)
Solution: Check returned pointer to be non NULL.
          (Yasuhiro Matsumoto)

fixes:  #19273
closes: #19274

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
25 hours agoruntime(doc): Mark the use of "\n" in the tabpanel as experimental
Christian Brabandt [Wed, 28 Jan 2026 22:18:21 +0000 (22:18 +0000)] 
runtime(doc): Mark the use of "\n" in the tabpanel as experimental

related: #19123

Signed-off-by: Christian Brabandt <cb@256bit.org>
25 hours agoruntime(rust): Fix Rust indentation when string contains "if"
taylor.fish [Wed, 28 Jan 2026 22:04:21 +0000 (22:04 +0000)] 
runtime(rust): Fix Rust indentation when string contains "if"

indent/rust.vim behaves incorrectly when a string literal contains the
substring "if".

For example, in this code:

    let x = "
                motif
    ";
    struct X {
                }

indent/rust.vim thinks that the closing "}" should line up with "motif".

This patch fixes the issue by checking whether the "if" is in a string
literal or comment before considering it to be a match for a subsequent
brace (and also by requiring it to start on a word boundary).

Add an indent test to ensure this does not regress.

closes: #19265

Signed-off-by: taylor.fish <contact@taylor.fish>
Signed-off-by: Christian Brabandt <cb@256bit.org>
25 hours agoruntime(doc): 'ignorecase' affects character classes in the old engine
Christian Brabandt [Wed, 28 Jan 2026 21:58:28 +0000 (21:58 +0000)] 
runtime(doc): 'ignorecase' affects character classes in the old engine

fixes: #19230

Signed-off-by: Christian Brabandt <cb@256bit.org>
26 hours agoruntime(helpcurwin): fix E121 error
Peter Kenny [Wed, 28 Jan 2026 21:45:50 +0000 (21:45 +0000)] 
runtime(helpcurwin): fix E121 error

closes: #19270

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
26 hours agopatch 9.1.2112: long statusline may crash if using singlebyte encoding v9.1.2112
zeertzjq [Wed, 28 Jan 2026 21:36:51 +0000 (21:36 +0000)] 
patch 9.1.2112: long statusline may crash if using singlebyte encoding

Problem:  long statusline may crash if using singlebyte encoding
          (fizz-is-on-the-way)
Solution: Drop the non-mbyte codepath and always use the mbyte code
          (zeertzjq)

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
28 hours agopatch 9.1.2111: Vim9: no error for elseif/else after else v9.1.2111
Hirohito Higashi [Wed, 28 Jan 2026 19:21:10 +0000 (19:21 +0000)] 
patch 9.1.2111: Vim9: no error for elseif/else after else

Problem:  Vim9: no error for elseif/else after else
Solution: Report an error (Hirohito Higashi)

closes: #19263

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
28 hours agoruntime(make): Declare syntax file orphaned
Roland Hieber [Wed, 28 Jan 2026 18:54:48 +0000 (18:54 +0000)] 
runtime(make): Declare syntax file orphaned

closes: #19267

Signed-off-by: Roland Hieber <rohieb@rohieb.name>
Signed-off-by: Christian Brabandt <cb@256bit.org>
29 hours agoruntime(8th): Update syntax script
Ron Aaron [Wed, 28 Jan 2026 18:50:55 +0000 (18:50 +0000)] 
runtime(8th): Update syntax script

closes: #19261

Signed-off-by: Ron Aaron <ron@aaron-tech.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): fix missing code block marker in ft-python-syntax
zeertzjq [Mon, 26 Jan 2026 19:56:27 +0000 (19:56 +0000)] 
runtime(doc): fix missing code block marker in ft-python-syntax

related: #18922
closes:  #19261

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(vim): set 'path' to common Vim directories
Mateo Gjika [Mon, 26 Jan 2026 19:45:21 +0000 (19:45 +0000)] 
runtime(vim): set 'path' to common Vim directories

closes: #19219

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agotranslation(sv): Add Swedish translation
Daniel Nylander [Mon, 26 Jan 2026 19:26:08 +0000 (19:26 +0000)] 
translation(sv): Add Swedish translation

closes: #18849

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(python): Highlight built-in constants in Python
Rob B [Mon, 26 Jan 2026 18:52:04 +0000 (18:52 +0000)] 
runtime(python): Highlight built-in constants in Python

Also add syntax tests for those newly constants.

closes: #17788
closes: #18922

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(c): set 'keywordprg' to :CKeywordPrg in a GUI
Mateo Gjika [Mon, 26 Jan 2026 18:45:18 +0000 (18:45 +0000)] 
runtime(c): set 'keywordprg' to :CKeywordPrg in a GUI

closes: #19222

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): fix inconsistent indent in ft_rust.txt
zeertzjq [Sun, 25 Jan 2026 18:17:40 +0000 (18:17 +0000)] 
runtime(doc): fix inconsistent indent in ft_rust.txt

related: #19251
closes:  #19257

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(colors): include new catppuccin colorscheme
Maxim Kim [Sun, 25 Jan 2026 18:14:22 +0000 (18:14 +0000)] 
runtime(colors): include new catppuccin colorscheme

closes: #19258

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): Fix overlength lines in :help {russian,vietnamese}.txt
Doug Kearns [Sun, 25 Jan 2026 18:05:43 +0000 (18:05 +0000)] 
runtime(doc): Fix overlength lines in :help {russian,vietnamese}.txt

closes: #19252

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoCI: check encoding of runtime files with utf-8 name
Christian Brabandt [Sun, 25 Jan 2026 18:03:30 +0000 (18:03 +0000)] 
CI: check encoding of runtime files with utf-8 name

related: #19240
closes:  #19253

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(toml): update syntax and ftplugin.
Aman Verma [Sun, 25 Jan 2026 18:01:31 +0000 (18:01 +0000)] 
runtime(toml): update syntax and ftplugin.

Add "-" to iskeyword. This required a change to the syntax files too
because they were using the word begin and end atoms.

closes: #17259

Co-authored-by: Teemu Ikonen <tpikonen@mailbox.org>
Co-authored-by: A4-Tacks <wdsjxhno1001@163.com>
Signed-off-by: Aman Verma <amanraoverma@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): clarify the help style a bit
Christian Brabandt [Sun, 25 Jan 2026 17:58:30 +0000 (17:58 +0000)] 
runtime(doc): clarify the help style a bit

related: #19250

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.2110: filetype: skhd files are not recognized v9.1.2110
Kiyoon Kim [Sun, 25 Jan 2026 17:39:05 +0000 (17:39 +0000)] 
patch 9.1.2110: filetype: skhd files are not recognized

Problem:  filetype: skhd files are not recognized
Solution: Detect .skhdrc and skhdrc as skhd filetype,
          include a syntax and filetype plugin, add syntax tests
          (Kiyoon Kim)

Add syntax highlighting for skhd (simple hotkey daemon for macOS)
configuration files. Includes filetype detection for skhdrc and
.skhdrc files.

Reference:
- https://github.com/asmvik/skhd

closes: #19235

Signed-off-by: Kiyoon Kim <kiyoon@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime: convert *_utf-8.vim files to actual UTF-8 encoding
ThanhNguyxn [Sun, 25 Jan 2026 15:58:33 +0000 (15:58 +0000)] 
runtime: convert *_utf-8.vim files to actual UTF-8 encoding

Several runtime files with "_utf-8" in their filename are actually encoded
in latin1 or cp1255, not UTF-8. This causes errors when tools attempt to
read these files as UTF-8.

Files converted:
- esperanto_utf-8.vim: latin1 -> UTF-8, updated scriptencoding directive
- greek_utf-8.vim: latin1 -> UTF-8
- hebrewp_utf-8.vim: cp1255 (Windows Hebrew) -> UTF-8
- menu_ca.utf-8.vim: latin1 -> UTF-8
- menu_ca_es.utf-8.vim: latin1 -> UTF-8
- menu_pt_pt.utf-8.vim: latin1 -> UTF-8

The actual functionality remains unchanged - only the encoding was modified.

closes: #16390

Signed-off-by: ThanhNguyxn <thanhnguyentuan2007@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): Fix erroneous *roff syntax examples
G. Branden Robinson [Sun, 25 Jan 2026 15:55:20 +0000 (15:55 +0000)] 
runtime(doc): Fix erroneous *roff syntax examples

Problem dates back at least to commit 071d4279d6, Vim 7.0001 (2004).

The examples shown were of special character interpolation syntax, not
("number") register interpolation syntax.

Sources:
* https://www.gnu.org/software/groff/manual/groff.html.node/Built_002din-Registers.html
* https://github.com/mamccollum/troff-resources/blob/main/cstr-54.pdf

closes: #19243

Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): Tweak tag lines in vim9.txt
Hirohito Higashi [Sun, 25 Jan 2026 15:52:46 +0000 (15:52 +0000)] 
runtime(doc): Tweak tag lines in vim9.txt

closes: #19250

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(rustfmt): Recover accidentally deleted code, don't hide rustfmt error
Arkissa [Sun, 25 Jan 2026 15:42:24 +0000 (15:42 +0000)] 
runtime(rustfmt): Recover accidentally deleted code, don't hide rustfmt error

closes: #19251

Signed-off-by: Arkissa <mrarkssac@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): mark a-a-p website as dead
Christian Brabandt [Sun, 25 Jan 2026 15:22:36 +0000 (15:22 +0000)] 
runtime(doc): mark a-a-p website as dead

fixes: #19247

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.2109: filetype: NetLinx fires are not recognized v9.1.2109
kb [Sun, 25 Jan 2026 14:59:49 +0000 (14:59 +0000)] 
patch 9.1.2109: filetype: NetLinx fires are not recognized

Problem:  filetype: NetLinx fires are not recognized
Solution: Detect *.axs and *.axi as netlinx filetype
          (kb).

Reference:
- https://www.amx.com/en/site_elements/amx-language-reference-guide-netlinx-programming-language
- https://kielthecoder.com/2021/06/11/netlinx-getting-started/

closes: #19249

Signed-off-by: kb <kim@simple.industries>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2108: tests: Test_foldtextresult_rightleft() does not restore 'columns' v9.1.2108
zeertzjq [Fri, 23 Jan 2026 19:24:11 +0000 (19:24 +0000)] 
patch 9.1.2108: tests: Test_foldtextresult_rightleft() does not restore 'columns'

Problem:  Test_foldtextresult_rightleft() does not restore 'columns'
          (after v9.1.2102)
Solution: Save and restore the value of 'columns' (zeertzjq).

related: #19220
closes:  #19234

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2107: :normal may change cmdline history v9.1.2107
zeertzjq [Fri, 23 Jan 2026 19:21:42 +0000 (19:21 +0000)] 
patch 9.1.2107: :normal may change cmdline history

Problem:  :normal may change cmdline history if the keys don't
          explicitly leave Cmdline mode (after 9.1.1872).
Solution: Check ex_normal_busy (zeertzjq)

closes: #19237

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2106: Vim9: class, enum and type alias can be used as value v9.1.2106
Yegappan Lakshmanan [Fri, 23 Jan 2026 19:17:29 +0000 (19:17 +0000)] 
patch 9.1.2106: Vim9: class, enum and type alias can be used as value

Problem:  Vim9: class, enum and type alias can be used as value in an
          expression (kennypete)
Solution: Abort expression evaluation if class, enum or type alias is
          used in an expression (Yegappan Lakshmanan)

related: #19173
closes:  #19238

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2105: tests: not enough tests for using plain_vgetc() v9.1.2105
zeertzjq [Fri, 23 Jan 2026 19:11:28 +0000 (19:11 +0000)] 
patch 9.1.2105: tests: not enough tests for using plain_vgetc()

Problem:  Not enough tests for using plain_vgetc().
Solution: Add tests for using plain_vgetc() during various commands.
          (zeertzjq)

closes: #19236

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(doc): Fix typo in syntax.txt
Antoine Saez Dumas [Fri, 23 Jan 2026 19:09:32 +0000 (19:09 +0000)] 
runtime(doc): Fix typo in syntax.txt

closes: #19239

Signed-off-by: Antoine Saez Dumas <antoine.saezdumas.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(csh): Update ftplugin, improve matchit behaviour
Doug Kearns [Fri, 23 Jan 2026 19:07:21 +0000 (19:07 +0000)] 
runtime(csh): Update ftplugin, improve matchit behaviour

- Allow for an unparenthesised expression argument to the 'if',
  'if-then', and 'while' commands.  This is undocumented, and probably
  unintended, behaviour but is frequently seen in the wild.
- Allow for a continued-line expression argument to the 'if-then'
  command.

related: #19172 (csh: Support negated if in matchit)
closes:  #19190

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2104: readdirex() might be slow v9.1.2104
Yasuhiro Matsumoto [Wed, 21 Jan 2026 20:29:53 +0000 (20:29 +0000)] 
patch 9.1.2104: readdirex() might be slow

Problem:  readdirex() might be slow (Mao-Yining)
Solution: Avoid double slash in path concatenation in
          create_readdirex_item() (Yasuhiro Matsumoto)

On Cygwin and MSYS2, // has a special meaning: it is treated as a prefix
for accessing network computers.
For example, //wsl$/ is used to access WSL.

In the current Vim implementation, the directory path passed to
readdirex() and the file name found during traversal are concatenated
using "/".
When the directory path already ends with /, this results in paths like:

  "/" + "/" + "$Recycle.Bin"

which produces a //-prefixed path. Such paths are interpreted as network
paths, so Vim ends up trying to retrieve the file size of a network
computer named $Recycle.Bin, which is not intended.

From a correctness perspective on Windows, file size retrieval should be
skipped for paths of the following forms:

 //host
 //host/share

However, as a first step, we should avoid generating // paths caused by
redundant / concatenation in the first place.

This change addresses this by preventing unnecessary / insertion when
constructing paths.

fixes:  #19188
closes: #19241

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(csh,tcsh): Update syntax files
Doug Kearns [Wed, 21 Jan 2026 20:23:06 +0000 (20:23 +0000)] 
runtime(csh,tcsh): Update syntax files

- Adopt csh syntax file.
- Highlight tcsh strings with the String highlight group.
- Fix 'set' command highlighting with trailing comments. See
  https://github.com/vim/vim/pull/19172#issuecomment-3751574224
- Fix whitespace style in MAINTAINERS file

closes: #19191

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agotranslation(ua): Update Ukrainian translation
Anatolii Sakhnik [Wed, 21 Jan 2026 20:18:42 +0000 (20:18 +0000)] 
translation(ua): Update Ukrainian translation

closes: #19242

Signed-off-by: Anatolii Sakhnik <sakhnik@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2103: tests: test_fold.vim leaves swapfiles behind v9.1.2103
Christian Brabandt [Wed, 21 Jan 2026 19:54:47 +0000 (19:54 +0000)] 
patch 9.1.2103: tests: test_fold.vim leaves swapfiles behind

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

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2102: foldtext not reversed and cut off in 'rightleft' mode v9.1.2102
Sergey Vlasov [Wed, 21 Jan 2026 19:48:46 +0000 (19:48 +0000)] 
patch 9.1.2102: foldtext not reversed and cut off in 'rightleft' mode

Problem:  foldtext not reversed and cut off in 'rightleft' mode
          (bfredl)
Solution: Fix the rightleft redrawing logic (Sergey Vlasov)

fixes:  #2659
closes: #19220

Signed-off-by: Sergey Vlasov <sergey@vlasov.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agocheck.vim: Use silent command modifier
Muraoka Taro [Wed, 21 Jan 2026 19:41:58 +0000 (19:41 +0000)] 
check.vim: Use silent command modifier

Problem:  When checking a .po file (make -C src/po check), errors are not
          displayed.

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

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

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

closes: #19227

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(debcontrol): improve Debian syntax files
James McCoy [Wed, 21 Jan 2026 19:38:48 +0000 (19:38 +0000)] 
runtime(debcontrol): improve Debian syntax files

Changes to debcontrol:
- Only use debcontrolEmail for Maintainer/Uploaders
- Add Build-Driver to debcontrolField
- Add Protected to debcontrolStrictField
- Remove Uploaders from the more generic region
- Add explicit support for highlighting build profiles
- Add explicit support for highlighting architecture specifications
- Fix URL for sections.822

Changes to debversions:
- Move plucky to unsupported

closes: #19228

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoruntime(kitty): Add kitty ftplugin file
Arvin Verain [Tue, 20 Jan 2026 20:48:41 +0000 (20:48 +0000)] 
runtime(kitty): Add kitty ftplugin file

closes: #19232

Signed-off-by: Arvin Verain <arvinverain@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2101: Vim9: more truthiness issues v9.1.2101
Yegappan Lakshmanan [Tue, 20 Jan 2026 19:46:33 +0000 (19:46 +0000)] 
patch 9.1.2101: Vim9: more truthiness issues

Problem:  Vim9: more truthiness issues
          (kennypete)
Solution: Class, enum and typealias cannot be used with the falsy
          operator (Yegappan Lakshmanan)

related: #19213
fixes:   #19173
closes:  #19216

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2100: filetype: tiltfiles are not recognized v9.1.2100
Luis Davim [Tue, 20 Jan 2026 19:40:35 +0000 (19:40 +0000)] 
patch 9.1.2100: filetype: tiltfiles are not recognized

Problem:  filetype: tiltfiles are not recognized
Solution: Detect Tiltfiles.* and *.tiltfiles as tiltfile  filetype.
          (Luis Davim)

Reference:
- https://docs.tilt.dev/api.html

fixes:  #19214
closes: #19218

Signed-off-by: Luis Davim <luis.davim@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoCI: Reorder path in Windows CI runners and move Python3 before $PATH
Christian Brabandt [Tue, 20 Jan 2026 19:23:02 +0000 (19:23 +0000)] 
CI: Reorder path in Windows CI runners and move Python3 before $PATH

Apparently, sometimes Vim tries to load python.dll from the Mercurial
directory. So let's move the $PYTHON3_DIR before $PATH, so that Vim can
pickup python3.dll from the right directory

https://github.com/vim/vim/actions/runs/21142024316/job/60798242826?pr=19215

closes: #19217

Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoruntime(doc): Update [gnt]roff information
G. Branden Robinson [Tue, 20 Jan 2026 19:12:26 +0000 (19:12 +0000)] 
runtime(doc): Update [gnt]roff information

Content:
* Refer to the formatter as "GNU troff".  Strictly, "groff" refers to
  several things.[1]  Since the context is the editing of input to the
  formatter, GNU's troff program is most relevant choice.
* Refer to groff as distributions' default "typesetting" rather than
  "text processing" package.  Many text processing tools exist, and some
  distributions (Alpine Linux, NetBSD, OpenBSD) have replaced groff with
  mandoc[2] as their man page formatter.
* Mention that Plan 9 still ships an AT&T-derived troff; they even
  maintain it.[3]
* Correct explanation of traditional `yr` register (1).  `\n(yr` is not
  a request, but an escape sequence.[4]
* Correct explanation of traditional `yr` register (2).  This register
  has not interpolated a "2-digit year" since the year 2000; it now
  interpolates a 3-digit one, because AT&T troff designed the `yr`
  register with a Y2K bug in it.[5]
* Fix scrambled terminology.  The phrase "macro request" confuses two
  separate things: macros and requests.[6]  Say instead "font, request,
  register, macro, and string names"; these are the formatter object
  types that people writing groff documents most often use.
* Refer to "groff's mm package" instead of "GNU mm".  Strictly, this
  package is in groff's "contrib" area, which implies that it's not
  official GNU product.  (To be fair, after shipping with groff for over
  34 years,[7] I'm not sure how much distinction anyone perceives.)
* Motivate the newly added advice preferring macro package facilities
  for paragraphing; this issue is distinct from aiding sentence boundary
  detection, which until recently[8] was the only advice offered here.

Style:
* Condense introductory paragraphs.
* Refer to "language syntax" rather than "language primitives".
* Use slightly more idiomatic English.

While these revisions convey more information, they leave the line count
unchanged.  I'll try to stop fooling with this material now.

Notes:
[1] https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/man/groff.7.man?h=1.24.0.rc1#n303
[2] https://mandoc.bsd.lv/
[3] https://github.com/9fans/plan9port/pull/738
    https://github.com/9front/9front/commit/4f3a4d8b3da7e7f38b4bc392524944f6f9ccf21f
[4] https://www.gnu.org/software/groff/manual/groff.html.node/Formatter-Instructions.html
    https://github.com/mamccollum/troff-resources/blob/main/cstr-54.pdf
[5] Tellingly, groff added the `year` register in its 1.16 release,
    dated 2000-05-23.
    https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/NEWS?h=1.24.0.rc1#n3650
    https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/ChangeLog.116?h=1.24.0.rc1#n261
[6] https://www.gnu.org/software/groff/manual/groff.html.node/Requests-and-Macros.html
    https://www.gnu.org/software/groff/manual/groff.html.node/groff.html_fot.html#FOOT26
[7] https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/NEWS?h=1.24.0.rc1#n4192
    https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/ChangeLog.old?h=1.24.0.rc1#n2714
[8] https://github.com/vim/vim/commit/638bbc57c151b0360d953e1e4ad372e3c9f0d3ce

closes: #19221

Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2099: different line endings in ja.sjis.po and ja.po v9.1.2099
Muraoka Taro [Tue, 20 Jan 2026 19:07:02 +0000 (19:07 +0000)] 
patch 9.1.2099: different line endings in ja.sjis.po and ja.po

Problem:  Depending on the worker's environment, the line endings in
          ja.sjis.po may differ from those in the source ja.po.

Solution: By setting standard input and output to binary mode, the line
          endings for input and output will match (Muraoka Taro)

This occurs when using MINGW gcc on Windows and git with autocrlf=false.
In this case, the line endings in ja.po are LF, but because sjiscorr
compiled with MINGW gcc uses text mode for standard input and output,
the line endings in the output ja.sjis.po will be CRLF.

This mismatch in line endings confuses git, causing large differences to
occur when updating.

In addition, the comment style has been changed to // to match the rest
of Vim's code.

closes: #19226

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime(netrw): Do not create swapfiles in netrw buffers
Christian Brabandt [Mon, 19 Jan 2026 19:25:12 +0000 (19:25 +0000)] 
runtime(netrw): Do not create swapfiles in netrw buffers

Problem:  When using netrw to navigate directories, vim immediately
          creates, then deletes a swap file in the entered directory,
          causing the lastModifiedTime of that directory to change.
Solution: Use the :noswapfile command modifier in s:NetrwEditFile()

fixes: #18854

Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime(sml): add 'include' setting to ftplugin
Mateo Gjika [Mon, 19 Jan 2026 19:10:41 +0000 (19:10 +0000)] 
runtime(sml): add 'include' setting to ftplugin

closes: #19156

Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime(asm): add '#' as comment symbol (GNU as)
Mateo Gjika [Mon, 19 Jan 2026 19:08:39 +0000 (19:08 +0000)] 
runtime(asm): add '#' as comment symbol (GNU as)

closes: #19158

Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agoruntime(menu): fix space before Tab and trailing space
zeertzjq [Mon, 19 Jan 2026 19:04:47 +0000 (19:04 +0000)] 
runtime(menu): fix space before Tab and trailing space

closes: #19209

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A v9.1.2098
zeertzjq [Mon, 19 Jan 2026 19:02:08 +0000 (19:02 +0000)] 
patch 9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A

Problem:  Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A
          (after 9.1.1714) (fizz-is-on-the-way).
Solution: Check if there are matches before applying one (zeertzjq).

closes: #19210

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2097: TabClosedPre may be triggered twice for the same tab page v9.1.2097
zeertzjq [Mon, 19 Jan 2026 18:59:08 +0000 (18:59 +0000)] 
patch 9.1.2097: TabClosedPre may be triggered twice for the same tab page

Problem:  TabClosedPre may be triggered twice for the same tab page when
          closing another tab page in BufWinLeave (after 9.1.1211).
Solution: Store whether TabClosedPre was triggered in tabpage_T
          (zeertzjq).

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

closes: #19211

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2096: Vim9: truthiness issue with objects v9.1.2096
Yegappan Lakshmanan [Mon, 19 Jan 2026 18:21:12 +0000 (18:21 +0000)] 
patch 9.1.2096: Vim9: truthiness issue with objects

Problem:  Vim9: truthiness issue with objects
          (kennypete)
Solution: Return true for an non-null object
          (Yegappan Lakshmanan)

related: #19173
closes:  #19213

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost v9.1.2095
zeertzjq [Mon, 19 Jan 2026 18:15:51 +0000 (18:15 +0000)] 
patch 9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost

Problem:  :wqall! doesn't quit when using :quit in BufWritePost
          (after 8.0.1190).
Solution: Restore old value of "exiting" when calling not_exiting()
          instead of always resetting it to FALSE (zeertzjq).

related: #2205
closes:  #19212

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agotranslation(jp): Update Japanese Translation for Vim 9.2 Release
Muraoka Taro [Mon, 19 Jan 2026 18:05:37 +0000 (18:05 +0000)] 
translation(jp): Update Japanese Translation for Vim 9.2 Release

I've updated the Japanese translation for the Vim 9.2 release.  The
content contained in this PR was created collaboratively by multiple
peoples in the vim-jp/lang-ja project, and I, koron (Muraoka Taro), am
submitting it as the project representative.

The PR used for this work is https://github.com/vim-jp/lang-ja/pull/171.
(Please note that the communication in this PR is in Japanese)

closes: #19215

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(haskell): add include-search and define support in ftplugin
Mateo Gjika [Sun, 18 Jan 2026 21:30:26 +0000 (21:30 +0000)] 
runtime(haskell): add include-search and define support in ftplugin

closes: #19143

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(doc): Update advice for [gnt]roff users
G. Branden Robinson [Sun, 18 Jan 2026 21:14:52 +0000 (21:14 +0000)] 
runtime(doc): Update advice for [gnt]roff users

Content:
* Offer more specific guidance regarding input line breaks and sentence
  endings.
* Advise what to do when a line ends with sentence-ending punctuation
  but doesn't end a sentence.
* Advise against use of blanks lines and leading spaces for formatting
  when a macro package is in use.
* Advise how to achieve visual separation in the document without
  affecting formatting.
* Point out how the newline/end-of-sentence rules aid diffing.
* Distinguish the separate processes of inter-sentence space
  supplementation and filling.
* Use conventional (but accessible) terms from typography instead of
  more casual, approximate ones.
* Clarify what sort of extension the ms package's `XP` macro is.

Style:
* Fix comma splice with a semicolon.
* Use slightly more standard/idiomatic English.

Sources:
* https://rhodesmill.org/brandon/2012/one-sentence-per-line/
* https://www.ualberta.ca/en/computing-science/media-library/docs/unix-beginners.pdf
  (p. 20)
* https://www.gnu.org/software/groff/manual/groff.html.node/Input-Conventions.html
* https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/doc/ms.ms?h=1.23.0#n1131
* https://docs-archive.freebsd.org/44doc/usd/18.msdiffs/paper.pdf

closes: #19193

Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2094: filetype: tiger files are not recognized v9.1.2094
Christian Clason [Sun, 18 Jan 2026 21:03:02 +0000 (21:03 +0000)] 
patch 9.1.2094: filetype: tiger files are not recognized

Problem:  filetype: tiger files are not recognized
Solution: Detect *.tig files as tiger filetype
          (Christian Clason).

Reference:
- https://www.cs.princeton.edu/~appel/modern/

closes: #19202

Signed-off-by: Christian Clason <c.clason@uni-graz.at>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2093: heap-use-after-free when wiping buffer in TabClosedPre v9.1.2093
zeertzjq [Sun, 18 Jan 2026 20:51:56 +0000 (20:51 +0000)] 
patch 9.1.2093: heap-use-after-free when wiping buffer in TabClosedPre

Problem:  heap-use-after-free when wiping buffer in TabClosedPre.
Solution: Check window_layout_locked() when closing window(s) in another
          tabpage (zeertzjq).

closes: #19196

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(doc): Tweak documentation style in {ft_context,terminal}.txt
Hirohito Higashi [Sun, 18 Jan 2026 20:50:11 +0000 (20:50 +0000)] 
runtime(doc): Tweak documentation style in {ft_context,terminal}.txt

closes: #19199

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime: Changed old "Sponsor" menu item name to a new one
Muraoka Taro [Sun, 18 Jan 2026 20:45:06 +0000 (20:45 +0000)] 
runtime: Changed old "Sponsor" menu item name to a new one

Problem:  There is an unavailable "Sponsor/Register" item in the Help
          menu.
Solution: The item name has been unified to "Sponsor".

The item names of tlmenu, which are only valid in terminal mode, were
not updated, so unnecessary items that were unavailable were displayed.

This item is also very confusing when creating menu translations.

In addition, the indentation of an item with the same name in the
regular menu has been corrected.

closes: #19201

Signed-off-by: MURAOKA Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2092: cannot detect kitty foreground/background color v9.1.2092
Mateo Gjika [Sun, 18 Jan 2026 14:12:04 +0000 (14:12 +0000)] 
patch 9.1.2092: cannot detect kitty foreground/background color

Problem:  Cannot detect kitty foreground/background color
Solution: Update builtin termcap entries (Mateo Gjika)

closes: #19208

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.1.2091: Ruby integration does not work correctly v9.1.2091
Christian Brabandt [Sun, 18 Jan 2026 14:03:41 +0000 (14:03 +0000)] 
patch 9.1.2091: Ruby integration does not work correctly

Problem:  Ruby headers define HAVE_FSYNC, which leaks into Vim sources
          on Windows and changes conditional compilation of buf_T. This
          causes struct layout mismatches in if_ruby.c and results in a
          different offset for the b_p_bl property, making Vim::Buffer
          access fail (after v9.1.2024)
Solution: Undefine HAVE_FSYNC after including the Ruby headers.

related: #19019
closes:  #19206

Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agopatch 9.1.2090: Last buffer not freed with EXITFREE v9.1.2090
zeertzjq [Sat, 17 Jan 2026 10:13:57 +0000 (10:13 +0000)] 
patch 9.1.2090: Last buffer not freed with EXITFREE

Problem:  Last buffer not freed with EXITFREE (after 9.1.2087).
Solution: Free the last buffer when inside free_all_mem()
          (zeertzjq).

This isn't really a memory leak, as the last buffer's memory is still
reachable via pointers like firstbuf and lastbuf. But it's possible that
this may cause false ASAN warnings in the future, which is what EXITFREE
is supposed to prevent.

closes: #19194

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
12 days agoruntime(doc): fix return type in getqflist() and getloclist()
Mao-Yining [Sat, 17 Jan 2026 10:03:52 +0000 (10:03 +0000)] 
runtime(doc): fix return type in getqflist() and getloclist()

Problem: `call getqflist({})` will return `{}`, which is type dict<any>
Solution: fix it in the document.

closes: #19197

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime(syntax-tests): tests: sh_10 fails on MacOS runners
Christian Brabandt [Fri, 16 Jan 2026 18:56:28 +0000 (18:56 +0000)] 
runtime(syntax-tests): tests: sh_10 fails on MacOS runners

Problem:  tests: sh_10 fails on MacOS runners (after 16c22790627f063)
          because dash does not exist on MacOS
Solution: Force the test to use bash shebang line

Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agopatch 9.1.2089: Wayland: Clipboard not working with external programs v9.1.2089
Foxe Chen [Fri, 16 Jan 2026 18:36:31 +0000 (18:36 +0000)] 
patch 9.1.2089: Wayland: Clipboard not working with external programs

Problem:  Wayland: Clipboard not working with external programs on
          Wayland (devsnek)
Solution: Simplify the Wayland offer logic and drop offering the special
          mime type (Foxe Chen)

fixes:  #19050
closes: #19184

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agopatch 9.1.2088: Redundant NULL checks in find_pattern_in_path() v9.1.2088
zeertzjq [Fri, 16 Jan 2026 18:31:33 +0000 (18:31 +0000)] 
patch 9.1.2088: Redundant NULL checks in find_pattern_in_path()

Problem:  Redundant NULL checks in find_pattern_in_path().
Solution: Remove the NULL checks. Also fix typos in test_diffmode.vim
          (zeertzjq).

After assigning to inc_opt on line 3461, it's dereferenced immediately,
and not assigned another value afterwards, so checking for NULL after
line 3462 is redundant.

closes: #19185

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agopatch 9.1.2087: Crash when using :tabonly in BufUnload v9.1.2087
zeertzjq [Fri, 16 Jan 2026 18:25:29 +0000 (18:25 +0000)] 
patch 9.1.2087: Crash when using :tabonly in BufUnload

Problem:  Crash when using :tabonly in BufUnload.
Solution: Set curbuf when setting curwin->w_buffer. Don't wipe out a
          buffer if there are no other buffers. Don't decrement
          b_nwindows if it was 0 before buf_freeall() (zeertzjq).

fixes:  #19088#issuecomment-3710172769
closes: #19186

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime(tutor): Add Chinese translation for chapter 1
Mao-Yining [Fri, 16 Jan 2026 18:20:52 +0000 (18:20 +0000)] 
runtime(tutor): Add Chinese translation for chapter 1

closes: #19189

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 days agoruntime(c,cpp): Add reference links to noreturn tests
Doug Kearns [Fri, 16 Jan 2026 13:27:24 +0000 (13:27 +0000)] 
runtime(c,cpp): Add reference links to noreturn tests

Add links to the example page at cppreference.com used for these tests
as per their licensing requirements.

closes: #19192

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(sh): highlight single-dash short options containing digits
Christian Brabandt [Thu, 15 Jan 2026 21:01:43 +0000 (21:01 +0000)] 
runtime(sh): highlight single-dash short options containing digits

fixes: #19082

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation(sr): update Serbian messages translation
Ivan Pešić [Thu, 15 Jan 2026 20:42:01 +0000 (20:42 +0000)] 
translation(sr): update Serbian messages translation

closes: #19177

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(c): Do not highlight noreturn in C++ code
Wu Yongwei [Thu, 15 Jan 2026 20:37:14 +0000 (20:37 +0000)] 
runtime(c): Do not highlight noreturn in C++ code

closes: #19170

Signed-off-by: Wu Yongwei <wuyongwei@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(csh): Support negated if in matchit
Simão Afonso [Thu, 15 Jan 2026 20:27:02 +0000 (20:27 +0000)] 
runtime(csh): Support negated if in matchit

Currently, the matchit configuration chokes on valid syntax like:

```csh
if !(true) then
   true
endif
```

Make sure the negation syntax is supported.

closes: #19172

Signed-off-by: Simão Afonso <simao.afonso@powertools-tech.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rapid): Update syntax file for ABB Rapid
Patrick Meiser-Knosowski [Thu, 15 Jan 2026 20:20:52 +0000 (20:20 +0000)] 
runtime(rapid): Update syntax file for ABB Rapid

Also remove trailing white spaces.

closes: #19175

Signed-off-by: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2086: Memory leak when skipping invalid literal dict v9.1.2086
Sean Dewar [Thu, 15 Jan 2026 20:14:08 +0000 (20:14 +0000)] 
patch 9.1.2086: Memory leak when skipping invalid literal dict

Problem:  memory leak when not evaluating (just parsing) invalid literal
          dict.
Solution: Always clear the key's typval (Sean Dewar)

Though "check_typval_is_value(&tv) == FAIL && !evaluate" is maybe never
true, also always clear tvs if check_typval_is_value fails; at worst
this would be a no-op as their initial types are VAR_UNKNOWN.

closes: #19178

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(mbsync): Add syntax highlighting for TLSVersions keyword
Mathis Bernadet [Thu, 15 Jan 2026 20:10:05 +0000 (20:10 +0000)] 
runtime(mbsync): Add syntax highlighting for TLSVersions keyword

mbsync deprecated SSLVersions. Now use TLSVersions (we keep
computability with SSLVersions).

closes: #19179

Signed-off-by: Mathis Bernadet <matbernadet@emi.u-bordeaux.fr>
Signed-off-by: Pierrick Guillaume <pguillaume@fymyte.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(yaml): fix indentation script
Bjoern Foersterling [Thu, 15 Jan 2026 20:05:58 +0000 (20:05 +0000)] 
runtime(yaml): fix indentation script

Problem:  The indentation of Ansible Playbooks gets messed up after
          gg=G (after 9179ddc0608813e)
Solution: Remove one shiftwidth() that seems to be misplaced.

closes: #19180

Signed-off-by: Bjoern Foersterling <bjoern.foersterling@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2085: Use-after-free in winframe_remove() v9.1.2085
Christian Brabandt [Tue, 13 Jan 2026 21:40:40 +0000 (21:40 +0000)] 
patch 9.1.2085: Use-after-free in winframe_remove()

Problem:  Use-after-free in winframe_remove() (henices)
Solution: Set window_layout_locked() inside winframe_remove()
          and check that writing diff files is disallowed when the
          window layout is locked.

It can happen with a custom diff expression when removing a window:

 1. Buffer was removed, so win_frame_remove() is called to remove the
    window.
 2. win_frame_remove() → frame_new_height() → scroll_to_fraction()
    → diff_check_fill() (checks for filler lines)
 3. diff_check_fill() ends up causing a diff_try_update, and because we
    are not using internal diff, it has to first write the file to a
    buffer using buf_write()
 4. buf_write() is called for a buffer that is not contained within a
    window, so it first calls aucmd_prepbuf() to create a new temporary
    window before writing the buffer and then later calls
    aucmd_restbuf(), which restores the previous window layout, calling
    winframe_remove() again, which will free the window/frame structure,
    eventually freeing stuff that will still be accessed at step 2.

closes: #19064

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(compiler): add compiler plugin for cabal
Mateo Gjika [Tue, 13 Jan 2026 21:37:46 +0000 (21:37 +0000)] 
runtime(compiler): add compiler plugin for cabal

closes: #19152

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2084: Compile error when build with job feature v9.1.2084
John Marriott [Tue, 13 Jan 2026 21:29:26 +0000 (21:29 +0000)] 
patch 9.1.2084: Compile error when build with job feature

Problem:  Compile error when build with job feature (after v9.1.2077)
Solution: Add ifdefs (John Marriott).

related: #19076

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoCI: Add C preproc indentation check to CI
Hirohito Higashi [Tue, 13 Jan 2026 21:22:27 +0000 (21:22 +0000)] 
CI: Add C preproc indentation check to CI

closes: #19165

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2083: style: wrong indentation of nested ifdefs v9.1.2083
Hirohito Higashi [Tue, 13 Jan 2026 21:14:33 +0000 (21:14 +0000)] 
patch 9.1.2083: style: wrong indentation of nested ifdefs

Problem:  style: wrong indentation of nested ifdefs
Solution: Fix indentation
          (Hirohito Higashi)

related: #19165

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2082: modeless auto-select not working v9.1.2082
Foxe Chen [Tue, 13 Jan 2026 20:15:07 +0000 (20:15 +0000)] 
patch 9.1.2082: modeless auto-select not working

Problem:  modeless auto-select not working
          (Coacher)
Solution: Add support for modeless autoselect
          (Foxe Chen)

fixes:  #19159
closes: #19168

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(krl): Update syntax file for Kuka Robot Language
KnoP-01 [Tue, 13 Jan 2026 20:11:51 +0000 (20:11 +0000)] 
runtime(krl): Update syntax file for Kuka Robot Language

closes: #19171

Signed-off-by: KnoP-01 <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(matchit): include minor improvement from chrisbra/matchit
Jon Parise [Tue, 13 Jan 2026 19:40:40 +0000 (19:40 +0000)] 
runtime(matchit): include minor improvement from chrisbra/matchit

In particular, documentation update from
related: chrisbra/matchit#55

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2081: MS-Windows: unnecessary "#ifdef FEAT_GUI" in os_win32.c v9.1.2081
Muraoka Taro [Sun, 11 Jan 2026 19:44:06 +0000 (19:44 +0000)] 
patch 9.1.2081: MS-Windows: unnecessary "#ifdef FEAT_GUI" in os_win32.c

Problem:  MS-Windows: "#ifdef FEAT_GUI" exists within "ifdef
          FEAT_GUI_MSWIN", which is confusing when reading the code.
          FEAT_GUI is always defined if FEAT_GUI_MSWIN is defined (see
          vim.h).  Therefore, this check and the else block are
          unnecessary.
Solution: Removed unnecessary "#ifdef FEAT_GUI" (Muraoka Taro).

closes: #19164

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2080: W23/W24 messsage appears on :reg v9.1.2080
Foxe Chen [Sun, 11 Jan 2026 19:32:26 +0000 (19:32 +0000)] 
patch 9.1.2080: W23/W24 messsage appears on :reg

Problem:  W23/W24 messsage appears on :reg
          (Coacher)
Solution: Silence message when using :reg command
          (Foxe Chen)

fixes:  #19161
closes: #19166

Co-authored-by: h_east <h.east.727@gmail.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2079: use-after-free with 'qftf' wiping buffer v9.1.2079
Christian Brabandt [Sun, 11 Jan 2026 19:06:31 +0000 (19:06 +0000)] 
patch 9.1.2079: use-after-free with 'qftf' wiping buffer

Problem:  use-after-free with 'quickfixtextfunc' wiping buffer
          (henices)
Solution: Evaluate 'quickfixtextfunc' with textlock enabled.

closes: #19142

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2078: A few more typos in various files v9.1.2078
zeertzjq [Sun, 11 Jan 2026 18:59:51 +0000 (18:59 +0000)] 
patch 9.1.2078: A few more typos in various files

Problem:  A few more typos in various files
Solution: Fix those (zeertzjq, antonkesy)

related: neovim/neovim#37348
closes:  #19153

Co-authored-by: Anton Kesy <anton@kesy.de>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Fix typo at :help 'fsync'
Doug Kearns [Sun, 11 Jan 2026 18:53:40 +0000 (18:53 +0000)] 
runtime(doc): Fix typo at :help 'fsync'

closes: #19155

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rst): set suffixesadd for rst
Anakin Childerhose [Sun, 11 Jan 2026 18:48:13 +0000 (18:48 +0000)] 
runtime(rst): set suffixesadd for rst

Add .rst to suffixesadd. This allows gf and similar commands to work for
rst documentation such as in the linux kernel Documentation.

closes: #19149

Signed-off-by: Anakin Childerhose <anakin@childerhose.ca>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime: Update files for ConTeXt, METAFONT, and MetaPost.
Lifepillar [Sun, 11 Jan 2026 18:36:52 +0000 (18:36 +0000)] 
runtime: Update files for ConTeXt, METAFONT, and MetaPost.

This update is meant to be included in the upcoming 9.2 release.

**New**

- Support ConTeXt's convention to optionally specify an output directory
  in a comment line at the beginning of a source file.
- If a log file is not found, Vim does not create a new buffer.
- Removed `syntax/shared` files for the following reasons:
  - they are not necessary for the plugin to work (they only improve
    over existing syntax highlighting);
  - they are relative large;
  - they can be automatically (re)generated by users at any time using
    ConTeXt (explained in the doc);
  - since ConTeXt is updated frequently, they quickly become obsolete.

**Minor**

- Prefer `var` to `const` inside functions.
- Prefer `$`-interpolation to `printf()`.
- All revision dates set to the same date for consistency.
- Updated the error format.
- Various tweaks to the documentation, but nothing disruptive or new.

closes: #19148

Signed-off-by: Lifepillar <lifepillar@lifepillar.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(syntax-tests): Add :help command termination tests
Doug Kearns [Sun, 11 Jan 2026 18:25:38 +0000 (18:25 +0000)] 
runtime(syntax-tests): Add :help command termination tests

Problem:  The :help command lacks command termination tests.
Solution: Add tests for command termination at "|", "^M" and "^J".

- Check special handling of "|" in arguments.
- Update the Vim syntax file.

closes: #18932

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): clarify vim.eval behavior with Vim special variables
Phạm Bình An [Sun, 11 Jan 2026 18:19:52 +0000 (18:19 +0000)] 
runtime(doc): clarify vim.eval behavior with Vim special variables

Problem:  The behavior of vim.eval() with Vim special variables is not
          clearly documented. It is (partly) the reason why Nvim
          Python's vim.eval gives different output when evaluating
          v:true and v:false
Solution: Document it (Phạm Bình An)

closes: #19157

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(compiler): Do not set title in pandoc compiler
Ubaldo Tiberi [Sat, 10 Jan 2026 18:21:45 +0000 (18:21 +0000)] 
runtime(compiler): Do not set title in pandoc compiler

closes: #19048

Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.2077: Vim9: type issue when appending item to a list v9.1.2077
Yegappan Lakshmanan [Sat, 10 Jan 2026 18:14:13 +0000 (18:14 +0000)] 
patch 9.1.2077: Vim9: type issue when appending item to a list

Problem:  Vim9: type issue when appending item to a list
          (Peter Kenny)
Solution: When adding a new item at the end of a list in vim9script, use
          the proper item type (Yegappan Lakshmanan)

fixes:  #19045
closes: #19076

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>