]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
16 hours agoruntime(sh): fix Bash/Ksh array highlighting after an escaped paren master
frapank [Sat, 25 Jul 2026 17:03:08 +0000 (17:03 +0000)] 
runtime(sh): fix Bash/Ksh array highlighting after an escaped paren

fixes:  #18712
closes: #20705

Signed-off-by: frapank <francesco.pankov+github@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agopatch 9.2.0856: GTK4: undercurl rendering is inefficient v9.2.0856
Foxe Chen [Sat, 25 Jul 2026 16:57:36 +0000 (16:57 +0000)] 
patch 9.2.0856: GTK4: undercurl rendering is inefficient

Problem:  In the GTK4 GUI the undercurl is drawn by building a path
          across the whole width of each decorated row.  With many
          undercurls on screen this causes frame drops.
Solution: Render a single cycle of the undercurl and tile it across the
          row with a repeating node, so the Vulkan and OpenGL
          renderers can repeat directly (Foxe Chen).

closes: #20829

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agoCI: Bump the github-actions group across 1 directory with 3 updates
dependabot[bot] [Sat, 25 Jul 2026 16:51:19 +0000 (16:51 +0000)] 
CI: Bump the github-actions group across 1 directory with 3 updates

Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [github/codeql-action](https://github.com/github/codeql-action) and [actions/labeler](https://github.com/actions/labeler).

Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v7.0.0...v7.0.1)

Updates `github/codeql-action` from 4.37.0 to 4.37.1
- [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.37.0...v4.37.1)

Updates `actions/labeler` from 6.2.0 to 7.0.0
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v6.2.0...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.37.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/labeler
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

closes: #20838

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agopatch 9.2.0855: 'showcmd' not redrawn with empty mapping triggered on timeout v9.2.0855
zeertzjq [Sat, 25 Jul 2026 16:46:29 +0000 (16:46 +0000)] 
patch 9.2.0855: 'showcmd' not redrawn with empty mapping triggered on timeout

Problem:  'showcmd' not redrawn with empty mapping triggered on timeout.
Solution: Don't postpone redraw when inside vgetorpeek(). Also move test
          for tabline 'showcmd' to test_tabline.vim.

fixes:  #20839
closes: #20840

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agoruntime(osc52): don't use osc52 provider if gui is running
Foxe Chen [Sat, 25 Jul 2026 16:44:20 +0000 (16:44 +0000)] 
runtime(osc52): don't use osc52 provider if gui is running

closes: #20841

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agoruntime(doc): clarify expandcmd() and "~" behaviour
Hirohito Higashi [Sat, 25 Jul 2026 16:40:40 +0000 (16:40 +0000)] 
runtime(doc): clarify expandcmd() and "~" behaviour

fixes: #20793

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agoruntime(doc): Tweak documentation style a bit
Hirohito Higashi [Sat, 25 Jul 2026 16:36:52 +0000 (16:36 +0000)] 
runtime(doc): Tweak documentation style a bit

closes: #20843

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
17 hours agoruntime(doc): remove incorrect note about spellcapcheck and the first word
Christian Brabandt [Sat, 25 Jul 2026 16:27:18 +0000 (16:27 +0000)] 
runtime(doc): remove incorrect note about spellcapcheck and the first word

'spellcapcheck' checks the first word in the file for a capital like any
sentence start: capcol is seeded to 0 for line 1 in spell_check_sblock().

This has been the case since the feature was added in v7.0100, so the note
that it "doesn't work for the first word in the file" is incorrect.

related: f9184a1d3151b5b727fec86c2ac0946c9c68df4d (code change)
related: 0d9c26dd8333aae4b20015f13fe2e8e1f07037bd (initial doc patch,
         just a few minutes later)
related: #20715

Signed-off-by: Christian Brabandt <cb@256bit.org>
17 hours agoruntime(doc): document &t_8u as &t_8f and &t_8b
Shay Hill [Sat, 25 Jul 2026 16:08:14 +0000 (16:08 +0000)] 
runtime(doc): document &t_8u as &t_8f and &t_8b

fixes:  #20413
closes: #20837

Signed-off-by: Shay Hill <shay_public@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
34 hours agopatch 9.2.0854: memory leak when reading a spell file with SN_SAL and SN_SOFO v9.2.0854
Christian Brabandt [Fri, 24 Jul 2026 22:51:53 +0000 (22:51 +0000)] 
patch 9.2.0854: memory leak when reading a spell file with SN_SAL and SN_SOFO

Problem:  Memory leak when a spell file has an SN_SAL section before an
          SN_SOFO section: set_sofo() reuses sl_sal without freeing the
          salitem_T entries left by read_sal_section() (after v9.2.0846).
Solution: Factor the SAL free loop into free_sal_items() and call it
          before set_sofo() reuses sl_sal.

closes:  #20836

Supported by AI.

Signed-off-by: Christian Brabandt <cb@256bit.org>
35 hours agoruntime(doc): Fix truncated sentence in :h map()
Christian Brabandt [Fri, 24 Jul 2026 22:23:34 +0000 (22:23 +0000)] 
runtime(doc): Fix truncated sentence in :h map()

fixes: #20725

Signed-off-by: Christian Brabandt <cb@256bit.org>
35 hours agopatch 9.2.0853: popup: popup images do not support scaling v9.2.0853
Foxe Chen [Fri, 24 Jul 2026 21:56:37 +0000 (21:56 +0000)] 
patch 9.2.0853: popup: popup images do not support scaling

Problem:  popup: popup images do not support scaling
Solution: Add popup scaling support for GTK4 UI
          (Foxe Chen).

closes: #20611

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
36 hours agopatch 9.2.0852: GTK: ligatures not correctly displayed v9.2.0852
Foxe Chen [Fri, 24 Jul 2026 20:51:52 +0000 (20:51 +0000)] 
patch 9.2.0852: GTK: ligatures not correctly displayed

Problem:  GTK: ligatures not correctly displayed
          (thunderbird-1990)
Solution: Split ligatures at cursor location (Foxe Chen).

fixes:  #12901
closes: #20708

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
36 hours agopatch 9.2.0851: Focus autocommands triggered inconsistently v9.2.0851
Christoffer Aasted [Fri, 24 Jul 2026 20:31:48 +0000 (20:31 +0000)] 
patch 9.2.0851: Focus autocommands triggered inconsistently

Problem:  Focus autocommands triggered inconsistently
Solution: Suppress dialog-generated focus events while a dialog is
          active and on X11 ignore the restoring focus_in_event()
          from closing a dialog (Christoffer Aasted).

closes: #20780

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agoUpdate .gitignore and .hgignore files
qeatzy [Fri, 24 Jul 2026 20:28:03 +0000 (20:28 +0000)] 
Update .gitignore and .hgignore files

Ignore everything below auto/ except for configure

fixes:  #20814
closes: #20815

Signed-off-by: qeatzy <qeatzy@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agopatch 9.2.0850: MS-Windows: commands from a client can be lost v9.2.0850
Hirohito Higashi [Fri, 24 Jul 2026 20:20:54 +0000 (20:20 +0000)] 
patch 9.2.0850: MS-Windows: commands from a client can be lost

Problem:  On MS-Windows commands sent by a client in quick succession,
          e.g. repeated "--remote-tab", can be lost: the files are not
          all opened (eight)
