]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
19 hours agoruntime(cpp): recognize C++23 stdfloat types master
Yasuhiro Matsumoto [Mon, 1 Jun 2026 21:15:41 +0000 (21:15 +0000)] 
runtime(cpp): recognize C++23 stdfloat types

Add float16_t, float32_t, float64_t, float128_t and bfloat16_t from
<stdfloat> as cppType under a new cpp_no_cpp23 guard.

fixes:  #16498
closes: #20367

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
19 hours agopatch 9.2.0586: Crash with TextPut autocmd when pasting in terminal buffer v9.2.0586
Foxe Chen [Mon, 1 Jun 2026 21:08:20 +0000 (21:08 +0000)] 
patch 9.2.0586: Crash with TextPut autocmd when pasting in terminal buffer

Problem:  Crash with TextPut autocmd when pasting in normal mode in a
          terminal buffer.
Solution: Skip the TextPut autocmds when reg and insert are both NULL
          and regname is not '.' (Foxe Chen).

closes: #20407

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
19 hours agoruntime(c): classify type qualifiers, function specifiers and C23 attributes
Yasuhiro Matsumoto [Mon, 1 Jun 2026 21:04:08 +0000 (21:04 +0000)] 
runtime(c): classify type qualifiers, function specifiers and C23 attributes

Move const, volatile, restrict and _Atomic to a new cTypeQualifier group
and inline and _Noreturn to cFunctionSpec. Add the C23 standard attributes
deprecated, fallthrough, maybe_unused, nodiscard, unsequenced and
reproducible as cStandardAttribute, and reclassify the existing noreturn
into the same group.

The new groups link to cStorageClass, so the default highlighting and any
existing cStorageClass override are unchanged, while allowing finer-grained
customization.

fixes:  #19574
closes: #20368

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
19 hours agopatch 9.2.0585: line number wrong after undoing a deletion in quickfix buffer v9.2.0585
glepnir [Mon, 1 Jun 2026 20:43:56 +0000 (20:43 +0000)] 
patch 9.2.0585: line number wrong after undoing a deletion in quickfix buffer

Problem:  Deleting a quickfix line and undoing it leaves the entry
          pointing one line below where it should.
Solution: Don't shift already cleared entries in qf_mark_adjust.

closes: #20379

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
19 hours agoruntime(sgf): Include sgf syntax script
Borys Lykah [Mon, 1 Jun 2026 20:36:45 +0000 (20:36 +0000)] 
runtime(sgf): Include sgf syntax script

closes: #20380

Signed-off-by: Borys Lykah <lykahb@fastmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
20 hours agopatch 9.2.0584: GTK4: missing UI features v9.2.0584
Foxe Chen [Mon, 1 Jun 2026 20:26:18 +0000 (20:26 +0000)] 
patch 9.2.0584: GTK4: missing UI features

Problem:  GTK4: :popup, menu item show/hide and menu bar state
          updates are not implemented.
Solution: Implement gui_make_popup(), gui_mch_menu_hidden() and
          gui_mch_draw_menubar() (Foxe Chen).

closes: #20393

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
20 hours agopatch 9.2.0583: completion: indent not ignored for fuzzy line completion v9.2.0583
glepnir [Mon, 1 Jun 2026 20:15:35 +0000 (20:15 +0000)] 
patch 9.2.0583: completion: indent not ignored for fuzzy line completion

Problem:  Indent is not stripped in whole-line completion (CTRL-X
          CTRL-L).
Solution: Skip the matched line's indent for whole-line matches in
          search_for_fuzzy_match (glepnir).

closes: #20405

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
20 hours agopatch 9.2.0582: GTK4: compile error when XFONTSET is defined v9.2.0582
Foxe Chen [Mon, 1 Jun 2026 19:46:46 +0000 (19:46 +0000)] 
patch 9.2.0582: GTK4: compile error when XFONTSET is defined

Problem:  GTK4: compile error when XFONTSET is defined
          (simozz)
