]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
2 months agopatch 9.2.0558: filetype: Popcap Reanimation files are not recognized v9.2.0558
Wu, Zhenyu [Fri, 29 May 2026 18:10:39 +0000 (18:10 +0000)] 
patch 9.2.0558: filetype: Popcap Reanimation files are not recognized

Problem:  filetype: Popcap Reanimation files are not recognized
Solution: Recognize *.reanim files as xml filetype (Wu, Zhenyu).

Reference:
https://github.com/wszqkzqk/PvZ-Portable

closes: #20354

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(2html): Convert to Vim9 script
Mao-Yining [Fri, 29 May 2026 18:02:01 +0000 (18:02 +0000)] 
runtime(2html): Convert to Vim9 script

closes: #19915

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: fritzophrenic <fritzophrenic@gmail.com>
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0557: filetype: Kawasaki Robots files are not recognized v9.2.0557
KnoP-01 [Fri, 29 May 2026 17:46:36 +0000 (17:46 +0000)] 
patch 9.2.0557: filetype: Kawasaki Robots files are not recognized

Problem:  filetype: Kawasaki Robots files are not recognized
Solution: Detect *.pg as kawasaki_as filetype, add filetype detection
          for *.as as atlas or kawasaki_as filetype (KnoP-01).

In Kawasaki robots (https://kawasakirobotics.com/products-robots/)
AS language

*.pg is the extention for a program file and
*.as is for a complete backup.

closes: #20370

Signed-off-by: KnoP-01 <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0556: GTK4: scrollbars not shown and do not respond to clicks v9.2.0556
Yasuhiro Matsumoto [Thu, 28 May 2026 21:39:54 +0000 (21:39 +0000)] 
patch 9.2.0556: GTK4: scrollbars not shown and do not respond to clicks

Problem:  GTK4: scrollbars not shown and do not respond to clicks
          (Steven A. Falco)
Solution: Use GTK_IS_SCROLLBAR and gtk_scrollbar_get_adjustment()
          instead of the GtkRange equivalents, override GtkForm's
          contains() to return FALSE (Yasuhiro Matsumoto).

fixes:  #20307
closes: #20326

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(karel): Add missing syntax items
KnoP-01 [Thu, 28 May 2026 21:32:25 +0000 (21:32 +0000)] 
runtime(karel): Add missing syntax items

Adds
- 'OF' for the SELECT instruction
- 'TO' and 'DOWNTO' for the FOR instruction

closes: #20356

Signed-off-by: KnoP-01 <knosowski@graeffrobotics.de>
Signed-off-by: Kirill Morozov <kirill@robotix.pro>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0555: too many strlen() in ex_substitute() v9.2.0555
John Marriott [Thu, 28 May 2026 21:24:12 +0000 (21:24 +0000)] 
patch 9.2.0555: too many strlen() in ex_substitute()

Problem:  too many strlen() in ex_substitute()
Solution: Use string_T type instead of recomputing the length
          (John Marriott).

closes: #20336

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0554: GTK4: memory leak in free_menu() v9.2.0554
Foxe Chen [Thu, 28 May 2026 21:17:23 +0000 (21:17 +0000)] 
patch 9.2.0554: GTK4: memory leak in free_menu()

Problem:  GTK4: memory leak in free_menu()
Solution: Free the label (Foxe Chen)

closes: #20343

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0553: runtime(netrw): netrw rejects hostnames containing _ v9.2.0553
Christian Brabandt [Thu, 28 May 2026 20:53:53 +0000 (20:53 +0000)] 
patch 9.2.0553: runtime(netrw): netrw rejects hostnames containing _

Problem:  runtime(netrw): netrw rejects hostnames containing _
          (lilydjwg)
Solution: Relax the restriction and allow the underscore

fixes: #20344

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0552: GTK4: F10 does nothing when the menubar is hidden v9.2.0552
Yasuhiro Matsumoto [Thu, 28 May 2026 20:41:14 +0000 (20:41 +0000)] 
patch 9.2.0552: GTK4: F10 does nothing when the menubar is hidden

Problem:  GTK4: F10 does nothing when the menubar is hidden
          (lilydjwg)
Solution: Handle F10 explicitly (Yasuhiro Matsumoto).

In GTK3 (and on Windows) pressing F10 brings up the menu even when
the menubar is hidden via 'go-=m'.  The GTK4 path passed F10 straight
through to Vim, so users who hide the menubar lost a way to reach it
via the keyboard.

If F10 is not currently mapped, pop up the full menubar GMenu model
as a transient GtkPopoverMenu at the top of the drawing area.  A
user mapping still wins, so this only adds behaviour when F10 would
otherwise be inert.

fixes:  #20259
closes: #20355

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0551: filetype: Tolk files are not recognized v9.2.0551
redavy [Thu, 28 May 2026 20:32:36 +0000 (20:32 +0000)] 
patch 9.2.0551: filetype: Tolk files are not recognized

Problem:  filetype: Tolk files are not recognized
Solution: Detect *.tolk files as tolk filetype, include a syntax and
          filetype plugin (redavy)

Tolk is a new-generation language for writing smart contracts on TON
blockchain, which is #1 in speed among other chains.

Reference:
https://docs.ton.org/blockchain-basics/tolk/overview

closes: #20320

Signed-off-by: redavy <hello.redavy@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0550: GTK4: 'mousehide' unhides cursor when switching tabs v9.2.0550
Foxe Chen [Thu, 28 May 2026 20:20:31 +0000 (20:20 +0000)] 
patch 9.2.0550: GTK4: 'mousehide' unhides cursor when switching tabs

Problem:  GTK4: 'mousehide' unhides cursor when switching tabs
Solution: Only unide if the mouse actually moved (Foxe Chen).

fixes:  #20346
closes: #20347

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0549: Cursor wrong after autoindent strip is skipped v9.2.0549
glepnir [Thu, 28 May 2026 20:13:48 +0000 (20:13 +0000)] 
patch 9.2.0549: Cursor wrong after autoindent strip is skipped

Problem:  cursor lands on the wrong line when a <Cmd> mapping or autocmd
          modifies lines during insert and the strip is skipped
          (after v9.2.0510)
Solution: Restore cursor to tpos when skipwhite skips the strip, instead
          of leaving it at end_insert_pos (glepnir).

related: #20290
closes:  #20332

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Kristijan Husak <husakkristijan@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0548: GTK4: terminal and pty job output is not processed v9.2.0548
Foxe Chen [Thu, 28 May 2026 19:29:55 +0000 (19:29 +0000)] 
patch 9.2.0548: GTK4: terminal and pty job output is not processed

Problem:  GTK4: terminal and pty job output is not processed
Solution: When there is at least one channel with the keep_open flag,
          arm a 20ms timer that calls channel_handle_events() and
          parse_queued_messages(), matching the behaviour of the GTK2/3
          backend (Foxe Chen).

fixes:  #20345
closes: #20350

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0547: "%v" in 'errorformat' is affected by 'tabstop' v9.2.0547
Hirohito Higashi [Thu, 28 May 2026 19:18:38 +0000 (19:18 +0000)] 
patch 9.2.0547: "%v" in 'errorformat' is affected by 'tabstop'

Problem:  The "%v" item in 'errorformat' interprets the reported
          screen column using the buffer's 'tabstop', so the cursor
          jumps to the wrong column when 'tabstop' is not 8
          (vimpostor).
Solution: When resolving a "%v" column, always count a <tab> as 8
          screen columns, independent of 'tabstop', matching the
          column numbers reported by compilers; keep the multi-byte
          handling.  Also use "%v" in the gcc compiler file and
          update the documentation (Hirohito Higashi).

fixes:  #20321
closes: #20359

Co-Authored-By: vimpostor <21310755+vimpostor@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0546: configure: GTK4 build requires GTK >= 4.10 v9.2.0546
Yasuhiro Matsumoto [Thu, 28 May 2026 18:57:20 +0000 (18:57 +0000)] 
patch 9.2.0546: configure: GTK4 build requires GTK >= 4.10

Problem:  configure: GTK4 build requires GTK >= 4.10
Solution: Update configure script and require at least GTK 4.10 version
          (Yasuhiro Matsumoto).

The GTK4 GUI uses GtkFontDialog, GtkFileDialog and GtkAlertDialog,
all introduced in GTK 4.10. Without this bump, configure passes on
systems with older GTK4 (e.g. Debian Bookworm ships 4.8) and the
build fails later in gui_gtk4.c with unknown type / implicit
function declaration errors.

fixes:  #20340
closes: #20360

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Clarify the use of <Plug> mappings
Enrico Maria De Angelis [Thu, 28 May 2026 18:31:33 +0000 (18:31 +0000)] 
runtime(doc): Clarify the use of <Plug> mappings

related: #6705
closes:  #20351

Signed-off-by: Enrico Maria De Angelis <enricomaria.dean6elis@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0545: popup: blending uses hardcoded fallback colors v9.2.0545
Shad [Wed, 27 May 2026 20:37:25 +0000 (20:37 +0000)] 
patch 9.2.0545: popup: blending uses hardcoded fallback colors

Problem:  Popup with opacity fades to black regardless of the colorscheme
          or 'background' option.  With a light colorscheme (or the
          default with background=light), lower opacity values darken the
          popup and it no longer matches the Normal background.
Solution: Compute fallback foreground and background colors from
  guifg/guibg, ctermfg/ctermbg, or deduce from the 'background' option,
  and use them in the popup blending paths instead of hardcoded
          white/black (Shad).

closes: #20285

Signed-off-by: Shad <shadow.walker@free.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0544: GTK4: window blank after a resize or drag v9.2.0544
Yasuhiro Matsumoto [Wed, 27 May 2026 20:12:19 +0000 (20:12 +0000)] 
patch 9.2.0544: GTK4: window blank after a resize or drag

Problem:  GTK4: window blank after a resize or drag
          (Steven A. Falco)
Solution: In drawarea_resize_cb() keep the backing surface in sync with
          the drawing area, preserving the old contents. Stop touching
          the surface in gui_mch_set_text_area_pos().
          Debounce gui_resize_shell() so it runs once the drag stream
          settles and update_screen() can paint (Yasuhiro Matsumoto).

related: #20307
closes:  #20327

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0543: Vim9: wrong error when redeclaring a typed variable v9.2.0543
Hirohito Higashi [Wed, 27 May 2026 19:29:16 +0000 (19:29 +0000)] 
patch 9.2.0543: Vim9: wrong error when redeclaring a typed variable

Problem:  In a :def function, redeclaring an existing variable with a
          type annotation (e.g. "var x: number = 1" used twice) reports
          "E488: Trailing characters" instead of the expected
          "E1017: Variable already declared".
Solution: Report E1017 when the redeclaration uses a "var", "final" or
          "const" command; keep E488 only for a type specified in an
          assignment that has no declaration keyword (Hirohito Higashi).

fixes:  #20337
closes: #20341

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(algol68): Update syntax, always highlight prelude symbolic operators
Doug Kearns [Wed, 27 May 2026 19:19:12 +0000 (19:19 +0000)] 
runtime(algol68): Update syntax, always highlight prelude symbolic operators

- Remove `g:algol68_symbolic_operators` config variable, these operators
  are now always highlighted along with bold word operators
- Remove GSL `/-` operator, this was a typo in the implementation and
  now fixed in the latest Genie release as `/=`

closes: #20195

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotranslation(it): Update Italian manpage
Antonio Giovanni Colombo [Tue, 26 May 2026 21:16:30 +0000 (21:16 +0000)] 
translation(it): Update Italian manpage

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0542: tests: test_codestyle fails v9.2.0542
Christian Brabandt [Tue, 26 May 2026 21:12:11 +0000 (21:12 +0000)] 
patch 9.2.0542: tests: test_codestyle fails

Problem:  tests: test_codestyle fails
          (after v9.2.0541)
Solution: Replace tabs by spaces

related: #20253

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0541: Vim9: endclass/endenum/endinterface can give errors v9.2.0541
Peter Kenny [Tue, 26 May 2026 19:02:20 +0000 (19:02 +0000)] 
patch 9.2.0541: Vim9: endclass/endenum/endinterface can give errors

Problem:  Vim9: ":endclass", ":endenum" and ":endinterface" can give a
          "command cannot be shortened" error, because the full-name
          check compares against the line start instead of the command
          word.
Solution: Skip a leading colon and white space before checking the end
          command name, update tests (Peter Kenny).

related: #20032
related: #20191
closes:  #20253

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0540: tests: Test_mswin_event_mouse is flaky v9.2.0540
K.Takata [Tue, 26 May 2026 18:46:35 +0000 (18:46 +0000)] 
patch 9.2.0540: tests: Test_mswin_event_mouse is flaky

Problem:  tests: Test_mswin_event_mouse is flaky
Solution: Mark as flaky (Ken Takata)

Test_mswin_event_mouse is flaky in console:
https://github.com/vim/vim-win32-installer/issues/446#issuecomment-4538212367

closes: #20331

Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0539: filetype: too many Bitbake include files are recognized v9.2.0539
Martin Schwan [Tue, 26 May 2026 18:41:11 +0000 (18:41 +0000)] 
patch 9.2.0539: filetype: too many Bitbake include files are recognized

Problem:  filetype: too many Bitbake include files are recognized
          (Brahmajit Das, after v9.1.1732)
Solution: Tighten the pattern to detect BitBake include files, update
          tests (Martin Schwan).

Be more strict when detecting BitBake inc files. In particular, only
match include keywords and variable assignments at the beginning of a
line (excluding whitespace).

Use non-capturing groups to slightly improve performance.

Use regex or-operators to exactly match BitBake assignment operators.
The previous expression would falsely match

    FOO .=. "bar"

, which is not valid BitBake syntax. The new capturing group is more
specific and matches only valid assignments.

fixes:  #20288
closes: #20335

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Document ft_recommended_style
Christian Brabandt [Tue, 26 May 2026 18:34:06 +0000 (18:34 +0000)] 
runtime(doc): Document ft_recommended_style

related: #20036

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0538: Cannot keep leading whitespace in %{} statusline expr v9.2.0538
glepnir [Mon, 25 May 2026 17:30:22 +0000 (17:30 +0000)] 
patch 9.2.0538: Cannot keep leading whitespace in %{} statusline expr

Problem:  A leading space in the result of a %{} item is sometimes
          stripped, and an all-digit result is converted to a number.
Solution: Add %0{} atom which inserts the expression result verbatim
          (glepnir)

fixes:  #3898
closes: #20315

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(spec): Drop obsolete s:GetRelVer() function
Christian Brabandt [Mon, 25 May 2026 17:21:43 +0000 (17:21 +0000)] 
runtime(spec): Drop obsolete s:GetRelVer() function

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0537: GTK4: mouse popup menu does not show up at mouse pointer v9.2.0537
Yasuhiro Matsumoto [Mon, 25 May 2026 17:08:59 +0000 (17:08 +0000)] 
patch 9.2.0537: GTK4: mouse popup menu does not show up at mouse pointer

Problem:  GTK4: mouse popup menu does not show up at mouse pointer,
          Drawing area blanks while popover is open
          (lilydjwg, after v9.2.0501)
Solution: Query the pointer position, make the popover parented to the
          surrounding GtkOverlay  and build it from buttons instead of a
          GMenu model(Yasuhiro Matsumoto)

fixes:  #20255
closes: #20260

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0536: tests: Test_invalid_args() fails on GTK4 without xterm_clipboard v9.2.0536
Christian Brabandt [Mon, 25 May 2026 16:59:58 +0000 (16:59 +0000)] 
patch 9.2.0536: tests: Test_invalid_args() fails on GTK4 without xterm_clipboard

Problem:  tests: Test_invalid_args() fails on GTK4 builds when
          xterm_clipboard is not enabled
Solution: Add has('xterm_clipboard') check to the test, while at it,
          also document the --display argument.

closes: #20318

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base syntax, fix mismtatched :def return type
Doug Kearns [Mon, 25 May 2026 16:33:27 +0000 (16:33 +0000)] 
runtime(vim): Update base syntax, fix mismtatched :def return type

Anchor the return type separator ':' with a lookbehind as the relevant
nextgroup options use skipwhite.

closes: #20319

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0535: tests: matchit plugin is not tested v9.2.0535
Andrey Starodubtsev [Mon, 25 May 2026 16:29:23 +0000 (16:29 +0000)] 
patch 9.2.0535: tests: matchit plugin is not tested

Problem:  tests: matchit plugin is not tested
Solution: Add test_plugin_matchit, improve b:match_words for the html
          filetype plugin (Andrey Starodubtsev)

`b:match_words` which contains patterns used by `matchit` plugin to find
tag's counterpath, is fixed so that matching happens using the whole
tag, not just its first letter.

Also, it allows to find matching tag in case if there are spaces or
attributes after tag name.

fixes:  chrisbra/matchit#51
closes: #20313

Signed-off-by: Andrey Starodubtsev <andrey.starodubtsev@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0534: GTK UI does not support fullscreen mode v9.2.0534
Muraoka Taro [Mon, 25 May 2026 15:48:43 +0000 (15:48 +0000)] 
patch 9.2.0534: GTK UI does not support fullscreen mode

Problem:  GTK UI does not support fullscreen mode
Solution: Add support for fullscreen (guioptions+=s) mode
          (Muraoka Taro).

closes: #20303

Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0533: '[ mark moved to end of inserted text after CTRL-R CTRL-P paste v9.2.0533
Hirohito Higashi [Mon, 25 May 2026 15:36:30 +0000 (15:36 +0000)] 
patch 9.2.0533: '[ mark moved to end of inserted text after CTRL-R CTRL-P paste

Problem:  After CTRL-R CTRL-P (or CTRL-R CTRL-O) pastes a register
          into Insert mode, a follow-up edit such as backspace makes
          stop_arrow() rewrite Insstart with the post-paste cursor
          position.  As a result the '[ mark points at the end of the
          inserted text instead of its start  (agguser, after 9.2.0384)
Solution: In stop_arrow(), only pull Insstart back when the cursor
          moved above the previous Insstart, so a line-start backspace
          can still save the joined range (#20031) without disturbing
          the start position for inserts that advance the cursor
          (Hirohito Higashi).

related: #20031
fixes:   #20130
closes:  #20322

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0532: GTK: preedit font size is wrong for fractional point sizes v9.2.0532
Muraoka Taro [Mon, 25 May 2026 15:26:08 +0000 (15:26 +0000)] 
patch 9.2.0532: GTK: preedit font size is wrong for fractional point sizes

Problem:  GTK: preedit font size is wrong for fractional point sizes
Solution: Compute the font size as a double and round to the nearest
          integer (Muraoka Taro).

closes: #20316

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoCI: Split platform specific CI configurations into separated files
Muraoka Taro [Mon, 25 May 2026 15:23:47 +0000 (15:23 +0000)] 
CI: Split platform specific CI configurations into separated files

- ci-linux.yml for Linux
- ci-linux_asan.yml for Linux ASan
- ci-macos.yml for macOS
- ci-windows.yml for Windows

closes: #20325

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0531: tests: Test_cd_completion() fails on MS-Windows with E344 v9.2.0531
K.Takata [Mon, 25 May 2026 15:16:56 +0000 (15:16 +0000)] 
patch 9.2.0531: tests: Test_cd_completion() fails on MS-Windows with E344

Problem:  tests: Test_cd_completion() fails on MS-Windows with E344
Solution: Catch E344 in addition to E472 (Ken Takata)

Sometimes, Test_cd_completion fails with E344:
https://github.com/vim/vim-win32-installer/issues/446#issuecomment-4526975345

closes: #20328

Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(zig): Update upstream repo
Christian Brabandt [Mon, 25 May 2026 15:15:09 +0000 (15:15 +0000)] 
runtime(zig): Update upstream repo

related: #20312

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0530: WinBar row vertical separator not refreshed on window change v9.2.0530
Hirohito Higashi [Sun, 24 May 2026 17:43:32 +0000 (17:43 +0000)] 
patch 9.2.0530: WinBar row vertical separator not refreshed on window change

Problem:  After the current window changes, the vertical separator cell
          on the WinBar row keeps its previous VertSplit / VertSplitNC
          highlight.  Content rows and status line rows of the same
          window are refreshed correctly; only the WinBar row is left
          behind, so the WinBar's separator no longer matches the
          surrounding cells (Mao-Yining)
Solution: Include the WinBar row in draw_vsep_win() when redrawing
          from the top of the window.  When called with row == 0 the
          loop now starts at wp->w_winrow (the WinBar row when present)
          instead of W_WINROW(wp) (the content start), so the separator
          highlight on the WinBar row is updated together with the rest
          of the window (Hirohito Higashi).

fixes:  #20304
closes: #20310

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(compiler): Remove wrong escape in zig compiler files
bennyyip [Sun, 24 May 2026 17:41:58 +0000 (17:41 +0000)] 
runtime(compiler): Remove wrong escape in zig compiler files

closes: #20312

Signed-off-by: bennyyip <yebenmy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0529: GTK4: clipboard returns empty after a foreign app takes the selection v9.2.0529
Yasuhiro Matsumoto [Sun, 24 May 2026 17:29:04 +0000 (17:29 +0000)] 
patch 9.2.0529: GTK4: clipboard returns empty after a foreign app takes the selection

Problem:  GTK4: clipboard read returns empty after a foreign app takes
          the selection (lilydjwg, after v9.2.0501)
Solution: Skip the set_content call unless gdk_clipboard_is_local()
          still says we own the clipboard (Yasuhiro Matsumoto).

clipboard_changed_cb calls clip_lose_selection() which cascades into
clip_mch_lose_selection(), and that unconditionally called
gdk_clipboard_set_content(clipboard, NULL).  When the signal fires
because *another* app took the selection, this re-claims ownership
with NULL content, so the next gdk_clipboard_read_text_async() returns
empty and the user sees "Nothing in register *".

fixes:  #20256
closes: #20261

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0528: possible overflow in XIM resource handling v9.2.0528
Christian Brabandt [Sun, 24 May 2026 16:47:27 +0000 (16:47 +0000)] 
patch 9.2.0528: possible overflow in XIM resource handling

Problem:  possible overflow in XIM resource handling
          (Venukamatchi)
Solution: use vim_strncpy() with the buffer size

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0527: Possible double free in fill_partial_and_closure() v9.2.0527
Christian Brabandt [Sun, 24 May 2026 15:25:03 +0000 (15:25 +0000)] 
patch 9.2.0527: Possible double free in fill_partial_and_closure()

Problem:  Possible double free in fill_partial_and_closure()
          (xuqing yang)
Solution: Let the caller handle the free()

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0526: missing out-of-memory check in ex_substitute() v9.2.0526
John Marriott [Sun, 24 May 2026 09:08:59 +0000 (09:08 +0000)] 
patch 9.2.0526: missing out-of-memory check in ex_substitute()

Problem:  missing out-of-memory check in ex_substitute()
Solution: Bail out in case of out-of-memory (John Marriott)

closes: #20308

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0525: spell: memory leak in spell_read_dic() v9.2.0525
zeertzjq [Sun, 24 May 2026 09:03:59 +0000 (09:03 +0000)] 
patch 9.2.0525: spell: memory leak in spell_read_dic()

Problem:  spell: memory leak in spell_read_dic() (after 9.2.0524).
Solution: Free "pc" before breaking out of the loop (zeertzjq).

closes: #20309

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): update netrws "mt" command description
Christian Brabandt [Sun, 24 May 2026 08:56:17 +0000 (08:56 +0000)] 
runtime(doc): update netrws "mt" command description

fixes: #20302

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0524: spell: buffer overflow with many affix or compound flags v9.2.0524
Yasuhiro Matsumoto [Sat, 23 May 2026 19:56:10 +0000 (19:56 +0000)] 
patch 9.2.0524: spell: buffer overflow with many affix or compound flags

Problem:  spell: a word in a .dic file with many postponed prefix or
          compound flags overflows the fixed-size store_afflist[MAXWLEN]
          buffer in get_pfxlist() and get_compflags().
Solution: Add bounds checks (Yasuhiro Matsumoto).

closes: #20286

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotranslation(it): Update Italian manpage
Antonio Giovanni Colombo [Sat, 23 May 2026 19:21:42 +0000 (19:21 +0000)] 
translation(it): Update Italian manpage

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0523: tests: no test for using shellescape() in combination with :! v9.2.0523
Christian Brabandt [Sat, 23 May 2026 19:05:28 +0000 (19:05 +0000)] 
patch 9.2.0523: tests: no test for using shellescape() in combination with :!

Problem:  tests: no test for using shellescape() in combination with :!
Solution: Add a test that checks runtime files for using wrong
          combination of shellescape() with ! ex command

This has lead to a few security relevant issues, so add a test that
checks all runtime files for any ! followed by a shellescape() that does
not use the {special} arg.

related: Commit: 3fb5e58fbc63d86a3e65f1a141b0d67af2 (patch 9.2.0479:
         [security]: runtime(tar): command injection in tar plugin)

closes: #20286

Supported by AI

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0522: event_nr2name() in autocmd.c can be improved v9.2.0522
John Marriott [Sat, 23 May 2026 19:00:12 +0000 (19:00 +0000)] 
patch 9.2.0522: event_nr2name() in autocmd.c can be improved

Problem:  event_nr2name() in autocmd.c can be improved
Solution: Refactor it so that event_nr2name() returns a string_T type
          (John Marriott).

Additionally:
- change the define to an enum.
- in function auto_next_pat(), move some variables closer to where they
  are used; rename s to fmt along the way.

closes: #20272

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0521: GTK4: cannot resize shell after the window is shown v9.2.0521
Yasuhiro Matsumoto [Sat, 23 May 2026 18:49:43 +0000 (18:49 +0000)] 
patch 9.2.0521: GTK4: cannot resize shell after the window is shown

Problem:  GTK4: cannot resize shell after the window is shown
          (Maxim Kim, after v9.2.0501)
Solution: Always apply the requested size with
          gtk_window_set_default_size(), regardless of realized state
          (Yasuhiro Matsumoto).

fixes:  #20264
closes: #20269

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0520: Reversed text opacity in popup when termguicolor is set v9.2.0520
Shad [Sat, 23 May 2026 18:43:09 +0000 (18:43 +0000)] 
patch 9.2.0520: Reversed text opacity in popup when termguicolor is set

Problem:  When termguicolor is set, popup opacity seems reversed
          for the underlying text: when opacity go from 1 to 99,
          the greater opacity is, the more underlying text is readable.
Solution: Invert popup_color and base_fg when calling blend_colors
          (Shad).

fixes:  #20283
closes: #20284

Signed-off-by: Shad <shadow.walker@free.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0519: GTK4: GUI tabline is not displayed correctly v9.2.0519
Foxe Chen [Sat, 23 May 2026 18:35:07 +0000 (18:35 +0000)] 
patch 9.2.0519: GTK4: GUI tabline is not displayed correctly

Problem:  GTK4: GUI tabline is not displayed correctly, and double
          increments the index in the for() loop
Solution: Drop the additional increment (Foxe Chen)

closes: #20299

Co-Authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0518: GTK4: input method cannot compose text v9.2.0518
Yasuhiro Matsumoto [Sat, 23 May 2026 18:25:16 +0000 (18:25 +0000)] 
patch 9.2.0518: GTK4: input method cannot compose text

Problem:  GTK4: input method cannot compose text
          (lilydjwg, after v9.2.0501)
Solution: Render the over-the-spot preedit with a GtkPopover instead of
          a separate toplevel, so the compositor keeps
          keyboard focus on the drawing area and does not disable
          text-input-v3; attach the key controller to gui.drawarea and
          filter key events manually with gtk_im_context_filter_keypress()
          (Yasuhiro Matsumoto)

fixes:  #20257
closes: #20266

Co-Authored-by: lilydjwg <lilydjwg@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0517: quickfix: can set quickfixtextfunc in restricted/sandbox mode v9.2.0517
Yegappan Lakshmanan [Sat, 23 May 2026 18:16:22 +0000 (18:16 +0000)] 
patch 9.2.0517: quickfix: can set quickfixtextfunc in restricted/sandbox mode

Problem:  quickfix: can set quickfixtextfunc in restricted/sandbox mode
          (tacdm)
Solution: Disallow setting the quickfixtextfunc option from a sandbox
          and restricted mode (Yegappan Lakshmanan).

closes: #20305

Co-Authored-by: tacdm
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix a few small problems
zeertzjq [Sat, 23 May 2026 16:07:16 +0000 (16:07 +0000)] 
runtime(doc): fix a few small problems

closes: #20287

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0516: socketserver: spurious error when servername is taken v9.2.0516
Foxe Chen [Sat, 23 May 2026 15:55:28 +0000 (15:55 +0000)] 
patch 9.2.0516: socketserver: spurious error when servername is taken

Problem:  socketserver: when searching for a free socket path,
          socketserver_get_path() emits an error for each name that is
          already in use (after v9.2.0512).
Solution: Add an "ignore" argument to socketserver_get_path() to
          suppress the error (Foxe Chen).

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Tweak documentation style
Hirohito Higashi [Sat, 23 May 2026 15:47:32 +0000 (15:47 +0000)] 
runtime(doc): Tweak documentation style

closes: #20296

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoCI: Bump github/codeql-action
dependabot[bot] [Fri, 22 May 2026 23:12:27 +0000 (23:12 +0000)] 
CI: Bump github/codeql-action

Bumps the github-actions group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action).