Solution: In the GUI the client message is handled re-entrantly, e.g.
          while a command line is being read during a redraw. Inserting
          the received keys into the typeahead buffer then corrupts it.
          Postpone inserting the keys until a safe point where the
          typeahead buffer is empty (Hirohito Higashi).

fixes:  #20810
closes: #20816

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agopatch 9.2.0849: filetype: osquery config files are not recognized v9.2.0849
Fionn Fitzmaurice [Fri, 24 Jul 2026 20:11:25 +0000 (20:11 +0000)] 
patch 9.2.0849: filetype: osquery config files are not recognized

Problem:  filetype: osquery config files are not recognized.
Solution: Detect osquery.conf as jsonc filetype (Fionn Fitzmaurice).

Reference:
https://osquery.readthedocs.io/en/stable/deployment/configuration/#configuration-components

closes: #20826

Signed-off-by: Fionn Fitzmaurice <git@fionn.computer>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agopatch 9.2.0848: tagfunc "cmd" with a generic Ex command corrupts the tag entry v9.2.0848
Hirohito Higashi [Fri, 24 Jul 2026 20:04:21 +0000 (20:04 +0000)] 
patch 9.2.0848: tagfunc "cmd" with a generic Ex command corrupts the tag entry

Problem:  When a tagfunc returns a "cmd" that is neither a line number nor
          a search pattern, the tag entry is corrupted: the "kind" field is
          lost and taglist() returns a mangled "cmd".
Solution: Accept any Ex command in "cmd" as in a tags file, terminate a
          generic command with a bar so the trailing fields are preserved,
          and reject a value that cannot be stored in a tag line with E987
          (Hirohito Higashi).

fixes:   #20781
related: #20790
closes:  #20828

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agoruntime(iar): Add iar compiler plugin
Andrey Starodoubtsev [Fri, 24 Jul 2026 20:00:13 +0000 (20:00 +0000)] 
runtime(iar): Add iar compiler plugin

closes: #20830

Signed-off-by: Andrey Starodoubtsev <andrey.starodoubtsev@gehealthcare.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
37 hours agoruntime(go): update Go syntax file
Billie Cleek [Fri, 24 Jul 2026 19:43:04 +0000 (19:43 +0000)] 
runtime(go): update Go syntax file

Update the Go syntax file with some recent changes made to vim-go to
correctly highlight the second and later lines of concatenated strings
in var or const blocks.

closes: #20835

Signed-off-by: Billie Cleek <bhcleek@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
38 hours agopatch 9.2.0847: [security]: vimball: code execution via .VimballRecord file v9.2.0847
Christian Brabandt [Fri, 24 Jul 2026 15:43:51 +0000 (17:43 +0200)] 
patch 9.2.0847: [security]: vimball: code execution via .VimballRecord file

Problem:  [security]: vimball: code execution via .VimballRecord file
          (tdjackey)
Solution: Forbid arbitrary commands, fix broken directory deletion code,
          refactor code

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r22p-fhw4-84p2

Signed-off-by: Christian Brabandt <cb@256bit.org>
38 hours agopatch 9.2.0846: [security]: heap buffer overflow in set_sofo() v9.2.0846
Yasuhiro Matsumoto [Thu, 23 Jul 2026 15:58:37 +0000 (00:58 +0900)] 
patch 9.2.0846: [security]: heap buffer overflow in set_sofo()

Problem:  [security]: heap buffer overflow in set_sofo()
          (Yazan Balawneh)
Solution: Reset sl_sal_first (Yasuhiro Matsumoto).

A crafted spell file with an empty SN_SAL section before an SN_SOFO
section reaches set_sofo() with sl_sal_first[] already set to -1 by
set_sal_first(). The counting loop then under-counts colliding
multi-byte "from" characters, allocates an undersized list and writes
past its end.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-9jqx-hgpr-6v64

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
39 hours agopatch 9.2.0845: [security]: arbitrary Ex command execution during C omni-completion v9.2.0845
Yasuhiro Matsumoto [Fri, 17 Jul 2026 00:11:42 +0000 (09:11 +0900)] 
patch 9.2.0845: [security]: arbitrary Ex command execution during C omni-completion

Problem:  [security]: arbitrary Ex command execution during C
          omni-completion (Threonine)
Solution: Match tags typeref literally to block Ex command injection
          (Yasuhiro Matsumoto).

Escaping only "/" and "\" left the typeref able to break out of the
:vimgrep pattern without a "/": an unclosed "[" makes vimgrep's pattern
skipping fail, and the parser then treats a following "|" as a command
separator, so the tag value runs as Ex commands during C omni-completion.
Match the field literally with \V so no regex metacharacter can affect
pattern parsing.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-cx73-phcg-3j5g

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
39 hours agopatch 9.2.0844: [security]: use-after-free on json decode error v9.2.0844
Yasuhiro Matsumoto [Thu, 16 Jul 2026 09:39:24 +0000 (18:39 +0900)] 
patch 9.2.0844: [security]: use-after-free on json decode error

Problem:  [security]: use-after-free on json decode error
          (@tdjackey)
Solution: Report the position from the current reader
          (Matsumoto Yasuhiro)

json_decode_item() caches "p" into js_buf, but json_decode_string() can
refill via channel_fill(), which frees the old js_buf. When the string
parse then fails (e.g. an invalid \u escape), the shared error path passed
the now-dangling "p" to semsg(), a heap use-after-free read reachable
pre-auth through the socketserver.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-69ch-22ch-r887

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0843: [security]: popup: opacity mask indexed out of bounds v9.2.0843
Hirohito Higashi [Wed, 22 Jul 2026 05:51:00 +0000 (14:51 +0900)] 
patch 9.2.0843: [security]: popup: opacity mask indexed out of bounds

Problem:  [security]: A "clipwindow" popup with "opacity" anchored to a
          text property can keep a negative window row when the anchor
          scrolls above the top of the host window.  The opacity mask
          loop then indexes the screen array before its start, causing
          an out-of-bounds read and a conditional out-of-bounds write
          (tdjackey).
Solution: Keep the popup window row at the first visible row and record
          the clipped-off top rows only in the top offset, so no
          consumer has to clamp the row and the opacity mask loop stays
          in bounds (Hirohito Higashi).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-pmvp-6rcj-98p4

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0842: [security]: stack buffer overflow in socket server v9.2.0842
Yasuhiro Matsumoto [Thu, 23 Jul 2026 20:50:10 +0000 (20:50 +0000)] 
patch 9.2.0842: [security]: stack buffer overflow in socket server

Problem:  [security]: stack buffer overflow in socket server
          (tdjackey)
Solution: Cap accepted socketserver clients (Yasuhiro Matsumoto)

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-49m8-wwxj-mr69

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0841: [security]: heap overflow when adding > 65535 text properties v9.2.0841
Yasuhiro Matsumoto [Thu, 23 Jul 2026 20:14:13 +0000 (20:14 +0000)] 
patch 9.2.0841: [security]: heap overflow when adding > 65535 text properties

Problem:  [security]: heap overflow when adding > 65535 text properties
          (Wang1rrr).
Solution: Verify that the number of text properties falls within the
          limit (Yasuhiro Matsumoto).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-hm4g-pjfx-m27j

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0840: [security]: code injection in netrw via bookmarks v9.2.0840
Yasuhiro Matsumoto [Mon, 6 Jul 2026 04:54:03 +0000 (13:54 +0900)] 
patch 9.2.0840: [security]: code injection in netrw via bookmarks

Problem:  [security]: code injection in netrw via bookmarks and history
          (David Carliez)
