]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
24 hours agoRevert "CI: Manage multibyte characters in syntax tests"
Aliaksei Budavei [Sat, 7 Feb 2026 15:48:33 +0000 (15:48 +0000)] 
Revert "CI: Manage multibyte characters in syntax tests"

This reverts commit 0fde6aebddef5cb0428e85040994ba45e55cba99.

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

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

closes: #19348

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

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

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

related: #19354

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

closes: #19354

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

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

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

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

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

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

closes: #19343

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

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

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

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

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

closes: #19351

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

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

related: neovim/neovim#37749
closes: #19352

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

closes: #19341

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

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

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

closes: #19346

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

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

Translated by Daniel Nylander.

closes: #19344

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

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

related: #19321

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(doc): fix pattern problem in cmdline.txt
Mao-Yining [Fri, 6 Feb 2026 10:19:55 +0000 (10:19 +0000)] 
runtime(doc): fix pattern problem in cmdline.txt

closes: #19322

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.2135: tests: tar plugin does not consider 'nowrapscan' v9.1.2135
Kevin Goodsell [Fri, 6 Feb 2026 10:00:13 +0000 (10:00 +0000)] 
patch 9.1.2135: tests: tar plugin does not consider 'nowrapscan'

Problem:  search() is used to check for the message from tar that
          indicates leading slashes found in the tar archive, or to
          check for the leading slashes themselves. However, if
          'nowrapscan' is in effect these searches are limited to the
          last line and don't find any results. This causes the warning
          message from tar to be seen in the buffer, the "Path Traversal
          Attack Detected" message to be omitted, and editing actions
          can fail. This can be seen, for example, when editing
          src/testdir/samples/evil.tar.
Solution: Use the 'w' flag for search() (Kevin Goodsell)

closes: #19333

Signed-off-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(lf): update syntax to support lf version r41
CatsDeservePets [Fri, 6 Feb 2026 09:55:53 +0000 (09:55 +0000)] 
runtime(lf): update syntax to support lf version r41

Also, mark @CatsDeservePets as maintainer.

closes: #18640

Signed-off-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.2134: Terminal doesn't handle split UTF-8 sequence after ASCII v9.1.2134
zeertzjq [Fri, 6 Feb 2026 09:48:20 +0000 (09:48 +0000)] 
patch 9.1.2134: Terminal doesn't handle split UTF-8 sequence after ASCII

Problem:  Terminal doesn't handle split UTF-8 sequence after ASCII.
Solution: Only use one UTF-8 encoding state per vterm state (zeertzjq).

fixes:  #16559
closes: #18640

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(hare): update to match upstream
Amelia Clarke [Fri, 6 Feb 2026 09:44:16 +0000 (09:44 +0000)] 
runtime(hare): update to match upstream

closes: #18640

Signed-off-by: Amelia Clarke <selene@perilune.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.2133: Another case of buffer overflow with 'helpfile' v9.1.2133
zeertzjq [Fri, 6 Feb 2026 09:37:58 +0000 (09:37 +0000)] 
patch 9.1.2133: Another case of buffer overflow with 'helpfile'

Problem:  Another case of buffer overflow with 'helpfile'.
Solution: Leave room for "tags" in the buffer (zeertzjq).

closes: #19340

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.1.2132: [security]: buffer-overflow in 'helpfile' option handling v9.1.2132
Christian Brabandt [Thu, 5 Feb 2026 18:51:54 +0000 (18:51 +0000)] 
patch 9.1.2132: [security]: buffer-overflow in 'helpfile' option handling

Problem:  [security]: buffer-overflow in 'helpfile' option handling by
          using strcpy without bound checks (Rahul Hoysala)
Solution: Limit strncpy to the length of the buffer (MAXPATHL)

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-5w93-4g67-mm43

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agotranslation(tr): Update Turkish translations
Emir SARI [Wed, 4 Feb 2026 17:24:53 +0000 (17:24 +0000)] 
translation(tr): Update Turkish translations

closes: #19334

Signed-off-by: Emir SARI <emir_sari@icloud.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoCI: update FreeBSD runner to 15.0
zeertzjq [Wed, 4 Feb 2026 17:19:28 +0000 (17:19 +0000)] 
CI: update FreeBSD runner to 15.0

closes: #19336

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.1.2131: tests: Test_diff_screen() fails on BSD v9.1.2131
zeertzjq [Wed, 4 Feb 2026 17:14:49 +0000 (17:14 +0000)] 
patch 9.1.2131: tests: Test_diff_screen() fails on BSD