Updates `github/codeql-action` from 4.35.4 to 4.35.5
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4.35.4...v4.35.5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.35.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

closes: #20297

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0515: virtualedit=insert doesn't work during change operation v9.2.0515
zeertzjq [Fri, 22 May 2026 23:08:29 +0000 (23:08 +0000)] 
patch 9.2.0515: virtualedit=insert doesn't work during change operation

Problem:  virtualedit=insert doesn't work during change operation
          (after 6.1.014).
Solution: Make virtual_op only affect virtualedit=block (zeertzjq).

related: neovim/neovim#35391
closes:  #20298

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0514: GTK4: build errors when socketserver is enabled v9.2.0514
Foxe Chen [Fri, 22 May 2026 22:18:03 +0000 (22:18 +0000)] 
patch 9.2.0514: GTK4: build errors when socketserver is enabled

Problem:  GTK4: build errors when socketserver is enabled
          (after v9.2.0512)
Solution: Drop unused functions (Foxe Chen)

closes: #20293

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0513: [security]: memory safety issues in spellfile.c v9.2.0513
Christian Brabandt [Fri, 22 May 2026 21:46:57 +0000 (21:46 +0000)] 
patch 9.2.0513: [security]: memory safety issues in spellfile.c

Problem:  [security]: memory safety issues in spellfile.c
          (tacdm)