Solution: Escape the '|' explicitly (Yasuhiro Matsumoto)

The bookmark and history menu builders interpolate paths into :execute'd
:menu commands using g:netrw_menu_escape, which did not escape the Ex
command separator '|'. A crafted path could break out of the :menu command
and run arbitrary Ex/shell commands when the menu was built or triggered.

Add '|' to g:netrw_menu_escape for the menu names, escape the :e right-hand
side with fnameescape(), and quote the netrw#MakeTgt() argument with
string() instead of raw single-quote interpolation.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-rcr7-f3wr-22r2

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0839: [security]: arbitrary code execution via keyword lookup v9.2.0839
Yasuhiro Matsumoto [Thu, 23 Jul 2026 19:13:15 +0000 (19:13 +0000)] 
patch 9.2.0839: [security]: arbitrary code execution via keyword lookup

Problem:  [security]: arbitrary code execution via keyword lookup in
          sh.vim, zsh.vim and ps1.vim filetype plugin
          (manus-use)
Solution: For powershell, quote the commands using single quotes, for
          sh/zsh pass the argument as a separate list item to term_start()/system()
          (Yasuhiro Matsumoto).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r5v6-q6j8-8qw2

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(spellfile): xdg: Do not assume $HOME/.vim directory
Christian Brabandt [Wed, 22 Jul 2026 21:49:18 +0000 (21:49 +0000)] 
runtime(spellfile): xdg: Do not assume $HOME/.vim directory

fixes: #20794

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): clarify re-sourcing of Vim9 script behaviour
Christian Brabandt [Wed, 22 Jul 2026 21:18:31 +0000 (21:18 +0000)] 
runtime(doc): clarify re-sourcing of Vim9 script behaviour

related: #19205

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0838: searchcount() returns wrong cached maxcount v9.2.0838
glepnir [Wed, 22 Jul 2026 20:08:06 +0000 (20:08 +0000)] 
patch 9.2.0838: searchcount() returns wrong cached maxcount

Problem:  Cached searchcount() returns 'maxsearchcount' instead of the
          requested maxcount.
Solution: return the remembered last_maxcount (glepnir)

closes: #20701

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0837: Using wrong colors in hl_blend_attr() v9.2.0837
Shad [Wed, 22 Jul 2026 20:01:09 +0000 (20:01 +0000)] 
patch 9.2.0837: Using wrong colors in hl_blend_attr()

Problem:  Using wrong colors in hl_blend_attr()
          (after v9.2.0715)
Solution: Use the correct background color
          (Shad)

related: #20624
closes:  #20704

Signed-off-by: Shad <shadow.walker@free.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0836: filetype: .git-blame-ignore-revs file is not recognized v9.2.0836
Fionn Fitzmaurice [Wed, 22 Jul 2026 19:49:58 +0000 (19:49 +0000)] 
patch 9.2.0836: filetype: .git-blame-ignore-revs file is not recognized

Problem:  filetype: .git-blame-ignore-revs file is not recognized
Solution: Detect .git-blame-ignore-revs file as gitrevlist filetype,
          include syntax and filetype plugins (Fionn Fitzmaurice)

A Git revision list is