Problem:  tests: Test_diff_screen() fails on BSD
Solution: Use gdiff on BSD systems if available (zeertzjq).

related: #19336

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agotranslation(sv): Remove duplicates from [g]vim.desktop.in
Christian Brabandt [Wed, 4 Feb 2026 16:44:49 +0000 (16:44 +0000)] 
translation(sv): Remove duplicates from [g]vim.desktop.in

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(context): fix issue with SyncTeX and update command
Lifepillar [Wed, 4 Feb 2026 16:31:05 +0000 (16:31 +0000)] 
runtime(context): fix issue with SyncTeX and update command

Remove `--nonstopmode` because (a) ConTeXt always stops anyway, and (b)
`--nonstopmode` disables SyncTeX unconditionally. Add `--paranoid`,
which prevents the command to descend to `..` and `../..`.

Pass the typesetting command only the name of the input file rather than
its full path, as that is more compatible with ConTeXt's syncing
mechanism.

closes: #19323

Signed-off-by: Lifepillar <lifepillar@lifepillar.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): add note for -complete=shellcmdline
Mao-Yining [Wed, 4 Feb 2026 16:21:40 +0000 (16:21 +0000)] 
runtime(doc): add note for -complete=shellcmdline

closes: #19330

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.2130: Page scrolling in Insert mode beeps v9.1.2130
zeertzjq [Wed, 4 Feb 2026 15:47:51 +0000 (15:47 +0000)] 
patch 9.1.2130: Page scrolling in Insert mode beeps

Problem:  Page scrolling in Insert mode beeps (after 9.1.0211).
Solution: Fix incorrect return value of pagescroll(). Also invert the
          return value of scroll_with_sms() to be less confusing and
          match comments (zeertzjq).

fixes:  #19326
closes: #19327

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(haskellcomplete): fix Undefined variable b:completingLangExtension.
Arkissa [Wed, 4 Feb 2026 15:45:05 +0000 (15:45 +0000)] 
runtime(haskellcomplete): fix Undefined variable b:completingLangExtension.

closes: #19259

Signed-off-by: Arkissa <mrarkssac@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.1.2129: MS-Windows: font size calculation slightly wrong, causing line gaps v9.1.2129
Yasuhiro Matsumoto [Wed, 4 Feb 2026 15:26:22 +0000 (15:26 +0000)] 
patch 9.1.2129: MS-Windows: font size calculation slightly wrong, causing line gaps

Problem:  MS-Windows: font size calculation slightly wrong, causing
          vertical line gaps (Maxim Kim, after v9.1.2127)
Solution: Update font size calculation when using DirectX
          (Yasuhiro Matsumoto).

Use pre-calculated font ascent from font metrics instead of fixed
formula (h * 0.83) to calculate text baseline. This prevents vertical
text shift when font fallback occurs with CJK characters.

closes: #19318

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): Update version9.txt with numbered patches
Christian Brabandt [Wed, 4 Feb 2026 15:07:40 +0000 (15:07 +0000)] 
runtime(doc): Update version9.txt with numbered patches

Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntimei(vim9): Always launch programs in background (linux)
Mateo Gjika [Tue, 3 Feb 2026 15:24:26 +0000 (15:24 +0000)] 
runtimei(vim9): Always launch programs in background (linux)

closes: #19293

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agotranslation(ta): Include Tamil Translation
தமிழ் நேரம் [Tue, 3 Feb 2026 15:21:41 +0000 (15:21 +0000)] 
translation(ta): Include Tamil Translation

closes: #19312

Signed-off-by: தமிழ் நேரம் <67970539+TamilNeram@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.1.2128: Heap use after free in buf_check_timestamp() v9.1.2128
Sean Dewar [Tue, 3 Feb 2026 15:00:12 +0000 (15:00 +0000)] 
patch 9.1.2128: Heap use after free in buf_check_timestamp()

Problem:  heap UAF if autocommands from reloading a file changed outside
          of Vim wipe its buffer.
Solution: Validate the bufref after buf_reload (Sean Dewar)

closes: #19317

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(c): only set keywordprg when there has 'man'
Mao-Yining [Tue, 3 Feb 2026 14:51:24 +0000 (14:51 +0000)] 
runtime(c): only set keywordprg when there has 'man'

closes: #19319

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(vim): Fix for :VimKeywordPrg when syntax does not match
Mark Woods [Tue, 3 Feb 2026 14:48:58 +0000 (14:48 +0000)] 
runtime(vim): Fix for :VimKeywordPrg when syntax does not match

When using vim9-syntax plugin, :VimKeywordPrg does not lookup functions
correctly, as it relies solely on syntax names to find the help topic.