Solution: Add recursion limit to read_tree_node(), add length limit
          check in tree_count_words(), use alloc_clear() in
          spell_read_tree().

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-3h95-3962-mmvf

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0512: clientserver uses binary protocol v9.2.0512
Foxe Chen [Fri, 22 May 2026 18:30:52 +0000 (18:30 +0000)] 
patch 9.2.0512: clientserver uses binary protocol

Problem:  clientserver feature uses binary protocol and is hard
          to understand
Solution: Rewrite the code based on channels and JSON messages
          (Foxe Chen).

closes: #19782

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0511: configure: when GTK4 is used also links in X11 libs v9.2.0511
Yasuhiro Matsumoto [Fri, 22 May 2026 18:09:33 +0000 (18:09 +0000)] 
patch 9.2.0511: configure: when GTK4 is used also links in X11 libs

Problem:  configure: when GTK4 is used also links in X11 libs
          (Reilly Brogan)
Solution: Disable linking against X11 libraries when GTK4 GUI is to be
          used (Yasuhiro Matsumoto)

GTK4 does not use any X11 APIs directly; the X11 backend is loaded by
GTK4 at runtime. Force with_x=no when --enable-gui=gtk4 so configure
does not probe for libICE/libSM/libX11/libXt/libXdmcp/libXpm, and so
packagers do not pull those into build dependencies. Also skip the
XSMP X11/SM/SMlib.h header check when X11 is disabled, since USE_XSMP
itself requires HAVE_X11.