> a list of object names (i.e. one unabbreviated SHA-1 per line)...,
> comments (#), empty lines, and any leading and trailing whitespace are
> ignored.

(from Git's fsck.skipList documentation).

The default output of git rev-list will match this. It is also suitable
as input to git blame --ignore-revs-file.

This adds filetype detection matching .git-blame-ignore-revs files,
syntax highlighting and basic filetype settings.

closes: #20702

Signed-off-by: Fionn Fitzmaurice <fionn@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0835: features in version.c are not sorted v9.2.0835
Muraoka Taro [Wed, 22 Jul 2026 19:18:03 +0000 (19:18 +0000)] 
patch 9.2.0835: features in version.c are not sorted

Problem:  features in version.c are not sorted
Solution: Sort features case-insensitively (Taro Muraoka)

closes: #20717

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0834: cleared last search pattern is restored from viminfo v9.2.0834
Barrett Ruth [Wed, 22 Jul 2026 18:48:47 +0000 (18:48 +0000)] 
patch 9.2.0834: cleared last search pattern is restored from viminfo

Problem:  cleared last search pattern is restored from viminfo
Solution: Do not apply the search pattern and 'hlsearch' state read
          from viminfo while writing (Barrett Ruth).

fixes:  #20718
closes: #20720

Signed-off-by: Barrett Ruth <br@barrettruth.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0833: GTK4: menu mnemonics do not work properly v9.2.0833
Foxe Chen [Wed, 22 Jul 2026 18:29:31 +0000 (18:29 +0000)] 
patch 9.2.0833: GTK4: menu mnemonics do not work properly

Problem:  GTK4: menu mnemonics do not work properly
Solution: Force "mnemonics-visible" back on via a notify handler and
          set the active item on "mnemonic-activate" (Foxe Chen).

closes: #20722

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(netrw): fix E471 in Neovim when g:netrw_chgwin is one past the last window
erdivartanovich [Wed, 22 Jul 2026 18:22:15 +0000 (18:22 +0000)] 
runtime(netrw): fix E471 in Neovim when g:netrw_chgwin is one past the last window

Problem:  Opening a file from a netrw listing throws
          "E471: Argument required: keepj keepalt 2wincmd 1" when
          g:netrw_chgwin equals winnr('$')+1, e.g. after opening
          :Lexplore (which sets g:netrw_chgwin=2) and closing the
          sidebar, then browsing with :Explore in the remaining window.
          s:NetrwBrowseChgDir builds the window jump as
          "g:netrw_chgwin wincmd curwin", passing the saved window
          NUMBER where wincmd expects its single-letter argument.
Solution: Jump back to the saved window with "curwin wincmd w", as the
          surrounding comment intends; the following statement then
          performs the actual jump to g:netrw_chgwin.

The faulty line dates back to at least Vim 9.0
(runtime/autoload/netrw.vim:4976 at v9.0.0000).

Reported (against the since-archived netrw repo) in
saccarosium/netrw.vim#98 and neovim/neovim#34169.

Note: no test, because the error reproduces only in Neovim.

closes: #20741

Signed-off-by: erdivartanovich <erdivartanovich@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0832: socketserver: remote commands can be processed in reverse order v9.2.0832
Hirohito Higashi [Wed, 22 Jul 2026 18:15:02 +0000 (18:15 +0000)] 
patch 9.2.0832: socketserver: remote commands can be processed in reverse order

Problem:  When several clients send a command in quick succession, e.g.
          ":drop" from repeated "--remote-tab", the commands can be
          processed in reverse order, so the files open in the wrong
          order.
Solution: The server inserts a newly accepted client at the head of the
          client list, so pending clients are handled newest-first.
          Append the client to the end of the list instead, so they are
          handled in the order they were accepted (Hirohito Higashi).

closes: #20813

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0831: diff highlighting hard to read with syntax enabled v9.2.0831
Maxim Kim [Wed, 22 Jul 2026 17:22:44 +0000 (17:22 +0000)] 
patch 9.2.0831: diff highlighting hard to read with syntax enabled

Problem:  diff highlighting hard to read with syntax enabled and
          terminals having 256 or less colors (Andrey Butirsky)
Solution: Set a cterm foreground color (Maxim Kim)

fixes:  #4071
closes: #20711

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoUpdate .gitignore and .hgignore files
Christian Brabandt [Wed, 22 Jul 2026 17:15:59 +0000 (17:15 +0000)] 
Update .gitignore and .hgignore files

Ignore everything below auto/ except for configure

fixes: #20814

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0830: the completion menu is not used on terminals without colors v9.2.0830
Hirohito Higashi [Wed, 22 Jul 2026 10:03:11 +0000 (10:03 +0000)] 
patch 9.2.0830: the completion menu is not used on terminals without colors

Problem:  When the terminal reports no colors ("t_Co" is 0 or 1) the
          insert mode completion popup menu is not shown at all, while
          the command line completion popup menu ('wildoptions' contains
          "pum") is shown.  In 'wildmenu' completion the current match
          cannot be told apart from the other matches (Maxim Kim)
Solution: Show the insert mode completion popup menu regardless of the
          number of colors and add "term" attributes to the default
          highlighting of Pmenu, PmenuSel and PmenuThumb.  The wildmenu
          is drawn with the attributes of the status line, which is
          reversed, and on most terminals the standout mode is the same
          as the reverse mode, thus use the underline mode for the
          default highlighting of WildMenu (Hirohito Higashi).

fixes:  #20800
closes: #20803

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(colors): update colorschemes
Maxim Kim [Wed, 22 Jul 2026 09:54:31 +0000 (09:54 +0000)] 
runtime(colors): update colorschemes

1. new colorscheme `novum` port of nvim dev_theme
2. minor updates to
    - catppuccin
    - habamax
    - lunaperche
    - retrobox
    - ron
    - shine
    - wildcharm

closes: #20723

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0829: Sessions do not preserve script version for expression options v9.2.0829
Illia Bobyr [Wed, 22 Jul 2026 09:48:19 +0000 (09:48 +0000)] 
patch 9.2.0829: Sessions do not preserve script version for expression options

Problem:  Sessions do not preserve script version for option holding
          expressions
Solution: Remember script version for string options, and add a
          ":legacy" prefix for ":set"/":setlocal" calls when necessary

Since patch v9.2.0579 (":mksession, :mkview and :mkvimrc emit legacy Vim
script") session files are marked as Vim9 script.  A few options have
Vim expressions as their values.  When inserted their values literally
into a Vim9 script, these expressions are now evaluated as Vim9
expressions.  But the original value might have been set by a legacy
script.

In order to be backward compatible and not break most of the existing
file type plugin scripts, we need to consider the script version of the
option value.  If an option was set in a legacy script, or via "legacy
set"/"legacy setlocal", we need to restore it using the "legacy" prefix
as well.

Options are not marked as expression options, vs string options, vs bool
options.  We only know if an option is a bool, number or a string
option.  It seems safe to set bool and number options using Vim9
semantics.  But for string options we do not know if an option value is
a Vim expression.  And so, if it was set by a legacy script we just
use a conservative approach and prefix the "set" or "setlocal" command
with "legacy" for all string options set in a legacy context.

related: #20152
closes:  #20696

Signed-off-by: Illia Bobyr <illia.bobyr@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): improve suggested detection method for WSL
Mao-Yining [Wed, 22 Jul 2026 09:44:53 +0000 (09:44 +0000)] 
runtime(doc): improve suggested detection method for WSL

Current method can't work in Windows Terminal as far as I know.

This is a way that already had been adopted in `dist/vim9.vim`.

closes: #20714

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): clarify 'icon' and 'title' interaction for screen 5
Christoffer Aasted [Wed, 22 Jul 2026 09:39:02 +0000 (09:39 +0000)] 
runtime(doc): clarify 'icon' and 'title' interaction for screen 5

related: #20553
related: #20604
closes:  #20703

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0828: GTK4: hardware rendering can be improved v9.2.0828
Foxe Chen [Wed, 22 Jul 2026 09:31:53 +0000 (09:31 +0000)] 
patch 9.2.0828: GTK4: hardware rendering can be improved

Problem:  GTK4: hardware rendering can be improved
Solution: Refactor code (Foxe Chen)

This change does the following:

- Make each cell have its own array of glyphs, that represent it. Before
  glyphs were stored per span of drawn text.
- Background color, invert blend is now stored as a single row pixel
  buffer, that is scaled up to size when rendering. No need to have logic
  for merging visual attributes together.
- Underlines, undercurls, and strikethroughs use a mask outline, and a
  pixel buffer (similar to the above) that is opaque at parts where there
  are under decorations. This means having 100 individual undercurls that
  are all separated by spaces in a row will only result in a single mask
  node.
- Render nodes are cached per row, because creating render nodes are
  cheap. The actual heavy stuff would be shaping text into glyphs, which
  are cached per cell.
- Use PangoAttrFontFeatures to handle guiligatures option, instead of
  manually splitting draw calls, which is buggy and complex (some complex
  unicode characters are not rendered correctly).
- Render block cursor separately, this prevents a full redraw of the text
  for the row the cursor is on (only if glyphs in cell underneath cursor
  did not change).

Complex unicode characters that bleed outside of the cell should look
better, since the background is always rendered before all glyphs,
meaning they are not clipped off.

fixes:  #13435
closes: #20674

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0827: :startinsert enters Insert mode in a non-modifiable buffer v9.2.0827
Hirohito Higashi [Wed, 22 Jul 2026 09:23:31 +0000 (09:23 +0000)] 
patch 9.2.0827: :startinsert enters Insert mode in a non-modifiable buffer

Problem:  ":startinsert" enters Insert mode in a buffer where
          'modifiable' is off, the error only appears when a character
          is typed.  Typing "i" gives the error right away (Barrett Ruth)
Solution: Give the error when the buffer is not modifiable, like "i"
          does.  Keep ignoring the command in a terminal window, where
          ":startinsert" is documented to be ineffective, and keep
          accepting it when 'insertmode' is set, like "i" does
          (Hirohito Higashi).

fixes:  #20804
closes: #20806

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0826: highlighting for broken terminals can be improved v9.2.0826
Maxim Kim [Wed, 22 Jul 2026 09:16:53 +0000 (09:16 +0000)] 
patch 9.2.0826: highlighting for broken terminals can be improved

Problem:  highlighting for broken terminals can be improved
          (Maxim Kim)
Solution: Make the highlighting work better when the terminal does not
          support colors (Maxim Kim)

In a colorless or broken terminal emulator current syntax highlighting
is too intense with using bold and underline for various syntax
elements.

In this scenario, when the colors are not available at all, the most
important part of the syntax is the comments, something that is not
executed or compiled.

- Comments are highlighted as bold
- All other syntax elements are set to NONE
- LineNr is not highlighted (was underline)
- SpecialKey is not highlighted (was bold)

fixes:  #20712
closes: #20799

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0825: regexp: submatch in a look-behind is empty with the NFA engine v9.2.0825
Hirohito Higashi [Wed, 22 Jul 2026 08:49:26 +0000 (08:49 +0000)] 
patch 9.2.0825: regexp: submatch in a look-behind is empty with the NFA engine

Problem:  With the NFA engine a sub-expression inside a variable width
          look-behind, e.g. "\v(.)@<=", is empty for the first match on
          every line except the first one.  The old engine is correct
          (Mukundan)
Solution: The look-behind is retried from the previous line, because the
          width of "." is over-estimated.  While scanning that line the
          start state is added at the end of the line, where it gets the
          position of the line break as its start position, even though
          the match actually starts on the next line.  Use the position
          of the start of the next line in that case (Hirohito Higashi).

fixes:  #20802
closes: #20805

Co-Authored-By: Claude Opus 4.8 (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.0824: Makefile: Make tags depends on configure v9.2.0824
Christoffer Aasted [Wed, 22 Jul 2026 08:42:59 +0000 (08:42 +0000)] 
patch 9.2.0824: Makefile: Make tags depends on configure

Problem:  Makefile: Make tags depends on configure
Solution: Separate the make tags into a separate makefile
          (Christoffer Aasted)

closes: #20707

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0823: tests: Test_clientserver_servlist_list may fail v9.2.0823
James McCoy [Tue, 21 Jul 2026 16:28:59 +0000 (16:28 +0000)] 
patch 9.2.0823: tests: Test_clientserver_servlist_list may fail

Problem:  tests: Test_clientserver_servlist_list may fail
Solution: Skip Test_clientserver_serverlist_list for non-gvim GUI builds
          (James McCoy)

Running a GUI build that cannot access the GUI clientserver will fail
like below

    command line..script /build/package/src/testdir/runtest.vim[636]..function RunTheTest[63]..Test_clientserver_serverlist_list[16]..WaitForAssert[2]..<SNR>4_WaitForCommon[11]..<lambda>23 line 1: Pattern 'XVIMTEST' does not match ''
    command line..script /build/package/src/testdir/runtest.vim[636]..function RunTheTest[63]..Test_clientserver_serverlist_list line 18: Expected 'list<string>' but got 'string'
    Caught exception in Test_clientserver_serverlist_list(): Vim(call):E897: List or Blob required @ command line..script /build/package/src/testdir/runtest.vim[636]..function RunTheTest[63]..Test_clientserver_serverlist_list, line 19

closes: #20719

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0822: GTK4: crash menu id is null in gui_mch_destroy_menu() v9.2.0822
Foxe Chen [Tue, 21 Jul 2026 16:23:32 +0000 (16:23 +0000)] 
patch 9.2.0822: GTK4: crash menu id is null in gui_mch_destroy_menu()

Problem:  GTK4: crash menu id is null in gui_mch_destroy_menu()
Solution: Check that menu->id is not null before calling
          vim_menu_remove() (Foxe Chen).

closes: #20724

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0821: filetype: msmtp system-wide rc file not detected v9.2.0821
Doug Kearns [Tue, 21 Jul 2026 16:15:48 +0000 (16:15 +0000)] 
patch 9.2.0821: filetype: msmtp system-wide rc file not detected

Problem:  filetype: msmtp system-wide rc file not detected (chdiza).
Solution: Detect 'msmtprc' as filetype msmtp, like '.msmtprc'
          (Doug Kearns).

fixes:  #20751
closes: #20752

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0820: GUI: hidden popup image is displayed and not erased v9.2.0820
Hirohito Higashi [Mon, 20 Jul 2026 17:50:06 +0000 (17:50 +0000)] 
patch 9.2.0820: GUI: hidden popup image is displayed and not erased

Problem:  In the GUI a popup image is drawn even when the popup is
          hidden, and hiding a popup leaves part of the image on the
          screen (Bakudankun).
Solution: Skip hidden popups when repainting images after the cursor is
          undrawn or the window is exposed.  Redraw the area the image
          covered when the popup is hidden or closed, also for the GDI
          backend (Hirohito Higashi).

fixes:  #20796
closes: #20798

Co-Authored-By: Claude Opus 4.8 (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 agopatch 9.2.0819: MS-Windows: sixel image shown as raw text in the console v9.2.0819
Hirohito Higashi [Mon, 20 Jul 2026 17:44:27 +0000 (17:44 +0000)] 
patch 9.2.0819: MS-Windows: sixel image shown as raw text in the console

Problem:  On the MS-Windows console a popup image is displayed as the raw
          sixel escape sequence instead of the image, unless
          'termguicolors' is set (Bakudankun).
Solution: Write a DCS sequence with the console API that lets the console
          parse it, no matter which write path the current colors select.
          Keep track of the terminator across writes, since a long
          sequence is split up (Hirohito Higashi).

fixes:  #20795
closes: #20797

Co-Authored-By: Claude Opus 4.8 (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 agopatch 9.2.0818: tests: client-server test fails without X11 server v9.2.0818
Muraoka Taro [Mon, 20 Jul 2026 17:31:59 +0000 (17:31 +0000)] 
patch 9.2.0818: tests: client-server test fails without X11 server

Problem:  When unable to connect to X11, serverlist({'list':1}) returns
          a string instead of a list. This causes Test_remote_serverlist() in
          test_vim9_builtin.vim to fail.
Solution: Raise E240 (No connection to the X server)

Additionally, This fix `Test_clientserver_env_method()` keeping
`VIM_CLIENTSERVER` environment variable instead of deleting it. This
allows certain `+clientserver` tests to pass, even in environments where
the X11 server is unavailable, provided that `VIM_CLIENTSERVER=socket`
is set.

closes: #20716

Co-Authored-By: James McCoy <jamessan@jamessan.com>
Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0817: crash when building a stacktrace during an autocommand v9.2.0817
Hirohito Higashi [Mon, 20 Jul 2026 17:11:43 +0000 (17:11 +0000)] 
patch 9.2.0817: crash when building a stacktrace during an autocommand

Problem:  Vim can crash while building a stack trace when an autocommand
          is being triggered but has not matched a pattern yet, for
          example at the more prompt with 'verbose' set (stefanos82).
Solution: Handle the autocommand entry on the execution stack that does
          not have a script context yet (Hirohito Higashi).

fixes:  #20730
closes: #20732

Co-Authored-By: Claude Opus 4.8 (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(zathurarc): sync options with latest zathura master
Jian-Shuo Huang [Mon, 20 Jul 2026 17:09:39 +0000 (17:09 +0000)] 
runtime(zathurarc): sync options with latest zathura master

closes: #20733

Signed-off-by: Jian-Shuo Huang <jianshuo.huang@tuta.io>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0816: GTK4: Memory leak in gui_gtk_set_dnd_targets() v9.2.0816
Foxe Chen [Mon, 20 Jul 2026 17:00:22 +0000 (17:00 +0000)] 
patch 9.2.0816: GTK4: Memory leak in gui_gtk_set_dnd_targets()

Problem:  GTK4: Memory leak in gui_gtk_set_dnd_targets()
Solution: Unref formats (Foxe Chen)

closes: #20729

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0815: deeply nested regexp patterns may cause stack overflow v9.2.0815
lipengyu [Mon, 20 Jul 2026 16:55:55 +0000 (16:55 +0000)] 
patch 9.2.0815: deeply nested regexp patterns may cause stack overflow

Problem:  Deeply nested regexp groups can cause uncontrolled recursion
          in the regexp compiler and exhaust the C stack.
Solution: Limit recursive regexp parsing depth in both the backtracking
          and NFA compilers (lipengyu)

closes: #20731

Signed-off-by: lipengyu <lipengyu@kylinos.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0814: Vim9: E1041 when reloading an autoload script with exported variables v9.2.0814
Hirohito Higashi [Mon, 20 Jul 2026 16:47:57 +0000 (16:47 +0000)] 
patch 9.2.0814: Vim9: E1041 when reloading an autoload script with exported variables

Problem:  Sourcing a Vim9 autoload script more than once fails with E1041
          for its exported variables and constants, while exported functions
          reload without error (ubaldot)
Solution: Give exported variables and constants the same clean slate as
          functions on reload by removing them from the global namespace, so
          the script body can define them again.  Keep classes and enums:
          objects created from the previous definition still refer to it, so
          they are not redefined this way (Hirohito Higashi)

fixes:  #19205
closes: #20726

Co-Authored-By: Claude Opus 4.8 (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 agopatch 9.2.0813: dict_add_func() may corrupt funcref count on failure v9.2.0813
Yasuhiro Matsumoto [Mon, 20 Jul 2026 16:02:56 +0000 (16:02 +0000)] 
patch 9.2.0813: dict_add_func() may corrupt funcref count on failure

Problem:  dict_add_func() references the function only after a
          successful dict_add(), on failure dictitem_free()
          calls func_unref() without a matching func_ref(), corrupting
          the reference count of a lambda or numbered function.
Solution: Take the reference before dict_add() so the unref on the
          failure path is balanced (Yasuhiro Matsumoto).

related: #20668
closes:  #20742

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0812: :argdelete with pattern leads to wrong argidx() v9.2.0812
zeertzjq [Mon, 20 Jul 2026 15:19:20 +0000 (15:19 +0000)] 
patch 9.2.0812: :argdelete with pattern leads to wrong argidx()

Problem:  :argdelete with pattern leads to wrong argidx().
Solution: Correct argidx() in both branches of ex_argdelete().  Also use
          ARGCOUNT macro in two more places (zeertzjq).

related: patch 7.4.1119
related: neovim/neovim#40564
closes:  #20697

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0811: mksession writes terminal command unquoted v9.2.0811
Arkissa [Sun, 19 Jul 2026 18:30:01 +0000 (18:30 +0000)] 
patch 9.2.0811: mksession writes terminal command unquoted

Problem:  mksession writes terminal command unquoted
          (after v9.2.0732)
Solution: Quote the terminal command (Arkissa)

fixes:  #20788
closes: #20789

Signed-off-by: Arkissa <mrarkssac@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0810: add_llist_tags() uses wrong function to free dict v9.2.0810
Yasuhiro Matsumoto [Sun, 19 Jul 2026 16:17:11 +0000 (16:17 +0000)] 
patch 9.2.0810: add_llist_tags() uses wrong function to free dict

Problem:  add_llist_tags() uses wrong function to free dict on alloc
          failure
Solution: Use dict_unref() (Yasuhiro Matsumoto).

add_llist_tags() released a dict_alloc()'d dict with vim_free() when
list_append_dict() failed, leaving a dangling pointer in the dict
garbage-collection chain. Use dict_unref().

related: #20668
closes:  #20743

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0809: getframelayout() uses wrong function to free lists v9.2.0809
Yasuhiro Matsumoto [Sun, 19 Jul 2026 16:13:29 +0000 (16:13 +0000)] 
patch 9.2.0809: getframelayout() uses wrong function to free lists

Problem:  getframelayout() uses wrong function to free lists on alloc
          failure.
Solution: Use list_free() on alloc failure (Yasuhiro Matsumoto).

get_framelayout() released a list_alloc()'d list with vim_free() when
list_append_list() failed, leaving a dangling pointer in the list
garbage-collection chain. Use list_free() so it is unlinked.

related: #20668
related: #20743

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0808: getregionpos: double-free on alloc failure v9.2.0808
Yasuhiro Matsumoto [Sun, 19 Jul 2026 16:02:10 +0000 (16:02 +0000)] 
patch 9.2.0808: getregionpos: double-free on alloc failure

Problem:  getregionpos: double-free on alloc failure
Solution: Only free lists that were not appended (Yasuhiro Matsumoto).

add_regionpos_range() freed lists already linked into the result tree when
a later list_alloc()/list_append_list() failed, causing a double-free and
use-after-free. Only free lists that were not appended, and free them with
list_free() so they are unlinked from the garbage-collection chain.

related: #20668
closes:  #20744

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0807: MS-Windows: ellipsis character is garbled v9.2.0807
Sergey Vlasov [Sun, 19 Jul 2026 15:14:02 +0000 (15:14 +0000)] 
patch 9.2.0807: MS-Windows: ellipsis character is garbled

Problem:  Source code is not treated as utf-8 by MSVC, so '…'
          character in string literal is interpreted wrong.
Solution: Set utf-8 for both source and execution charsets.

closes: #20755

Co-Authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Sergey Vlasov <sergey@vlasov.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0806: 'showcmd' may show internal command keys v9.2.0806
Barrett Ruth [Sun, 19 Jul 2026 14:53:55 +0000 (14:53 +0000)] 
patch 9.2.0806: 'showcmd' may show internal command keys

Problem:  The `showcmd` statusline item may show internal command keys when a
          `<Cmd>` or `<ScriptCmd>` mapping redraws the statusline, and may
          leave stale text behind when `%S` is rendered directly.
Solution: Do not add these internal mapping dispatch keys to the `showcmd`
          buffer, and keep the clear state in sync when `%S` renders it
          (Barrett Ruth)

closes: #20769

Co-authored-by: zeertzjq <35768171+zeertzjq@users.noreply.github.com>
Signed-off-by: Barrett Ruth <br@barrettruth.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0805: screenpos() "curscol" is wrong with 'rightleft' v9.2.0805
Hirohito Higashi [Sat, 18 Jul 2026 17:36:43 +0000 (17:36 +0000)] 
patch 9.2.0805: screenpos() "curscol" is wrong with 'rightleft'

Problem:  With 'rightleft' set, the "curscol" value of screenpos() does not
          point to the screen column where the cursor is placed.
Solution: Count "curscol" from the left side of the window, leaving "col"
          and "endcol" as reading-order columns (Hirohito Higashi)

related: #20763
closes:  #20786

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0804: wincol() is wrong for a double-wide character with 'rightleft' v9.2.0804
Hirohito Higashi [Sat, 18 Jul 2026 16:57:57 +0000 (16:57 +0000)] 
patch 9.2.0804: wincol() is wrong for a double-wide character with 'rightleft'

Problem:  With 'rightleft' set and the cursor on a double-wide character,
          wincol() returns the column one to the right of where the cursor
          actually is (after v9.2.0791)
Solution: Take the width of the character under the cursor into account,
          like the cursor positioning already does.

related: #20763
closes:  #20785

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0803: Memory leak on alloc failure with taglist/gettagstack() v9.2.0803
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:41:24 +0000 (14:41 +0000)] 
patch 9.2.0803: Memory leak on alloc failure with taglist/gettagstack()

Problem:  Memory leak on alloc failure with taglist/gettagstack()
Solution: Free the dict on list_append_dict() failure
          (Yasuhiro Matsumoto).

taglist() and gettagstack() ignored the append failure and leaked the
dict, and continued populating an orphaned dict. Free it and stop.

closes:  #20745
related: #20668

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0802: Memory leak with list_append_dict/dict_add_list on alloc failure v9.2.0802
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:37:14 +0000 (14:37 +0000)] 
patch 9.2.0802: Memory leak with list_append_dict/dict_add_list on alloc failure

Problem:  Memory leak with list_append_dict()/dict_add_list() on alloc
          failure
Solution: Free the list/dict when dict_add_list()/list_append_dict()
          failed (Yasuhiro Matsumoto)

Various getinfo-style builtins ignored the return of list_append_dict()/
dict_add_list() and leaked the freshly allocated, GC-linked dict or list on
allocation failure. Check the return and unref on failure. Affects
getreginfo/setreg event (register.c), hlget (highlight.c), prop_list
(textprop.c), getmatches (match.c), menu_getinfo (menu.c),
popup_getoptions (popupwin.c), sign_getplaced (sign.c), job_info (job.c),
term_getcursor/term_scrape (terminal.c), diff() (diff.c), complete_info
(insexpand.c), cmdcomplete_info (cmdexpand.c).

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0801: Memory leak in f_getreginfo() on alloc failure v9.2.0801
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:35:21 +0000 (14:35 +0000)] 
patch 9.2.0801: Memory leak in f_getreginfo() on alloc failure

Problem:  Memory leak in f_getreginfo() on alloc failure
Solution: Call list_unref() with list var (Yasuhiro Matsumoto).

Since dict_add_list() leaves ownership with the caller on failure, the
freshly built list must be freed when the add fails.

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0800: Memory leak in call_func() on alloc failure v9.2.0800
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:30:50 +0000 (14:30 +0000)] 
patch 9.2.0800: Memory leak in call_func() on alloc failure

Problem:  Memory leak in call_func() on alloc failure
Solution: goto theend for the cleanup (Yasuhiro Matsumoto).

The early return bypassed the theend cleanup, leaking the parsed generic
function type arguments. Use goto theend.

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0799: Memory leak in compile_def_function_body() on alloc failure v9.2.0799
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:27:24 +0000 (14:27 +0000)] 
patch 9.2.0799: Memory leak in compile_def_function_body() on alloc failure

Problem:  Memory leak in compile_def_function_body() on alloc failure
Solution: Call vim_free with the line var (Yasuhiro Matsumoto).

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0798: Memory leak in compile_expr6() on alloc failure v9.2.0798
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:25:10 +0000 (14:25 +0000)] 
patch 9.2.0798: Memory leak in compile_expr6() on alloc failure