Solution: Undefine FEAT_XFONTSET when GTK4 UI is defined
          (Foxe Chen)

fixes:  #20404
closes: #20406

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
20 hours agoruntime(vim): Update ftplugin, add heredocs to b:match_words
Doug Kearns [Mon, 1 Jun 2026 19:43:01 +0000 (19:43 +0000)] 
runtime(vim): Update ftplugin, add heredocs to b:match_words

This depends on chrisbra/matchit#61 for full support of non-alphnum
heredoc markers.

closes: #20399

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
42 hours agopatch 9.2.0581: After maximizing and deleting the quickfix buffer, window height... v9.2.0581
Yegappan Lakshmanan [Sun, 31 May 2026 21:38:30 +0000 (21:38 +0000)] 
patch 9.2.0581: After maximizing and deleting the quickfix buffer, window height is wrong

Problem:  After maximizing and deleting the quickfix buffer, window
          height is wrong (tertium)
Solution: Reset the winfixheight option when a quickfix buffer is
          deleted from a window (Yegappan Lakshmanan)

fixes:  #3378
closes: #20403

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
42 hours agoruntime(matchit): Update matchit plugin
Christian Brabandt [Sun, 31 May 2026 21:34:51 +0000 (21:34 +0000)] 
runtime(matchit): Update matchit plugin

Signed-off-by: Christian Brabandt <cb@256bit.org>
43 hours agotranslation(it): Update Italian xxd man page
Antonio Giovanni Colombo [Sun, 31 May 2026 21:24:16 +0000 (21:24 +0000)] 
translation(it): Update Italian xxd man page

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
43 hours agopatch 9.2.0580: xxd: binary output is not colored with -R v9.2.0580
Hirohito Higashi [Sun, 31 May 2026 21:11:55 +0000 (21:11 +0000)] 
patch 9.2.0580: xxd: binary output is not colored with -R

Problem:  With xxd the -R option colors the hex output but leaves the
          binary output produced by -b uncolored (Boris Verkhovskiy)
Solution: Color the binary (bits) output per byte with the same colors as
          the hex output, update the documentation and add a test
          (Hirohito Higashi).

fixes:  #20385
closes: #20401

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
43 hours agopatch 9.2.0579: :mksession, :mkview and :mkvimrc emit legacy Vim script v9.2.0579
Miguel Barro [Sun, 31 May 2026 21:03:12 +0000 (21:03 +0000)] 
patch 9.2.0579: :mksession, :mkview and :mkvimrc emit legacy Vim script

Problem:  :mksession, :mkview and :mkvimrc emit legacy Vim script
Solution: Generate vim9 script for those commands (Miguel Barro).

fixes:  #16549
fixes:  #16688
fixes:  #19005
closes: #20152

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
43 hours agopatch 9.2.0578: GTK4: :unmenu does not remove entries from the menubar v9.2.0578
Yasuhiro Matsumoto [Sun, 31 May 2026 20:32:40 +0000 (20:32 +0000)] 
patch 9.2.0578: GTK4: :unmenu does not remove entries from the menubar

Problem:  GTK4: gui_mch_destroy_menu() never removed the entry from its
          parent GMenu, so :unmenu was effectively a no-op against the
          visible menubar model.  After "Refresh menu" the Buffers menu
          items doubled because runtime/menu.vim BMShow() re-appended
          Refresh / Delete / Alternate / Next / Previous / -SEP- into a
          still-populated GMenu.  The GAction registered for the item
          and the reference on its submenu GMenu were also leaked.
Solution: Compute the entry's position in the parent GMenu by walking
          the vimmenu_T sibling list, call g_menu_remove(), remove the
          GAction we registered, and release our reference on the
          submenu GMenu (Yasuhiro Matsumoto)

fixes:  #20262
closes: #20314

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
44 hours agopatch 9.2.0577: GTK4: window resizing issues v9.2.0577
Foxe Chen [Sun, 31 May 2026 20:09:52 +0000 (20:09 +0000)] 
patch 9.2.0577: GTK4: window resizing issues