fixes:  #20268
closes: #20289

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0510: setline() mapping may trigger autoindent v9.2.0510
glepnir [Fri, 22 May 2026 17:59:23 +0000 (17:59 +0000)] 
patch 9.2.0510: setline() mapping may trigger autoindent

Problem:  setline() insert mode mapping may trigger autoindent,
          corrupting the newly inserted line content (Evgeni Chasnovski)
Solution: Only strip autoindent whitespace when the rest of the line is
          all whitespace (glepnir).

fixes:  #19363
closes: #20290

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): add a few references to mouse behaviour
Christian Brabandt [Fri, 22 May 2026 17:44:50 +0000 (17:44 +0000)] 
runtime(doc): add a few references to mouse behaviour

fixes: #20281

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Update wrong shellescape() example
Christian Brabandt [Thu, 21 May 2026 20:15:59 +0000 (20:15 +0000)] 
runtime(doc): Update wrong shellescape() example

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotranslation(it): Update Italian translation
Antonio Giovanni Colombo [Thu, 21 May 2026 20:13:42 +0000 (20:13 +0000)] 
translation(it): Update Italian translation

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0509: term.c: compile error when LOG_TRN is enabled v9.2.0509
Muraoka Taro [Thu, 21 May 2026 20:05:14 +0000 (20:05 +0000)] 
patch 9.2.0509: term.c: compile error when LOG_TRN is enabled