Problem:  Memory leak in compile_expr6() on alloc failure
Solution: Free left string when constant string concat alloc fails
          (Yasuhiro Matsumoto).

compile_expr6() overwrote tv1's string pointer before allocating the
concatenation buffer, leaking the original left-hand string on failure.

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0797: Memory leak in get_qfline_items() on alloc failure v9.2.0797
Yasuhiro Matsumoto [Sat, 18 Jul 2026 14:22:31 +0000 (14:22 +0000)] 
patch 9.2.0797: Memory leak in get_qfline_items() on alloc failure

Problem:  Memory leak in get_qfline_items() on alloc failure
Solution: Call dict_unref() with the dict (Yasuhiro Matsumoto).

related: #20668
related: #20745

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0796: Visual block reselection wrong with 'virtualedit' v9.2.0796
zeertzjq [Sat, 18 Jul 2026 14:14:12 +0000 (14:14 +0000)] 
patch 9.2.0796: Visual block reselection wrong with 'virtualedit'

Problem:  Visual block reselection wrong with 'virtualedit' when line
          lengths are different (Alex Yang, after 8.2.3494).
Solution: Set the entire cursor position to old position when computing
          target curswant, since the check_cursor() added in 8.2.3494
          may change cursor column as well (zeertzjq).

fixes:  #20746
closes: #20748

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0795: popup menu shadow is not cleared when the menu shrinks v9.2.0795
Hirohito Higashi [Sat, 18 Jul 2026 14:10:41 +0000 (14:10 +0000)] 
patch 9.2.0795: popup menu shadow is not cleared when the menu shrinks