The syntax keyword used for builtin function is vi9FuncNameBuiltin in
vim9-syntax plugin, not vimFuncName expected by :VimKeywordPrg, so the
fallback rules apply, and there is no fallback rule for function calls.

Fix by just checking if the first char after topic is '(', and if so
assume help topic is a function.

closes: #19320

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agotranslation(sv): Update tutor1.sv to version 1.7
Daniel Nylander [Tue, 3 Feb 2026 14:44:04 +0000 (14:44 +0000)] 
translation(sv): Update tutor1.sv to version 1.7

Updated Swedish translation of the Vim tutor from version 1.5 to 1.7.

Added missing lessons:
- Lesson 1.1.5: TEXT EDITING - APPENDING
- Lesson 1.1.6: EDITING A FILE
- Lesson 1.1 SUMMARY
- Lesson 1.2.3: ON OPERATORS AND MOTIONS
- Lesson 1.2.4: USING A COUNT FOR A MOTION
- Lesson 1.2.5: USING A COUNT TO DELETE MORE
- Lesson 1.2 SUMMARY
- Lesson 1.3.2: THE REPLACE COMMAND
- Lesson 1.3 SUMMARY
- Lesson 1.5.3: SELECTING TEXT TO WRITE (visual mode)
- Lesson 1.6: OPEN, APPEND, REPLACE, COPY/PASTE, OPTIONS
- Lesson 1.7: ONLINE HELP
- Lesson 1.8: CREATE A STARTUP SCRIPT
- Lesson 1.9: CONCLUSION

Original Swedish translation by Johan Svedberg.
Updated by Daniel Nylander.

closes: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agotranslation(sv): Add Swedish translation of tutor2
Daniel Nylander [Tue, 3 Feb 2026 14:40:16 +0000 (14:40 +0000)] 
translation(sv): Add Swedish translation of tutor2

Translated by Daniel Nylander.

Covers:
- Text objects (iw, aw, i[, a[, etc.)
- Named registers (a-z)
- Expression register (=)
- Numbered registers (0-9)
- Special registers (+, *, _, -)
- Marks and mark motions

related: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agotranslation(sv): Fix typo and help.svx formatting
Daniel Nylander [Tue, 3 Feb 2026 14:38:31 +0000 (14:38 +0000)] 
translation(sv): Fix typo and help.svx formatting

- Fix typo: paranteser -> parenteser (line 240)
- Fix h j k l navigation block being too wide
- Shorten Swedish text to fit proper column width

Closes feedback from PR #18849

related: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(doc): Clarify the behaviour of command completion functions
Christian Brabandt [Mon, 2 Feb 2026 16:55:41 +0000 (16:55 +0000)] 
runtime(doc): Clarify the behaviour of command completion functions

closes: #19294

Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2127: MS-Windows: DirectX renders font too small v9.1.2127
Yasuhiro Matsumoto [Mon, 2 Feb 2026 10:23:27 +0000 (10:23 +0000)] 
patch 9.1.2127: MS-Windows: DirectX renders font too small

Problem:  MS-Windows: DirectX renders font too small in comparison to
          the GDI rendering (Linwei, after v9.1.2125)
Solution: Implement proper font clipping (Yasuhiro Matsumoto)

related: #19254
closes:  #19304

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(odin): update indent and syntax scripts
Maxim Kim [Mon, 2 Feb 2026 10:16:36 +0000 (10:16 +0000)] 
runtime(odin): update indent and syntax scripts

- fix indent of a closing } after another } on previous line
- fix indent of consequent #+feature lines
- highlight #+features

closes: #19310

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(doc): update win_findbuf() return value
Mao-Yining [Mon, 2 Feb 2026 10:15:04 +0000 (10:15 +0000)] 
runtime(doc): update win_findbuf() return value

[] can also seen as `list<number>`

closes: #19311

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.1.2126: vim --version used single column for feature list v9.1.2126
Hirohito Higashi [Mon, 2 Feb 2026 10:08:10 +0000 (10:08 +0000)] 
patch 9.1.2126: vim --version used single column for feature list

Problem:  vim --version used single column for feature list
          (Ben Knoble, after v9.1.1898)
Solution: Restore old behaviour and assume 80 columns, making sure
          the feature list is shown in several columns
          (Ben Knoble, Hirohito Higashi).

fixes:  #19309
closes: #19315

Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(vim): Update base syntax, match Vim9 :unlet command
Doug Kearns [Sun, 1 Feb 2026 15:03:46 +0000 (15:03 +0000)] 
runtime(vim): Update base syntax, match Vim9 :unlet command