Problem:  compile error when LOG_TRN is enabled
Solution: Use valid arguments (Muraoka Taro)

closes: #20278

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0508: completion: cannot complete user cmd :K with 'ignorecase' v9.2.0508
Yasuhiro Matsumoto [Thu, 21 May 2026 19:57:06 +0000 (19:57 +0000)] 
patch 9.2.0508: completion: cannot complete user cmd :K with 'ignorecase'

Problem:  completion: cannot complete user cmd :K with 'ignorecase'
          (rendcrx)
Solution: Skip the short-circuit when 'ignorecase' is set
          (Yasuhiro Matsumoto)

The set_cmd_index() short-circuit for the :k command treats ":k<X>" as
":k {X}" (mark argument), which makes ":kz<Tab>" never reach the
command-name expansion path. With 'ignorecase' the same prefix on other
letters (":gz<Tab>") completes a user command like :Gz, so the result is
inconsistent. Skip the short-circuit when 'ignorecase' is set; default
behaviour is preserved so the existing :k tests still pass.

fixes:  #20241
closes: #20275

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix a typo in :map-local
nyngwang [Thu, 21 May 2026 19:54:22 +0000 (19:54 +0000)] 
runtime(doc): fix a typo in :map-local

closes: #20276

Signed-off-by: nyngwang <nyngwang@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): re-generate vim.man
Christian Brabandt [Thu, 21 May 2026 19:52:00 +0000 (19:52 +0000)] 
runtime(doc): re-generate vim.man