Problem:  When the popup menu shrinks its shadow is not cleared: a stale
          shadow cell is left on the empty (~) lines near the menu, and when
          the menu also gets narrower the border and text of the larger menu
          show through the shadow (Maxim Kim)
Solution: Exclude the shadow corner cells that are never drawn, and when the
          menu is redrawn redraw the background under the shadow first, so
          content left by a larger menu is cleared instead of showing through
          (Hirohito Higashi).

fixes:  #20740
closes: #20750

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(jinja): Include ftplugin for jinja filetype
Wu, Zhenyu [Sat, 18 Jul 2026 14:06:57 +0000 (14:06 +0000)] 
runtime(jinja): Include ftplugin for jinja filetype

closes: #20778

Co-Authored-by: Alejandro Sanchez <hiphish@posteo.de>
Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0794: extend() and extendnew() don't handle NULL expr2 properly v9.2.0794
zeertzjq [Sat, 18 Jul 2026 13:57:04 +0000 (13:57 +0000)] 
patch 9.2.0794: extend() and extendnew() don't handle NULL expr2 properly

Problem:  extend() and extendnew() don't handle NULL expr2 properly
          (Mao-Yining)
Solution: Still set the return value when expr2 is NULL (zeertzjq).

fixes:  #20758
closes: #20759

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0793: If session restored a tiny window, restore fails v9.2.0793
Illia Bobyr [Sat, 18 Jul 2026 13:52:22 +0000 (13:52 +0000)] 
patch 9.2.0793: If session restored a tiny window, restore fails

