]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
3 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>
3 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>
3 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>
3 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
6 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>
6 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>
7 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>
7 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>
7 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>
7 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>
7 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
2 weeks 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>
3 weeks 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>