related: #20186

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0507: Vim9 class: public/protected member name clash uses same error v9.2.0507
Hirohito Higashi [Thu, 21 May 2026 19:45:59 +0000 (19:45 +0000)] 
patch 9.2.0507: Vim9 class: public/protected member name clash uses same error

Problem:  When a public member and a protected member in a Vim9
          class have the same name (differing only in the leading '_'),
          Vim reports E1369 "Duplicate variable", which is also used for
          plain duplicate definitions.  Users cannot tell from the
          message whether the conflict is the public/protected naming
          rule or a real duplicate.
Solution: Add a dedicated error E1406 "Public and protected member
          have the same name" and emit it only when the name clash is
          between a public and a protected member.  Keep E1369 for
          genuine duplicate variable definitions (Hirohito Higashi).

fixes:  #20240
closes: #20277

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(debversions): Add stonking (26.10) as Ubuntu release name
Guilherme Puida Moreira [Thu, 21 May 2026 19:34:20 +0000 (19:34 +0000)] 
runtime(debversions): Add stonking (26.10) as Ubuntu release name

closes: #20282

Signed-off-by: Guilherme Puida Moreira <guilherme@puida.xyz>
Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix help tags for removed/reused error codes
Hirohito Higashi [Thu, 21 May 2026 19:03:50 +0000 (19:03 +0000)] 
runtime(doc): fix help tags for removed/reused error codes

Problem:  Several error codes (E614, E1319, E1321, E1323, E1400, E1401,
          E1402, E1406) were removed from errors.h in v9.1.0600 but
          their *Ennn* tags remained in the help files, so :help Ennn
          jumps to obsolete locations.  E1395 was later reused with a
          new meaning ("Using a null class") in v9.1.1119, but its tag
          is still placed in the type-alias section.
Solution: Remove the stale *Ennn* tags from the help files.  Move
          *E1395* to the vim9.txt null-values section to match its
          current meaning.  Also fix the indentation of *E1411*.
          Regenerate runtime/doc/tags.

closes: #20279

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(mbsync): Properly handle values for the "Sync" keyword
Cyril Roelandt [Wed, 20 May 2026 21:15:33 +0000 (21:15 +0000)] 
runtime(mbsync): Properly handle values for the "Sync" keyword

This has been manually tested with my personal mbsync configuration and
with the following test file:

    $ cat test.mbsyncrc
    Channel Foo
    # None may not be combined with other operations
    Sync None
    Sync None New
    # First form
    Sync Pull
    Sync Push
    Sync New
    Sync Old
    Sync Upgrade
    Sync ReNew
    Sync Gone
    Sync Delete
    Sync Flags
    Sync Invalid
    # Second form
    Sync PullNew
    Sync PullOld
    Sync PullUpgrade
    Sync PullReNew
    Sync PullGone
    Sync PullDelete
    Sync PullFlags
    Sync PullFull
    Sync PullAll
    Sync PullInvalid
    Sync PushNew
    Sync PushOld
    Sync PushUpgrade
    Sync PushReNew
    Sync PushGone
    Sync PushDelete
    Sync PushFlags
    Sync PushFull
    Sync PushAll
    Sync PushInvalid
    Sync NewInvalid
    # Multiple operations
    Sync New Upgrade Gone Flags
    # Mix of the two styles (an example from the mbsync manpage)
    Sync PullNew PullGone Push
    # Syntaxically correct, though they will raise a warning in mbsync:
    Sync PullNew Pull
    Sync PullNew Gone Push

closes: #20243

Signed-off-by: Pierrick Guillaume <pguillaume@fymyte.com>
Signed-off-by: Cyril Roelandt <tipecaml@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0506: home_replace() function can be improved v9.2.0506
John Marriott [Wed, 20 May 2026 18:38:55 +0000 (18:38 +0000)] 
patch 9.2.0506: home_replace() function can be improved

Problem:  home_replace() function can be improved
Solution: Refactor home_replace() to return the length of the string
          (John Marriott).

In addition:
- in function set_b0_fname() move ulen into the block where it is used.
- In function findswapname() rework logic around displaying "swap file
  already exists" dialogue so that literal message text is set once.

closes: #20249

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix GTK4 package name in src/INSTALL
Yasuhiro Matsumoto [Wed, 20 May 2026 18:36:11 +0000 (18:36 +0000)] 
runtime(doc): fix GTK4 package name in src/INSTALL

The GTK4 section in src/INSTALL pointed at libgtk-3-dev. Use
libgtk-4-dev and note that GTK4 is not the default and requires
--enable-gui=gtk4.