Problem:  If session restored a tiny window, restore fails
Solution: Extend window sizes to be at least the minimum size during
          session restore (Illia Bobyr)

If session contains a window that is shorter/narrower than the current
`&winminheight` and `&winminwidth`, respectively, Vim will fail when
assigning original values to the `&winminheight`/`&winminwidth` and the
session restore will be slightly incomplete.

It seems reasonable to assume that if the user have selected certain
values for these minimum size settings, it is safe to just make the
restored windows big enough to match the minimums and continue without
producing an error.

This fix allows `Test_mksession_winminheight()` to start with the
default values of `&winheight`/`&winwidth` and only change them after
the session restore.

closes: #20692

Supported by AI.

Signed-off-by: Illia Bobyr <illia.bobyr@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0792: runtime(netrw): Explore without optional dir broken v9.2.0792
Mark Woods [Sat, 18 Jul 2026 13:25:17 +0000 (13:25 +0000)] 
patch 9.2.0792: runtime(netrw): Explore without optional dir broken

Problem:  runtime(netrw): Explore without optional [dir] argument should
          open directory of the current file
Solution: Make it work as documented (Mark Woods)

Broken by fix for #20636 in PR #20663

related: #20663
closes:  #20761

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agotranslation(hy): Update Armenian language translation
Gagik Hakobyan [Sat, 18 Jul 2026 13:16:22 +0000 (13:16 +0000)] 
translation(hy): Update Armenian language translation

Supported by AI.

closes: #20762

Signed-off-by: Gagik Hakobyan <hakgagik@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0791: wincol() counts from right side for 'rightleft' v9.2.0791
Sergey Vlasov [Sat, 18 Jul 2026 13:11:06 +0000 (13:11 +0000)] 
patch 9.2.0791: wincol() counts from right side for 'rightleft'

Problem:  wincol() counts cells from right side of the window if
          'rightleft' is enabled.
Solution: Fix wincol() to count from left side of the window
          as documented (Sergey Vlasov).

closes: #20763

Signed-off-by: Sergey Vlasov <sergey@vlasov.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(doc): Improve fuzzy file picker doc
Mao-Yining [Sat, 18 Jul 2026 12:48:23 +0000 (12:48 +0000)] 
runtime(doc): Improve fuzzy file picker doc

1. Only reset cache after used.
2. Use `expand('**', 1, 1)` than `globpath('.', '**', 1, 1)`.