closes: #19290

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(doc): Improve the description at :help :cwindow
Doug Kearns [Sun, 1 Feb 2026 14:57:50 +0000 (14:57 +0000)] 
runtime(doc): Improve the description at :help :cwindow

Describe the "height" argument when opening the quickfix window.

See: #19302 ("[cl]window" has different behaviour from "[cl]open" about
their argument [height])

related: #19302
closes:  #19305

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2125: MS-Windows: DirectX rendering can be improved v9.1.2125
Yasuhiro Matsumoto [Sat, 31 Jan 2026 16:23:28 +0000 (16:23 +0000)] 
patch 9.1.2125: MS-Windows: DirectX rendering can be improved

Problem:  MS-Windows: DirectX rendering can be improved
Solution: Use lpDx advance, fix vertical text shift and correct
          font-size calculations (Yasuhiro Matsumoto).

This changes DirectWrite rendering to:
- Respect lpDx-provided advance widths instead of always adjusting to
  cell width.
- Use a fixed baseline derived from cell geometry to prevent vertical
  shifts when font fallback occurs (e.g. with CJK characters).
- Correctly convert LOGFONT lfHeight to DirectWrite font size using font
  metrics for closer GDI compatibility.

closes: #19254

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(qf): Update quickfix syntax
GX [Sat, 31 Jan 2026 16:19:36 +0000 (16:19 +0000)] 
runtime(qf): Update quickfix syntax

closes: #19296

Signed-off-by: GX <59413576+gx089@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): Fix some overlength lines
Doug Kearns [Sat, 31 Jan 2026 16:13:39 +0000 (16:13 +0000)] 
runtime(doc): Fix some overlength lines

closes: #19286

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(colors): improve catppuccin colorscheme
Maxim Kim [Sat, 31 Jan 2026 16:08:13 +0000 (16:08 +0000)] 
runtime(colors): improve catppuccin colorscheme

- fix readability issue with IncSearch/CurSearch
- add highlights to some of ftplugins distributed with vim

closes: #19295

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>
8 days agopatch 9.1.2124: blob2str() does not handle UTF-16 encoding v9.1.2124
Yasuhiro Matsumoto [Sat, 31 Jan 2026 15:53:26 +0000 (15:53 +0000)] 
patch 9.1.2124: blob2str() does not handle UTF-16 encoding

Problem:  blob2str() does not handle UTF-16 encoding
          (Hirohito Higashi)
Solution: Refactor the code and fix remaining issues, see below
          (Yasuhiro Matsumoto).

blob2str() function did not properly handle UTF-16/UCS-2/UTF-32/UCS-4
encodings with endianness suffixes (e.g., utf-16le, utf-16be, ucs-2le).
The encoding name was canonicalized too aggressively, losing the
endianness information needed by iconv.

This change include few fixes:

- Preserve the raw encoding name with endianness suffix for iconv calls
- Normalize encoding names properly: "ucs2be" → "ucs-2be", "utf16le" →
  "utf-16le"
- For multi-byte encodings (UTF-16/32, UCS-2/4), convert the entire blob
  first, then split by newlines

convert_string() cannot handle UTF-16 because it uses string_convert()
which expects NUL-terminated strings. UTF-16 contains 0x00 bytes within
characters (e.g., "H" = 0x48 0x00), causing premature termination.
Therefore, for UTF-16/32 encodings, the fix uses string_convert_ext()
with an explicit input length to convert the entire blob at once.

The code appends two NUL bytes (ga_append(&blob_ga, NUL) twice) because
UTF-16 requires a 2-byte NUL terminator (0x00 0x00), not a single-byte
NUL.

- src/strings.c: Add from_encoding_raw to preserve endianness, special
  handling for UTF-16/32 and UCS-2/4
- src/mbyte.c: Fix convert_setup_ext() to use == ENC_UNICODE instead of
  & ENC_UNICODE. The bitwise AND was incorrectly treating UTF-16/UCS-2
  (which have ENC_UNICODE + ENC_2BYTE etc.) as UTF-8, causing iconv
  setup to be skipped.

fixes:  #19198
closes: #19246

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2123: using NOT with a float returns a float in legacy script v9.1.2123
Yegappan Lakshmanan [Sat, 31 Jan 2026 10:29:01 +0000 (10:29 +0000)] 
patch 9.1.2123: using NOT with a float returns a float in legacy script

Problem:  using NOT with a float returns a float in legacy vim script
          (kennypete)
Solution: Return a number instead of a float (Yegappan Lakshmanan)