closes: #20254

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0505: GTK4: text looks blurry on HiDPI displays v9.2.0505
Yasuhiro Matsumoto [Wed, 20 May 2026 18:26:14 +0000 (18:26 +0000)] 
patch 9.2.0505: GTK4: text looks blurry on HiDPI displays

Problem:  GTK4: text looks blurry on HiDPI displays
          (Foxe Chen, after v9.2.0501)
Solution: Allocate the cairo surface at physical resolution and set the
          device scale, recreate it on scale-factor changes
          (Yasuhiro Matsumoto).

The backing cairo image surface was created at logical pixel size, so
GTK4 upscaled it when blitting to the physical framebuffer. Allocate
the surface at width*scale x height*scale and apply
cairo_surface_set_device_scale() so drawing code keeps using logical
coordinates while the surface itself has full physical resolution.
Also recreate the surface on notify::scale-factor when the window
moves between monitors with different scales.

fixes:  #20252
closes: #20258

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(context,typeset): Correct whitespace error in Log()'s 'edit' command
Lifepillar [Wed, 20 May 2026 18:20:04 +0000 (18:20 +0000)] 
runtime(context,typeset): Correct whitespace error in Log()'s 'edit' command

Also drop Last Change headers as this commit comes from the plugin's
maintainer.

related: #20242
related: #20244
closes:  #20263

Signed-off-by: Lifepillar <lifepillar@lifepillar.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0504: configure: requires X11 libraries for GTK4 build v9.2.0504
Yasuhiro Matsumoto [Wed, 20 May 2026 18:01:52 +0000 (18:01 +0000)] 
patch 9.2.0504: configure: requires X11 libraries for GTK4 build

Problem:  configure: requires X11 libraries for GTK4 build
          (after v9.2.0501)
Solution: Allow to build GTK4 even when no X11 libraries are present
          (Yasuhiro Matsumoto)

GTK4 does not use X11 APIs directly; the X11 backend is loaded by
GTK4 at runtime. Skip the X11 dependency enforcement when the user
explicitly passes --enable-gui=gtk4 so the build can succeed on
systems without X11 development headers.

closes: #20265

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(getscript,vimball,rust): Use correct shellescape() form for ! ex cmd
Christian Brabandt [Wed, 20 May 2026 17:56:05 +0000 (17:56 +0000)] 
runtime(getscript,vimball,rust): Use correct shellescape() form for ! ex cmd

Problem:  shellescape() called without {special} flag for :! ex command
Solution: Pass 1 as second argument to shellescape() in :! contexts

related: Commit: 3fb5e58fbc63d86a3e65f1a141b0d67af2 (patch 9.2.0479:
         [security]: runtime(tar): command injection in tar plugin)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0503: Makefile: Missing dependencies for new GTK4 source files v9.2.0503
Christian Brabandt [Wed, 20 May 2026 17:34:22 +0000 (17:34 +0000)] 
patch 9.2.0503: Makefile: Missing dependencies for new GTK4 source files

Problem:  Makefile: Missing dependencies for new GTK4 source files
          (Reilly Brogan, after v9.2.0501)
Solution: Re-run make depend, clean the result up and include the
          missing dependencies for the GTK4 source files

fixes: #20267

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): update cmdline-history (after v9.1.0895)
Christian Brabandt [Wed, 20 May 2026 07:13:52 +0000 (09:13 +0200)] 
runtime(doc): update cmdline-history (after v9.1.0895)

Reported-by: Hernán Ibarra Mejia <hernan@ibarramejia.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0502: runtime(netrw): bookmark handling can be improved v9.2.0502
J. Paulo Seibt [Tue, 19 May 2026 18:51:14 +0000 (18:51 +0000)] 
patch 9.2.0502: runtime(netrw): bookmark handling can be improved

Problem:  To goto or delete a bookmark, one needs to prefix a count
          for the bookmark number (e.g., "2gb" to open bookmark#2).
          As the bookmark list gets or deletes entries, the numbers
          keep changing, requiring listing the bookmarks with qb to
          discover the desired bookmark number. Typing gb or mB
          without a count targets g:netrw_bookmarklist[-1].
Solution: If no count is given to gb or mB, list all bookmarks and
          prompt for a number using inputlist(), similar to tag jump
          with g].

closes: #20211

Signed-off-by: J. Paulo Seibt <jpseibt@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): document new GTK4 GUI in version9.txt
Christian Brabandt [Tue, 19 May 2026 18:46:59 +0000 (18:46 +0000)] 
runtime(doc): document new GTK4 GUI in version9.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(syntax-tests): Always delete our copy of "src/testdir/vimcmd"
Aliaksei Budavei [Tue, 19 May 2026 18:30:50 +0000 (18:30 +0000)] 
runtime(syntax-tests): Always delete our copy of "src/testdir/vimcmd"

Also prune this file whenever:
- tests cannot be run on this OS;
- tests fail and no QuitPre event is supported for ":cquit".

related: #19127
closes:  #20247

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0501: GTK4: there is no GTK4 UI available v9.2.0501
Yasuhiro Matsumoto [Tue, 19 May 2026 18:13:27 +0000 (18:13 +0000)] 
patch 9.2.0501: GTK4: there is no GTK4 UI available

Problem:  GTK4: there is no GTK4 UI available
Solution: Implement GTK4 UI (Yasuhiro Matsumoto).

To enable, use the --enable-gui=gtk4 configure switch. Configure
currently favors GTK3 over GTK4 if no explicit --enable-gui switch has
been given and both libraries are present

closes: #19815

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(htmldjango): Remove unnecessary code.
tecis [Mon, 18 May 2026 21:46:24 +0000 (21:46 +0000)] 
runtime(htmldjango): Remove unnecessary code.

I submitted the PR #20232 to resolve an undesired behavior in with the
highlighter inheriting from "django.vim" and "html.vim". After
further testing I noticed the re-declaration of `djangoOperators` in
"htmldjango" is not necessary, and my conclusions where a mistake from a
not-clean test environment.

This PR reverses the effect of the commit #f03155a.

related: #20232
closes:  #20248

Signed-off-by: tecis <67809811+tecis@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoCI: Stop using AppVeyor
K.Takata [Mon, 18 May 2026 21:19:27 +0000 (21:19 +0000)] 
CI: Stop using AppVeyor

We started the Windows CI with AppVeyor (v7.4.872), but nowadays, GitHub Actions
supports Windows, and the performance is better than AppVeyor.
Especially, AppVeyor doesn't allow running multiple jobs in parallel.

Before 9.0.0529, we used VC 2010 on AppVeyor to ensure that C99 syntax
was not used.
Now we use some C99 syntax. Also, MSVC's C99 support level remains
almost the same since VS 2015. So, using VS 2015 isn't very useful.