| Environment     | expand (s) | globpath (s) | expand faster |
| --------------- | ---------- | ------------ | ------------- |
| WSL (small)     | 0.0491     | 0.0537       | 9.4%          |
| Windows (large) | 1.6606     | 2.3565       | 41.9%         |

3. fnamemodify() is useless here.

closes: #20767

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0790: 'completeslash' breaks :find completion with 'findfunc' v9.2.0790
glepnir [Sat, 18 Jul 2026 09:50:11 +0000 (09:50 +0000)] 
patch 9.2.0790: 'completeslash' breaks :find completion with 'findfunc'

Problem:  On MS-Windows with 'completeslash' set, an item completed by
          'findfunc' cannot be opened with :find, E345 is given (Mao-Yining)
Solution: Do not apply 'completeslash' to matches returned by 'findfunc',
          they are opaque strings that are passed back to the function
          unchanged (glepnir)

fixes:  #20770
closes: #20771

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0789: 'statuslineopt' status line too high after a window is minimized v9.2.0789
Hirohito Higashi [Sat, 18 Jul 2026 09:46:33 +0000 (09:46 +0000)] 
patch 9.2.0789: 'statuslineopt' status line too high after a window is minimized

Problem:  With a global 'statuslineopt' maxheight, the status line height is
          not reduced to what every window can afford.  After a window is put
          at its minimum height (e.g. CTRL-W_), setting 'statuslineopt' still
          gives a status line taller than the small window can display,
          instead of the best-effort height that fits all windows.
Solution: Let every window using the global 'statuslineopt' constrain the
          best-effort height, including windows at their minimum height.
          Correct a misleading test comment and add a test (Hirohito Higashi).

closes: #20772

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(cuda): Fix typo in cuda syntax file
Christian Brabandt [Sat, 18 Jul 2026 09:43:15 +0000 (09:43 +0000)] 
runtime(cuda): Fix typo in cuda syntax file

related: #20773

Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0788: filetype: hip files are not recognized v9.2.0788
Young [Sat, 18 Jul 2026 09:39:58 +0000 (09:39 +0000)] 
patch 9.2.0788: filetype: hip files are not recognized

Problem:  filetype: hip files are not recognized
Solution: Detect *.hip files as hip filetype, include filetype, syntax
          and indent plugins, update makemenu.vim and synmenu.vim (Young)

Round out HIP (Heterogeneous-compute Interface for Portability) support
to mirror the existing CUDA files:

- autoload/dist/ft.vim: detect the ".hip" extension as filetype "hip"
- ftplugin/hip.vim: behave like C++ by sourcing ftplugin/cpp.vim
- indent/hip.vim: use cindent, like indent/cuda.vim
- makemenu.vim / synmenu.vim: add a Syntax menu entry

The syntax/hip.vim file already sources syntax/cpp.vim and adds the
HIP-specific keywords, matching syntax/cuda.vim.

closes: #20773

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Young <young20050727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0787: regexp: code 0x1ecb duplicated for equivalence class v9.2.0787
Christian Brabandt [Sat, 18 Jul 2026 03:53:47 +0000 (03:53 +0000)] 
patch 9.2.0787: regexp: code 0x1ecb duplicated for equivalence class

Problem:  regexp: code 0x1ecb duplicated for equivalence class
          (Sami Farin)
Solution: Remove it

fixes:  #8029#issuecomment-4998990223
closes: #20782

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0786: filetype: Containerfile is not recognized v9.2.0786
Omer Tuchfeld [Sat, 18 Jul 2026 03:47:31 +0000 (03:47 +0000)] 
patch 9.2.0786: filetype: Containerfile is not recognized

Problem:  filetype: Containerfile is not recognized
Solution: Detect *.[Cc]ontainerfiles as dockerfile filetype
          (Omer Tuchfeld)

closes: #20783

Supported by AI.

Signed-off-by: Omer Tuchfeld <omer@tuchfeld.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoCI: Bump the github-actions group across 1 directory with 2 updates
dependabot[bot] [Sat, 18 Jul 2026 03:41:27 +0000 (03:41 +0000)] 
CI: Bump the github-actions group across 1 directory with 2 updates

Bumps the github-actions group with 2 updates in the / directory: [github/codeql-action](https://github.com/github/codeql-action) and [actions/labeler](https://github.com/actions/labeler).

Updates `github/codeql-action` from 4.36.3 to 4.37.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.36.3...v4.37.0)

Updates `actions/labeler` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v6.1.0...v6.2.0)

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

closes: #20784

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0785: WinResized not triggered when the whole Vim is resized v9.2.0785
Hirohito Higashi [Fri, 17 Jul 2026 15:03:10 +0000 (15:03 +0000)] 
patch 9.2.0785: WinResized not triggered when the whole Vim is resized

Problem:  When the whole Vim (terminal or GUI) is resized, VimResized fires
          right away but WinResized does not: it only triggers on the next
          typed command, even though the windows already changed size
          (Mao-Yining).
Solution: Trigger the WinResized (and WinScrolled) check right after firing
          VimResized on a shell resize, so window size changes are reported
          immediately instead of waiting for the next command
          (Hirohito Higashi).

fixes:  #20774
closes: #20775

Co-Authored-By: Claude Opus 4.8 (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.0784: crash when borrowing statusline highlight in silent Ex mode v9.2.0784
Hirohito Higashi [Fri, 17 Jul 2026 14:52:07 +0000 (14:52 +0000)] 
patch 9.2.0784: crash when borrowing statusline highlight in silent Ex mode

Problem:  Vim crashes with a NULL pointer dereference when a status line is
          redrawn next to a vertical separator in silent Ex mode, where the
          screen cell arrays are not allocated (tdjackey).
Solution: Skip borrowing the vertical separator highlight when the screen is
          not allocated (Hirohito Higashi).

closes: #20776

Co-Authored-By: Claude Opus 4.8 (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 agoCI: Bump the github-actions group across 1 directory with 2 updates
dependabot[bot] [Fri, 17 Jul 2026 14:38:04 +0000 (14:38 +0000)] 
CI: Bump the github-actions group across 1 directory with 2 updates

Bumps the github-actions group with 2 updates in the / directory: [actions/cache](https://github.com/actions/cache) and [github/codeql-action](https://github.com/github/codeql-action).

Updates `actions/cache` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5.0.5...v6.1.0)

Updates `github/codeql-action` from 4.36.2 to 4.36.3
- [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.36.2...v4.36.3)

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

closes: #20749

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(netrw): Fix `reset_ssl` reference error on file rename
yasuda [Fri, 17 Jul 2026 14:31:48 +0000 (14:31 +0000)] 
runtime(netrw): Fix `reset_ssl` reference error on file rename

fixes:  #20710
closes: #20777
closes: #20698

Co-Authored-by: Doruk Özer <dorukozer@protonmail.com>
Signed-off-by: yasuda <yasuda@kyoto-sr.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0783: tests: personal spell files leak into later tests v9.2.0783
coyaSONG [Fri, 17 Jul 2026 14:13:53 +0000 (14:13 +0000)] 
patch 9.2.0783: tests: personal spell files leak into later tests

Problem:  Test_spelldump_prefixtree_overflow() resets 'runtimepath' to
          defaults, which can expose personal spell files to later tests
          (Jun-ichi Takimoto, after v9.2.0662)
Solution: Save and restore the test runner's 'runtimepath' value (coyaSONG).

fixes:  #20765
closes: #20766

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: coyaSONG <66289470+coyaSONG@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>