fixes:  #19282
closes: #19289

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2122: Vim9: Negating a float doesn't result in a bool v9.1.2122
Yegappan Lakshmanan [Sat, 31 Jan 2026 10:25:50 +0000 (10:25 +0000)] 
patch 9.1.2122: Vim9: Negating a float doesn't result in a bool

Problem:  Vim9: Negating a float doesn't result in a boolean
          (kennypete)
Solution: Make it return a boolean (Yegappan Lakshmanan).

related: #19282
related: #19289

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2121: Vim9: type issue when modifying a variable using :legacy v9.1.2121
Yegappan Lakshmanan [Sat, 31 Jan 2026 10:07:02 +0000 (10:07 +0000)] 
patch 9.1.2121: Vim9: type issue when modifying a variable using :legacy

Problem:  Vim9: type issue when modifying a variable using :legacy
          (kennypete)
Solution: In a vim9 script, when modifying a variable using the legacy
          command, check the type (Yegappan Lakshmanan).

fixes:  #18531
closes: #19292

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.1.2120: blob2str() does not restore trailing newline v9.1.2120
thinca [Sat, 31 Jan 2026 09:52:00 +0000 (09:52 +0000)] 
patch 9.1.2120: blob2str() does not restore trailing newline

Problem:  blob2str() does not restore trailing newline
Solution: Append empty string (thinca).

closes: #19288

Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): Reformat example at :h gui-w32-fullscreen
Doug Kearns [Sat, 31 Jan 2026 09:42:05 +0000 (09:42 +0000)] 
runtime(doc): Reformat example at :h gui-w32-fullscreen

Use standard indent and remove unnecessary bang.

closes: #19285

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2119: tests: Test_language_cmd fails on OpenBSD v9.1.2119
Kevin Goodsell [Fri, 30 Jan 2026 10:00:27 +0000 (10:00 +0000)] 
patch 9.1.2119: tests: Test_language_cmd fails on OpenBSD

Problem:  tests: Test_language_cmd fails on OpenBSD because the test
          uses an invalid locale name and expects the command to produce
          an error. OpenBSD accepts (almost) any locale name as valid by
          design, so the :lang command succeeds and the test fails.
Solution: Slightly update the "bad" locale name to make it something
          that OpenBSD considers invalid by adding a dot (but not ending
          with ".UTF-8"). Maintain the original two underscores in the
          name because that ensures Windows will also see it as invalid
          (Kevin Goodsell).

closes: #19280

Signed-off-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2118: 'cursorline' missing after :diffput to empty buf v9.1.2118
zeertzjq [Fri, 30 Jan 2026 09:57:56 +0000 (09:57 +0000)] 
patch 9.1.2118: 'cursorline' missing after :diffput to empty buf

Problem:  'cursorline' and part of 'statusline' are missing after
          :diffput to an empty buffer.
Solution: Make sure the cursor doesn't go beyond the last line after
          :diffput (zeertzjq)

related: neovim/neovim#37621
closes:  #19281

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2117: unnecessary braces in terminal.c v9.1.2117
Christian Brabandt [Fri, 30 Jan 2026 09:50:46 +0000 (09:50 +0000)] 
patch 9.1.2117: unnecessary braces in terminal.c

Problem:  unnecessary braces in terminal.c
          (Christ van Willegen, after v9.1.2113)
Solution: Remove braces

Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2116: crash when using 'tagfunc' v9.1.2116
Yasuhiro Matsumoto [Fri, 30 Jan 2026 09:45:55 +0000 (09:45 +0000)] 
patch 9.1.2116: crash when using 'tagfunc'

Problem:  crash when using 'tagfunc' (Rodrigo Queipo)
Solution: Do not add the user_data to the 'info' dictionary when called
          for insert mode completion (the TAG_INS_COMP flag is set).
          Completion should not depend on the state of a previous tag
          jump. (Yasuhiro Matsumoto)

fixes:  #19255
closes: #19284

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2115: CI: wrong preprocessor indentation v9.1.2115
Yasuhiro Matsumoto [Fri, 30 Jan 2026 09:35:05 +0000 (09:35 +0000)] 
patch 9.1.2115: CI: wrong preprocessor indentation

Problem:  CI: wrong preprocessor indentation
          (after v9.1.2114)
Solution: Update indentation (Yasuhiro Matsumoto)

closes: #19283

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.1.2114: modeless selection not copied to * register 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>
9 days 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>
9 days 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>
10 days 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>
10 days 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>
10 days 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>
10 days 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>
10 days 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>
10 days 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>
10 days 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>
10 days 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>
12 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>
12 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>
12 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>
12 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>
12 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>