Problem:  GTK4: window size does not account for client-side decorations
Solution: Compute the client side decoration height from
          gui_resize_shell() (Foxe Chen)

fixes:  #20365
closes: #20388

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
44 hours agopatch 9.2.0576: popup_create() not blocked in secure/sandbox v9.2.0576
Christian Brabandt [Sun, 31 May 2026 20:00:14 +0000 (20:00 +0000)] 
patch 9.2.0576: popup_create() not blocked in secure/sandbox

Problem:  popup_create() is not gated by check_secure(), unlike the
          similar deferred-callback registrars timer_start() and
          feedkeys().  A popup created with a 'time' and 'callback' (or with
          close/filter callbacks) registers code that runs after the secure/sandbox
          context has been left, which is inconsistent with how
          timer_start() and feedkeys() handle the same situation.
Solution: Call check_secure() at the top of popup_create(), matching the
          timer_start()/feedkeys() pattern.

closes: #20400

Signed-off-by: Christian Brabandt <cb@256bit.org>
44 hours agopatch 9.2.0575: tests: filetype test for v9.2.0557 can be improved v9.2.0575
Patrick Meiser-Knosowski [Sun, 31 May 2026 19:52:46 +0000 (19:52 +0000)] 
patch 9.2.0575: tests: filetype test for v9.2.0557 can be improved

Problem:  tests: filetype test for v9.2.0557 can be improved
Solution: Use a correct Kawasaki robot AS test file
          (Patrick Meiser-Knosowski)

related: #20370
closes:  #20387

Signed-off-by: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
44 hours agopatch 9.2.0574: tests: missing test for v9.2.0572 v9.2.0574
thinca [Sun, 31 May 2026 19:43:42 +0000 (19:43 +0000)] 
patch 9.2.0574: tests: missing test for v9.2.0572