closes: #20251

Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0500: filetype: some html files wrongly recognized as htmlangular v9.2.0500
truffle [Mon, 18 May 2026 20:46:24 +0000 (20:46 +0000)] 
patch 9.2.0500: filetype: some html files wrongly recognized as htmlangular

Problem:  filetype: some html files are wrongly recognized as htmlangular
Solution: Use the \< atom to anchor ng-template and ng-content to start
          of word (truffle)

Prevent false-positive htmlangular detection on words containing
'ng-template' or 'ng-content' as a substring (e.g. 'song-template',
'sing-content'). Anchor both branches with \< to require a word start,
matching the \<DTD\s\+XHTML\s idiom used five lines below.

related: neovim/neovim#39778.
closes:  #20246

Signed-off-by: truffle <truffleagent@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): INSTALL: "libwayland-dev" is required on Ubuntu for Wayland clipboard...
tecis [Mon, 18 May 2026 20:40:37 +0000 (20:40 +0000)] 
runtime(doc): INSTALL: "libwayland-dev" is required on Ubuntu for Wayland clipboard support

In GNU/Linux distros without X11 and only depending on the Wayland
Composer as a display server I could not find official documentation on
how to compile VIM with clipbloard support.

> This will become more relevant as common distros ship with Wayland
only environments. (sources & articles bellow)

Sources.

- [Gnome Blog: X11 Session Removal FAQ.](https://blogs.gnome.org/alatiera/2025/06/23/x11-session-removal-faq/)
- [KDE Blog: Going all-in on a Wayland future 2025-11-26.](https://blogs.kde.org/2025/11/26/going-all-in-on-a-wayland-future/)
- [Gnome Blog: An update on the X11 GNOME Session Removal 2025-06-08.](https://blogs.gnome.org/alatiera/2025/06/08/the-x11-session-removal/)

Articles.

- [It’s Foss: No More Xorg! Fedora 43 Will Be Wayland-only 2025-05-21](https://itsfoss.com/news/fedora-43-wayland-only/)
- [Desde Linux: The depreciation of X11 in Fedora continues and in Fedora 41 the Gnome session in X11 will disappear.](https://blog.desdelinux.net/en/The-depreciation-of-x11-in-fedora-continues-and-in-fedora-41-the-gnome-session-in-x11-will-disappear/)
- [How-To-Geek: The writing is on the wall for X11 on Linux, here's what is replacing it 2025-12-29.](https://www.howtogeek.com/x11-is-going-away-on-linux-heres-how-to-prepare/).
- [Dev.To: GNOME 50 Removes X11: What It Means for Linux Users 2026-03-16.](https://dev.to/the_nazar/gnome-50-removes-x11-what-it-means-for-linux-users-1ike)
- [LinuxSecurity.com: GNOME 50: Wayland-Only Brings Enhanced Security and Isolation](https://linuxsecurity.com/news/desktop-security/gnome-50-wayland-linux-security)
- [XDA Developers: KDE is finally killing X11, and I'm not as sad as I thought I'd be 2026-05-14](https://www.xda-developers.com/kde-dropping-x11-support/).

closes: #20245

Signed-off-by: tecis <67809811+tecis@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(typeset): Correct whitespace error in :lcd command
nagbu [Mon, 18 May 2026 20:36:07 +0000 (20:36 +0000)] 
runtime(typeset): Correct whitespace error in :lcd command

closes: #20242
closes: #20244

Signed-off-by: nagbu <me@nagbu.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotests(commondumps): Use character counts when marking columns
Aliaksei Budavei [Mon, 18 May 2026 19:07:08 +0000 (19:07 +0000)] 
tests(commondumps): Use character counts when marking columns

Continue using "strwidth" when calculating the position of
a column of interest, and start using "setcharpos" when
marking a line of interest so that paired-up marks remain
aligned columnwise across all three parts generated by
"term_dumpdiff", especially when multibyte characters are
written in the line before the marked column.

closes: #20237

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0499: modeline: allow to disable modelines with modelinestrict v9.2.0499
Christian Brabandt [Mon, 18 May 2026 18:59:03 +0000 (18:59 +0000)] 
patch 9.2.0499: modeline: allow to disable modelines with modelinestrict

Problem:  Cannot disable modeline processing when loading a file
          (Mao-Yining, after v9.2.0350)
Solution: Allow to disable modeline processing even when
          'modelienstrict' is in effect.

fixes:  #20103
closes: #20229

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0498: potential heap buffer overflow in if_xcmdsrv.c v9.2.0498
Foxe Chen [Sun, 17 May 2026 20:42:20 +0000 (20:42 +0000)] 
patch 9.2.0498: potential heap buffer overflow in if_xcmdsrv.c

Problem:  potential heap buffer overflow in if_xcmdsrv.c
          server_parse_message() (Michael Bommarito)
Solution: Add strlen() call (Foxe Chen)

fixes:  #20235
closes: #20236

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0497: Cannot jump to remote tags v9.2.0497
Miguel Barro [Sun, 17 May 2026 20:00:41 +0000 (20:00 +0000)] 
patch 9.2.0497: Cannot jump to remote tags

Problem:  Cannot jump to remote tags
          (after v9.2.0405)
Solution: Add the 'tagsecure' option (Miguel Barro)

closes: #20162

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0496: [security]: Code Injection in cucumber filetype plugin v9.2.0496
Christian Brabandt [Sun, 17 May 2026 19:39:24 +0000 (19:39 +0000)] 
patch 9.2.0496: [security]: Code Injection in cucumber filetype plugin

Problem:  [security]: Code Injection in cucumber filetype plugin
          (Christopher Lusk)
Solution: Use rubys Regexp.new() with the untrusted pattern

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-4473-94jm-w5x9

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.2.0495: [security]: runtime(netrw): code injection via NetrwBookHistSave() v9.2.0495
Christian Brabandt [Sun, 17 May 2026 18:53:48 +0000 (18:53 +0000)] 
patch 9.2.0495: [security]: runtime(netrw): code injection via NetrwBookHistSave()

Problem:  [security]: runtime(netrw): code injection via
          NetrwBookHistSave()
Solution: Properly quote the directory name using string() function
          (Srinivas Piskala Ganesh Babu)

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-crm5-rh6j-2c7c

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(just): add 'suffixesadd' to ftplugin
mathmil [Sun, 17 May 2026 18:08:46 +0000 (18:08 +0000)] 
runtime(just): add 'suffixesadd' to ftplugin

closes: #20197

Signed-off-by: mathmil <82173590+mathmil@users.noreply.github.com>
Signed-off-by: Peter Benjamin <petermbenjamin@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>