Problem:  tests: missing test for v9.2.0572 (the patch accidentally
          included some additional unwanted changes from #20372)
          (thinca)
Solution: Add additional test for delfunc
          (thinca)

Patch 9.2.0572 fixed ":call d.key()" and ":delfunction d.key" failing
with E1017 in Vim9 script, but only the :call form was covered by a
regression test.  Add Test_delfunction_dict_funcref to exercise both
"delfunction d.key" and "delfunction d['k2']".

closes: #20372

Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.2.0573: Vim9: missing EX_WHOLE on some block keywords v9.2.0573
Peter Kenny [Sun, 31 May 2026 19:14:21 +0000 (19:14 +0000)] 
patch 9.2.0573: Vim9: missing EX_WHOLE on some block keywords

Problem:  Several Vim9 keywords lack EX_WHOLE and can be shortened in
          Vim9 script, inconsistent with endif/enddef/endfor/endwhile/
          endtry which already have it.  The error from :endd in a
          nested function also hardcodes "enddef" instead of reporting
          what the user typed.  fullcommand("ho") returns "horizontal"
          even though :ho is below the documented 3-char minimum.
Solution: Add EX_WHOLE to :class, :def, :endclass, :endinterface,
          :endenum, :public and :static.  In get_function_body() pass
          the user-typed command to the error message.  Force :ho to
          CMD_SIZE in find_ex_command() so fullcommand() reflects the
          modifier minimum.  Extend tests and documentation accordingly
          (Peter Kenny).

fixes:  #20032
closes: #20191

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agoNSIS: Fix 32-bit context menu
K.Takata [Sun, 31 May 2026 18:46:40 +0000 (18:46 +0000)] 
NSIS: Fix 32-bit context menu

The 32-bit context menu was not translated after 8ae45e420218f5ed913c6b99cbccce99245ea97c.
NSIS requires a space after a `!`.

closes: #20396

Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.2.0572: lines disappear with wrapping virtual text after a double-width char v9.2.0572
Hirohito Higashi [Sun, 31 May 2026 18:43:42 +0000 (18:43 +0000)] 
patch 9.2.0572: lines disappear with wrapping virtual text after a double-width char

Problem:  With 'nowrap', when a line ends with a double-width character
          exactly at the window width and has wrapping "after" virtual
          text, the lines below disappear and "@@@" is shown.
Solution: Detect that the last character fills the rightmost column using
          its displayed width (win_chartabsize(), so a <Tab> or double-width
          character is handled like a single-width one), and also when it
          overflows the last column.  Also clarify in the help that "wrap"
          only takes effect with the 'wrap' option set.

fixes:   #20384
related: #12213
closes:  #20395

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
46 hours agopatch 9.2.0571: Vim9: memory leak in compile_nested_function() on failure v9.2.0571
thinca [Sun, 31 May 2026 18:28:34 +0000 (18:28 +0000)] 
patch 9.2.0571: Vim9: memory leak in compile_nested_function() on failure

Problem:  compile_nested_function() calls define_function(), which registers
          the new ufunc in func_hashtab with uf_refcount == 1.  For a local
          nested function the caller then reserves a local lvalue and
          generates a FUNCREF instruction; if either step fails, the code
          jumps to the theend label and leaves the ufunc behind with
          refcount 1 and no external reference, leaking it.  This mirrors
          patch 8.2.3951, which fixed the same leak for the "text after
          :enddef" branch a few lines above.
Solution: Call func_ptr_unref() on the ufunc before "goto theend" on both
          failure paths in the local-variable branch (thinca).

closes: #20394

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
46 hours agopatch 9.2.0570: GTK4: mouse wheel scrolling does not work correctly v9.2.0570
Foxe Chen [Sun, 31 May 2026 18:24:21 +0000 (18:24 +0000)] 
patch 9.2.0570: GTK4: mouse wheel scrolling does not work correctly

Problem:  GTK4: mouse wheel scrolling does not work correctly
Solution: Use gui_mch_getmouse() to obtain the pointer position, and
          add GTK_EVENT_CONTROLLER_SCROLL_DISCRETE to the scroll
          controller flags (Foxe Chen).

closes: #20389

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0569: out-of-bounds access in libvterm CSI 8 t resize v9.2.0569
Christian Brabandt [Sun, 31 May 2026 14:27:16 +0000 (14:27 +0000)] 
patch 9.2.0569: out-of-bounds access in libvterm CSI 8 t resize

Problem:  In the bundled libvterm the CSI 8 ; rows ; cols t sequence reaches
          on_resize() without validating its arguments.  Missing, zero or
          negative dimensions cause a negative-size memmove() in
          resize_buffer() and out-of-bounds accesses in set_lineinfo() and
          DECALN, all reachable from output rendered in a terminal window
          (Yukihiro Nakamura).
Solution: Reject missing, zero or negative dimensions before calling
          on_resize().  Also clamp a negative cell width in on_text() as
          hardening for the bundled libvterm.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0568: pythoncomplete: g:pythoncomplete_allow_import had no effect v9.2.0568
thinca [Sun, 31 May 2026 12:33:07 +0000 (12:33 +0000)] 
patch 9.2.0568: pythoncomplete: g:pythoncomplete_allow_import had no effect

Problem:  The security patch 9.2.0561 added a vim.eval() call inside
          Completer.evalsource() to honor g:pythoncomplete_allow_import.
          But the 'vim' module is only imported inside the outer
          vimcomplete() / vimpy3complete() function, not at the script's
          top level, so referring to it from a Completer method raises
          NameError.  The surrounding bare 'except' silently swallows
          the error and leaves allow_imports at 0, meaning the opt-in
          never takes effect -- 'import os' (and any other
          buffer-level import) is always skipped, no candidates are
          produced for 'os.<...>' and
          Test_popup_and_preview_autocommand() fails on the Windows
          CI matrix (Linux skips the test because Python 2 is absent).
Solution: Re-import 'vim' at the top of evalsource() in both
          pythoncomplete.vim and python3complete.vim so the eval reads
          the global, and set g:pythoncomplete_allow_import = 1 in the
          test (it is the opt-in intended for callers that trust the
          buffer contents) (thinca).

closes: #20386

Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0567: dict function name allocation failure not handled v9.2.0567
thinca [Sat, 30 May 2026 18:36:34 +0000 (18:36 +0000)] 
patch 9.2.0567: dict function name allocation failure not handled

Problem:  When defining a dictionary function, the function name string
          is allocated with vim_strnsave() but the result is not
          checked. On allocation failure the dict entry is left with
          type VAR_FUNC and a NULL name, and in the overwrite case the
          previous entry has already been freed before the NULL is
          stored.
Solution: Allocate the name before modifying the dict entry and bail out
          on failure, freeing it on all error paths (thinca)

closes: #20376

Co-Authored-by: Claude <noreply@anthropic.com>
Signed-off-by: thinca <thinca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(vim9): remove unnecessary temp variable
Mao-Yining [Sat, 30 May 2026 18:31:45 +0000 (18:31 +0000)] 
runtime(vim9): remove unnecessary temp variable

closes: #20374

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoCI: Bump github/codeql-action
dependabot[bot] [Sat, 30 May 2026 18:24:24 +0000 (18:24 +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.5 to 4.36.0
- [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.5...v4.36.0)

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

closes: #20377

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(autoload): consistently align with TABs in README.txt
zeertzjq [Sat, 30 May 2026 18:20:47 +0000 (18:20 +0000)] 
runtime(autoload): consistently align with TABs in README.txt

closes: #20378

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(pilrc): fix typo country names in pilrcCountry syntax list
Shuo Wang [Sat, 30 May 2026 18:18:41 +0000 (18:18 +0000)] 
runtime(pilrc): fix typo country names in pilrcCountry syntax list

Corrected "Indian" to "India" for accurate naming.

closes: #20369

Signed-off-by: wangshuo <wangshuo@kylinos.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0566: <C-w>f duplicates window if do_ecmd() is aborted v9.2.0566
Yohei Kojima [Sat, 30 May 2026 18:07:21 +0000 (18:07 +0000)] 
patch 9.2.0566: <C-w>f duplicates window if do_ecmd() is aborted

Problem:  If got_int is true when win_close() is called, it unexpectedly
          fails in the branch that detects failure in apply_autocmds().
          This causes wingotofile in do_window() to duplicate current
          window when do_ecmd() is aborted with got_int.
Solution: Fix do_window() to save the got_int value before trying to
          close the split window (Yohei Kojima).

Steps to reproduce:
 1. run `touch a && touch .a.swp && echo a > b && vim b`
 2. Type `<C-w>f`
 3. In the warning dialogue, type `a` to abort
 4. Current window is duplicated

closes: #20382

Signed-off-by: Yohei Kojima <yk@y-koj.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0565: [security]: out-of-bounds read in update_snapshot() v9.2.0565
Christian Brabandt [Sat, 30 May 2026 16:34:40 +0000 (16:34 +0000)] 
patch 9.2.0565: [security]: out-of-bounds read in update_snapshot()

Problem:  Out-of-bounds read in update_snapshot() when a terminal cell
          fills all VTERM_MAX_CHARS_PER_CELL slots (a base character
          plus five combining marks): the loop over cell.chars[] has no
          upper bound and libvterm leaves the array unterminated when full, so
          it reads past the array and appends out-of-bounds values to a
          buffer sized for only VTERM_MAX_CHARS_PER_CELL characters.
Solution: Bound the loop with i < VTERM_MAX_CHARS_PER_CELL, mirroring
          the loop in handle_pushline() (Christian Brabandt).

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0564: GTK4: tabline does not respond to mouse clicks v9.2.0564
Foxe Chen [Fri, 29 May 2026 19:47:24 +0000 (19:47 +0000)] 
patch 9.2.0564: GTK4: tabline does not respond to mouse clicks

Problem:  GTK4: tabline does not respond to mouse clicks
Solution: Connect on_select_tab() to "switch-page" to fire the tabline
          event, and on_tab_reordered() to "page-reordered" to call
          tabpage_move() with the new index (Foxe Chen).

closes: #20362

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0563: GTK3/Wayland: crash with right mouse-button in tabline v9.2.0563
Christoffer Aasted [Fri, 29 May 2026 19:39:04 +0000 (19:39 +0000)] 
patch 9.2.0563: GTK3/Wayland: crash with right mouse-button in tabline

Problem:  GTK3/Wayland: crash with right mouse-button in tabline
Solution: Use gui.mainwin and get coordinates (Christoffer Aasted).

GtkNotebook (tabline) is a windowless container widget causing a
nullptr deref inside `gdk_window_get_effective_parent()` as Wayland
lacks a surface to anchor to.

fixes:  #18864
closes: #20348

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0562: filetype: SGF files are not recognized v9.2.0562
Borys Lykah [Fri, 29 May 2026 19:23:27 +0000 (19:23 +0000)] 
patch 9.2.0562: filetype: SGF files are not recognized

Problem:  filetype: SGF files are not recognized
Solution: Detect *.sgf as sgf filetype
          (Borys Lykah)

Reference:
https://www.red-bean.com/sgf/index.html

closes: #20349

Signed-off-by: Borys Lykah <lykahb@fastmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(odin): remove const and opaque keywords
Maxim Kim [Fri, 29 May 2026 19:19:38 +0000 (19:19 +0000)] 
runtime(odin): remove const and opaque keywords

They don't exist in odin lang.

closes: #20364

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0561: [security]: possible code execution with python3complete v9.2.0561
Christian Brabandt [Fri, 29 May 2026 19:05:53 +0000 (19:05 +0000)] 
patch 9.2.0561: [security]: possible code execution with python3complete

Problem:  [security]: possible code execution with python3complete
Solution: Disable execution of import/from statements

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-52mc-rq6p-rc7c

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0560: filetype: busybox shebang lines are not recognized v9.2.0560
Christoffer Aasted [Fri, 29 May 2026 18:31:35 +0000 (18:31 +0000)] 
patch 9.2.0560: filetype: busybox shebang lines are not recognized

Problem:  filetype: busybox shebang lines are not recognized
Solution: Add filetype detection pattern for #!busybox sh, detect
          ash as shell in the shebang lines (Christoffer Aasted).

closes: #20358

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0559: filetype: Kaitai struct files are not recogonized v9.2.0559
Wu, Zhenyu [Fri, 29 May 2026 18:25:25 +0000 (18:25 +0000)] 
patch 9.2.0559: filetype: Kaitai struct files are not recogonized

Problem:  filetype: Kaitai struct files are not recogonized
Solution: Detect *.ksy files as yaml filetype (Wu, Zhenyu)

Reference:
https://doc.kaitai.io/

closes: #20353

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(colors): update colorschemes
Maxim Kim [Fri, 29 May 2026 18:22:32 +0000 (18:22 +0000)] 
runtime(colors): update colorschemes

closes: #20363

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(karel): Add indent plugin for Karel
Patrick Meiser-Knosowski [Fri, 29 May 2026 18:19:39 +0000 (18:19 +0000)] 
runtime(karel): Add indent plugin for Karel

closes: #20357

Signed-off-by: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days 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>
3 days 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>
3 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
4 days 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>
5 days 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>
5 days 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>
5 days 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>
5 days 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>
6 days 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>
6 days 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>
6 days 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>
6 days 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>
6 days 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>
6 days 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>
7 days 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>
7 days 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>
7 days 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>
7 days 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>
7 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
8 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
9 days 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>
10 days 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>
10 days 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>
10 days 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>