]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
2 weeks agoruntime(doc): vimtutor starts Vim in nocompatible mode
Christian Brabandt [Mon, 23 Jun 2025 17:52:42 +0000 (19:52 +0200)] 
runtime(doc): vimtutor starts Vim in nocompatible mode

closes: #17593

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): remove wrong documentation of the :digraph command
Christian Brabandt [Sun, 22 Jun 2025 18:32:15 +0000 (20:32 +0200)] 
runtime(doc): remove wrong documentation of the :digraph command

fixes: #17583

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1475: completion: regression when "nearest" in 'completeopt' v9.1.1475
Girish Palya [Sun, 22 Jun 2025 18:23:54 +0000 (20:23 +0200)] 
patch 9.1.1475: completion: regression when "nearest" in 'completeopt'

Problem:  completion: regression when "nearest" in 'completeopt'
Solution: fix compare function (Girish Palya)

closes: #17577

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(comment): add <Plug>-mappings
Mark Woods [Sun, 22 Jun 2025 18:16:29 +0000 (20:16 +0200)] 
runtime(comment): add <Plug>-mappings

vim9script <expr> mappings relying on imports cannot be evaluated
outside of the script file with the imports, so do not work with plugins
like vim-which-key, which evaluates <expr> mappings to apply them.

Using <Plug> mappings is one way to address this, and has the added
benefit of reading like a description for users finding the mappings.

fixes: #17523
closes: #17563

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(openPlugin): add <Plug>-mappings
Mark Woods [Sun, 22 Jun 2025 18:12:16 +0000 (20:12 +0200)] 
runtime(openPlugin): add <Plug>-mappings

vim9script <scriptcmd> mappings relying on imports cannot be evaluated
outside of the script file with the imports, so do not work with plugins
like vim-which-key, which applies the mappings using feedkeys().

Using <Plug> mappings is one way to address this, and has the added
benefit of reading like a description for users finding the mappings.

related: #17563

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1474: missing out-of-memory check in mark.c v9.1.1474
John Marriott [Sun, 22 Jun 2025 17:44:27 +0000 (19:44 +0200)] 
patch 9.1.1474: missing out-of-memory check in mark.c

Problem:  missing out-of-memory check in mark.c
Solution: bail out, if mark_line() returns NULL
          (John Marriott)

closes: #17578

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(tutor): Make all tutor files utf-8 only
Damien Lejay [Sun, 22 Jun 2025 17:39:04 +0000 (19:39 +0200)] 
runtime(tutor): Make all tutor files utf-8 only

In this commit, all legacy encodings for tutor files are removed.

* All the tutor files `tutor1.xx` and `tutor2.xx` are now `utf-8`
* All `README.xx.txt` files are now `utf-8`
* All makefiles are removed, as they are no longer needed
* The `tutor.vim` script is simplified
* The `README` indicates `utf-8` as a requirement
* update vimtutor.bat file

In 2025, there is no realistic scenario where a beginner starts the Vim
9.1 tutor on a machine that lacks UTF-8 support.
This change will ease the maintenance of the tutor files. Cf #17562 for
an example.

closes: #17582
closes: #17586

Co-authored-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(vim): Update base-syntax, match bare mark ranges
Doug Kearns [Sun, 22 Jun 2025 16:47:49 +0000 (18:47 +0200)] 
runtime(vim): Update base-syntax, match bare mark ranges

Remove unmatchable :normal {mark,register} matches. The arg to :normal
is now handled separately and contained marks and registers are no
longer matched.

closes: #17571

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim): Update base-syntax, fix Vim9 :import expression comment handling
Doug Kearns [Fri, 20 Jun 2025 16:59:21 +0000 (18:59 +0200)] 
runtime(vim): Update base-syntax, fix Vim9 :import expression comment handling

The required space in Vim9 continuation comments (#\ comment) was
accidentally removed in commit 6acca4b as trailing whitespace.

closes: #17573

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1473: inconsistent range arg for :diffget/diffput v9.1.1473
Yee Cheng Chin [Fri, 20 Jun 2025 16:44:18 +0000 (18:44 +0200)] 
patch 9.1.1473: inconsistent range arg for :diffget/diffput

Problem:  inconsistent range arg for :diffget/diffput
Solution: fix the range specification, place the cursor for :diffput and
          :diffget consistently on the last line (Yee Cheng Chin)

Previously, `:<range>diffget` only allowed using 1 or above in the range
value, making it impossible to use the command for a diff block at the
beginning of the file. Fix the range specification so the user can now
use 0 to specify the space before the first line. This allows
`:0,$+1diffget` to work to retrieve all the changes from the other file
instead of missing the first diff block. Also do this for `:diffput`.

Also, make `:diffput` work more similar to `:diffget`. Make it so that
if the cursor is on the last line and a new line is inserted in the
other file, doing `:diffput` will select that diff block below the line,
just like `:diffget` would.

Also clean up the logic a little bit for edge cases and for handling
line matched diff blocks better.

closes: #17579

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): mention using <script> instead of <sfile> in :autocmd
zeertzjq [Thu, 19 Jun 2025 17:40:51 +0000 (19:40 +0200)] 
runtime(doc): mention using <script> instead of <sfile> in :autocmd

fixes: #17569

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1472: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed v9.1.1472
Zdenek Dohnal [Thu, 19 Jun 2025 17:35:32 +0000 (19:35 +0200)] 
patch 9.1.1472: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed

Problem:  if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed with
          python3.14 in stable ABI
Solution: use PySequence_{Size,GetItem} instead (Zdenek Dohnal)

Python 3.14 removed those two functions from stable API because of
reasoning these function shouldn't be part of stable API at the first
place.

Moving to PySequence_GetSize and PySequence_GetItem fixes the build
failure when Vim is built with dynamic Python and stable API for Python
3.8.

closes: #17575

Signed-off-by: Zdenek Dohnal <zdohnal@redhat.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1471: completion: inconsistent ordering with CTRL-P v9.1.1471
Girish Palya [Wed, 18 Jun 2025 17:15:45 +0000 (19:15 +0200)] 
patch 9.1.1471: completion: inconsistent ordering with CTRL-P

Problem:  completion: inconsistent ordering with CTRL-P
          (zeertzjq)
Solution: reset compl_curr_match when using CTRL-P (Girish Palya)

fixes: #17425
closes: #17434

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): Remove obsolete labelling from 'h' occasion in :help 'highlight'
Doug Kearns [Wed, 18 Jun 2025 17:12:07 +0000 (19:12 +0200)] 
runtime(doc): Remove obsolete labelling from 'h' occasion in :help 'highlight'

The 'h' occasion is now used for "matched text of currently inserted
completion" (defaulting to ComplMatchIns).

closes: #17572

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(hgcommit): set comments and commentstring options in filetype plugin
Riley Bruins [Wed, 18 Jun 2025 16:47:57 +0000 (18:47 +0200)] 
runtime(hgcommit): set comments and commentstring options in filetype plugin

closes: #17480

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(ishd): set comments and commentstring options in filetype plugin
Riley Bruins [Wed, 18 Jun 2025 16:43:42 +0000 (18:43 +0200)] 
runtime(ishd): set comments and commentstring options in filetype plugin

closes: #17490

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(nroff,groff): update commentstyle in filetype plugins
jtmr05 [Wed, 18 Jun 2025 16:41:14 +0000 (18:41 +0200)] 
runtime(nroff,groff): update commentstyle in filetype plugins

closes: #17516

Signed-off-by: jtmr05 <62111562+jtmr05@users.noreply.github.com>
Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1470: use-after-free with popup callback on error v9.1.1470
Christian Brabandt [Wed, 18 Jun 2025 16:33:31 +0000 (18:33 +0200)] 
patch 9.1.1470: use-after-free with popup callback on error

Problem:  use-after-free with popup callback on error
          (Brian Carbone, lifepillar)
Solution: check if the popup window is valid before accessing it

fixes: #17558
closes: #17565

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1469: potential buffer-underflow with invalid hl_id v9.1.1469
Christian Brabandt [Wed, 18 Jun 2025 16:28:19 +0000 (18:28 +0200)] 
patch 9.1.1469: potential buffer-underflow with invalid hl_id

Problem:  potential buffer-underflow with invalid hl_id (mugitya03)
Solution: assert that the return-code of syn_get_final_id() if > 0

As a safety check, syn_get_final_id() may return zero when either the
provided hl_id is zero or larger than expected.

However, many callers of syn_get_final_id() do not check that the return
value is larger than zero but re-use the returned highlight id directly
like this:

  hl_id = syn_get_final_id(hl_id);
  sgp = &HL_TABLE()[hl_id - 1];     // index is ID minus one

in which case, this would cause a buffer underrun and an access violation.

Let's use assert(hl_id > 0); to make sure that hl_id is larger than
zero.

Note to myself: I'll need to compile releases builds using -DNDEBUG once
a new release will be made

fixes: #17475
closes: #17512

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1468: filetype: bright(er)script files are not recognized v9.1.1468
Riley Bruins [Wed, 18 Jun 2025 16:23:05 +0000 (18:23 +0200)] 
patch 9.1.1468: filetype: bright(er)script files are not recognized

Problem:  filetype: bright(er)script files are not recognized
Solution: detect *.bs files as brighterscript filetype and *.brs as
          brightscript filetype, include filetype plugins (Riley Bruins)

closes: #17566

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1467: too many strlen() calls v9.1.1467
John Marriott [Wed, 18 Jun 2025 16:15:31 +0000 (18:15 +0200)] 
patch 9.1.1467: too many strlen() calls

Problem:  too many strlen() calls
Solution: Change expand_env() to return string length
          (John Marriott)

This commit does the following changes:
- In expand_env_esc():
  - return the length of the returned dst string.
  - refactor to remove some calls to STRLEN() and STRCAT()
  - add check for out-of-memory condition.
- Change call sites in various source files to use the return value

closes: #17561

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim): fix incorrect highlighting of User autocmds
zeertzjq [Wed, 18 Jun 2025 16:02:47 +0000 (18:02 +0200)] 
runtime(vim): fix incorrect highlighting of User autocmds

There is no pattern after the user event name. The user event name is
the pattern.

closes: #17568

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1466: filetype: not all lex files are recognized v9.1.1466
Eisuke Kawashima [Tue, 17 Jun 2025 18:30:52 +0000 (20:30 +0200)] 
patch 9.1.1466: filetype: not all lex files are recognized

Problem:  filetype: not all lex files are recognized
Solution: detect *.ll as lex, llvm or lifelines filetype, depending on
          the content (Eisuke Kawashima)

closes: #17560

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1465: tabpanel: not correctly drawn with 'equalalways' v9.1.1465
Hirohito Higashi [Mon, 16 Jun 2025 18:26:08 +0000 (20:26 +0200)] 
patch 9.1.1465: tabpanel: not correctly drawn with 'equalalways'

Problem:  tabpanel: not correctly drawn with 'equalalways'
Solution: call win_equal() (Hirohito Higashi)

closes: #17554

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(de): update German messages translation
Christian Brabandt [Mon, 16 Jun 2025 18:23:00 +0000 (20:23 +0200)] 
translation(de): update German messages translation

closes: #17555

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(optwin): fix tabpanel typo in optwin
Christian Brabandt [Mon, 16 Jun 2025 18:22:30 +0000 (20:22 +0200)] 
runtime(optwin): fix tabpanel typo in optwin

related: #17555

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1464: gv does not work in operator-pending mode v9.1.1464
phanium [Mon, 16 Jun 2025 18:19:15 +0000 (20:19 +0200)] 
patch 9.1.1464: gv does not work in operator-pending mode

Problem:  gv does not work in operator-pending mode
          (liushapku)
Solution: remove the check for checkclearop in nv_gv_cmd()
          (phanium)

fixes: #3666
closes: #17551

Signed-off-by: phanium <91544758+phanen@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1463: Integer overflow in getmarklist() after linewise operation v9.1.1463
zeertzjq [Mon, 16 Jun 2025 18:10:38 +0000 (20:10 +0200)] 
patch 9.1.1463: Integer overflow in getmarklist() after linewise operation

Problem:  Integer overflow in getmarklist() after linewise operation.
Solution: Don't add 1 to MAXCOL (zeertzjq)

related: neovim/neovim#34524
closes: #17552

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1462: missing change from patch v9.1.1461 v9.1.1462
Christian Brabandt [Mon, 16 Jun 2025 18:07:54 +0000 (20:07 +0200)] 
patch 9.1.1462: missing change from patch v9.1.1461

Problem:  missing change from patch v9.1.1461
Solution: change wrong TPL_LCOL macro in a few more places

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(sh): reset g:sh_fold_enabled after outputting its value in syntax script
hakkadaikon [Mon, 16 Jun 2025 17:54:37 +0000 (19:54 +0200)] 
runtime(sh): reset g:sh_fold_enabled after outputting its value in syntax script

fixes: #10701
closes: #17557

Signed-off-by: hakkadaikon <hakkadaikon@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vimtutor): vimtutor throws Access Denied Error on MS-Windows
Christian Brabandt [Mon, 16 Jun 2025 17:48:03 +0000 (19:48 +0200)] 
runtime(vimtutor): vimtutor throws Access Denied Error on MS-Windows

Problem:  MS-Windows: vimtutor throws Access Denied Error
Solution: switch the order of redirects. First redirect stdout, than
          stderr to stdout, Try to access $TEMP before current directory
          (which is usually c:\Program Files\vim\vim91\ and not writable
          for normal users)

closes: #17550

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1461: tabpanel: tabpanel vanishes with popup menu v9.1.1461
Hirohito Higashi [Mon, 16 Jun 2025 17:39:24 +0000 (19:39 +0200)] 
patch 9.1.1461: tabpanel: tabpanel vanishes with popup menu

Problem:  tabpanel: tabpanel vanishes with popup menu
Solution: remove pum-related test in tabpanel_leftcol(), refactor a few
          related functions (Hirohito Higashi)

This commit does the following:
- Delete unnecessary pum-related checks in the tabpanel_leftcol()
  function
- remove pum-related check in tabpanel_leftcol()
- The argument of the TPL_LCOL() macro has been deleted.
- The argument of the tabpanel_leftcol() function has been changed
  to void
- The return type of the `win_comp_pos()` function has been changed to
  void

closes: #17549

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1460: MS-Windows: too many strlen() calls in os_win32.c 17542/head v9.1.1460
John Marriott [Sun, 15 Jun 2025 14:50:38 +0000 (16:50 +0200)] 
patch 9.1.1460: MS-Windows: too many strlen() calls in os_win32.c

Problem:  MS-Windows: too many strlen() calls in os_win32.c
Solution: refactor code and remove calls to strlen() and wcscat()
          (John Marriott)

This commit does the following changes:
- in mch_get_exe_name():
  - refactor to remove call to wcsrchr().
  - refactor to replace calls to wcscat() with wcscpy().
  - move variables closer to where they are used.
  - change test to make sure that concatenating path and exe_pathw
    will fit inside the environment string (taking into account that
    path may be NULL).
- in executable_exists():
  - add namelen argument.
  - use string_T to store some strings.
  - refactor to remove calls to STRLEN() (via STRCAT()).
- in mch_getperm():
  - move call to mch_stat() into return statement and drop unneeded
    variable.
- in mch_wrename():
  - refactor to use wide character comparisons.
- some cosmetic code styling changes (removing extraneous spaces, etc).

closes: 17542

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(keymaps): Add Azerbaijani keymap
Rasul Samadzade [Sun, 15 Jun 2025 14:33:35 +0000 (16:33 +0200)] 
runtime(keymaps): Add Azerbaijani keymap

closes: #17541

Signed-off-by: Rasul Samadzade <rasul.samadzade@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1459: xxd: coloring output is inefficient v9.1.1459
Emanuel Krollmann [Sun, 15 Jun 2025 14:24:09 +0000 (16:24 +0200)] 
patch 9.1.1459: xxd: coloring output is inefficient

Problem:  xxd prints color escape sequences for every octet
          even if the color doesn't change
Solution: use separate arrays for colors and text and only
          print escape sequences when the color changes
          (Emanuel Krollmann)

fixes: #15122
closes: #17535

Signed-off-by: Emanuel Krollmann <E.Krollmann@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1458: tabpanel: tabs not properly updated with 'stpl' v9.1.1458
Hirohito Higashi [Sun, 15 Jun 2025 14:09:22 +0000 (16:09 +0200)] 
patch 9.1.1458: tabpanel: tabs not properly updated with 'stpl'

Problem:  tabpanel: tabs not properly updated with 'stpl'
Solution: remember the Column offset per tabpage
          (Hirohito Higashi)

fixes: #17519
closes: #17544

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): mention cannot ignored events in eventignorewin
glepnir [Sun, 15 Jun 2025 14:05:10 +0000 (16:05 +0200)] 
runtime(doc): mention cannot ignored events in eventignorewin

closes: #17545

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(netrw): remove g:netrw_quiet and reindent to 4 spaces
Luca Saccarola [Sun, 15 Jun 2025 13:26:26 +0000 (15:26 +0200)] 
runtime(netrw): remove g:netrw_quiet and reindent to 4 spaces

closes: #17539

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(comment): handle special chars ^$[ robustly
Maxim Kim [Fri, 13 Jun 2025 18:18:50 +0000 (20:18 +0200)] 
runtime(comment): handle special chars ^$[ robustly

Make sure comment toggling works when 'commentstring' contains
any of the following regex special characters by escaping them:

^ $ [

closes: #17537

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(debcontrol): add hurd-amd64 architecture to syntax script
Christian Brabandt [Fri, 13 Jun 2025 18:11:42 +0000 (20:11 +0200)] 
runtime(debcontrol): add hurd-amd64 architecture to syntax script

closes: #17525

Signed-off-by: Yuqian Yang <crupest@crupest.life>
Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(masm): set 'com' and 'cms' options in ftplugin
Riley Bruins [Thu, 12 Jun 2025 20:07:40 +0000 (22:07 +0200)] 
runtime(masm): set 'com' and 'cms' options in ftplugin

closes: #17484

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(zimbu): set 'commentstring' option in ftplugin
Riley Bruins [Thu, 12 Jun 2025 20:05:31 +0000 (22:05 +0200)] 
runtime(zimbu): set 'commentstring' option in ftplugin

closes: #17478

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): improve the wording of 'sts', 'varts' and 'varsts' values
Damien Lejay [Thu, 12 Jun 2025 19:56:19 +0000 (21:56 +0200)] 
runtime(doc): improve the wording of 'sts', 'varts' and 'varsts' values

closes: #17522

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): refactor netrw#ErrorMsg -> netrw#msg#Notify
Luca Saccarola [Thu, 12 Jun 2025 19:51:42 +0000 (21:51 +0200)] 
runtime(netrw): refactor netrw#ErrorMsg -> netrw#msg#Notify

closes: #17526

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(defaults): Update the "Last Changes" header in defaults.vim
Damien Lejay [Thu, 12 Jun 2025 19:40:45 +0000 (21:40 +0200)] 
runtime(defaults): Update the "Last Changes" header in defaults.vim

This change was forgotten from commit 6f6c0dba9f578787

closes: #17536

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1457: compile warning with tabpanelopt v9.1.1457
John Marriott [Thu, 12 Jun 2025 19:37:18 +0000 (21:37 +0200)] 
patch 9.1.1457: compile warning with tabpanelopt

Problem:  compile warning with tabpanelopt
Solution: declare arg as UNUSED (John Marriott)

closes: #17528

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1456: comment plugin fails toggling if 'cms' contains \ v9.1.1456
Maxim Kim [Thu, 12 Jun 2025 19:31:00 +0000 (21:31 +0200)] 
patch 9.1.1456: comment plugin fails toggling if 'cms' contains \

Problem:  comment plugin fails toggling if 'cms' contains \
Solution: escape backslash (Maxim Kim)

groff could be commented using \" or \# and comment plugin fails to
uncomment such things.

NOTE: if newstyle comment would be introduced, e.g. .\#
for groff test would need to be adjusted.

closes: #17530

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): remove an obsolete item from todo.txt
Gary Johnson [Thu, 12 Jun 2025 19:15:07 +0000 (21:15 +0200)] 
runtime(doc): remove an obsolete item from todo.txt

I cannot reproduce this defect.  The replication instructions refer to
Mercurial version numbers and I no longer use Mercurial for my Vim
source.  I tried comparing various Git versions of the example file,
src/if_cscope.c, and still couldn't reproduce the defect.  Also, I use
Vim's diff mode a lot and haven't seen such a problem in a long time.
I am confident that it has been fixed.

Therefore, the item should be removed from todo.txt.

closes: #17534

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1455: Haiku: dailog objects created with no reference v9.1.1455
jinyaoguo [Wed, 11 Jun 2025 19:30:01 +0000 (21:30 +0200)] 
patch 9.1.1455: Haiku: dailog objects created with no reference

Problem:  Haiku: dailog objects created with no reference
Solution: delete the objects before returning (jinyaoguo)

In the functions gui_mch_dialog() and gui_mch_font_dialog(), Dialog
objects are created but never escape the function scope. The call to
dialog->Go() only returns a boolean value and does not retain any
reference to the Dialog object itself, which may lead to potential
memory leak.

Fix this by deleting the object after using it.

closes: #17501

Signed-off-by: jinyaoguo <guo846@purdue.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vim): Update base-syntax, improve function definition matching
Doug Kearns [Wed, 11 Jun 2025 19:16:14 +0000 (21:16 +0200)] 
runtime(vim): Update base-syntax, improve function definition matching

- Fix highlighting of function names including /fu\%[nction]/ (E.g.,
  s:func(), foo.fu(), fu.func())
- Match :delfunction argument.

Reported by Aliaksei Budavei.

closes: #17428

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1454: tests: no test for pum at line break position v9.1.1454
glepnir [Wed, 11 Jun 2025 19:14:02 +0000 (21:14 +0200)] 
patch 9.1.1454: tests: no test for pum at line break position

Problem:  Missing test case for pum display on a wrapped line.
Solution: Add a test case to cover pum behavior at line break positions.
          (glepnir)

closes: #17520

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(openPlugin): Open should open file names with spaces in Windows
Maxim Kim [Wed, 11 Jun 2025 19:10:59 +0000 (21:10 +0200)] 
runtime(openPlugin): Open should open file names with spaces in Windows

Use <f-args> instead of <q-args> in commands:

- :Open
- :Launch
- :URLOpen

fixes #17468
closes: #17517

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): add more pointers to 'completeopt'
Ilya Grigoriev [Wed, 11 Jun 2025 19:07:35 +0000 (21:07 +0200)] 
runtime(doc): add more pointers to 'completeopt'

Before this commit, I had trouble finding information about configuring
the insert mode completion. In particular, it was not clear that the
'wildopt' config that I already had in my vimrc does not apply here.

Also, `insert.txt` barely mentioned 'completeopt' except when
describing popups (I was more interested in bash-like behavior
where the unique prefix of all completions is completed first).

I'm hoping these edits will make the relevant docs easier to find.

closes: #17515

Signed-off-by: Ilya Grigoriev <ilyagr@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): remove comment separators
Luca Saccarola [Wed, 11 Jun 2025 18:42:41 +0000 (20:42 +0200)] 
runtime(netrw): remove comment separators

closes: #17514

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1453: tests: Test_geometry() may fail v9.1.1453
Christian Brabandt [Tue, 10 Jun 2025 19:29:43 +0000 (21:29 +0200)] 
patch 9.1.1453: tests: Test_geometry() may fail

Problem:  tests: Test_geometry() may fail
          (Gary Johnson)
Solution: allow a slightly smaller value when checking the number of
          lines.

fixes: #17491

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(filetype): Use s:StarSetf for all patterns ending in *
Doug Kearns [Tue, 10 Jun 2025 19:15:22 +0000 (21:15 +0200)] 
runtime(filetype): Use s:StarSetf for all patterns ending in *

Problem:  Some filetype autocmds with patterns ending in * do not skip
          filenames matching g:ignored_patterns.
Solution: Move these autocmds to the appropriate section and call
          s:StarSetf() to set the filetype.

- Affected filetypes: dosini, execline, foam, messages, nginx, tmux.
- Convert foam filetype patterns to use wildcard matching.

closes: #17422

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): update documentation on tabstop settings
Damien Lejay [Tue, 10 Jun 2025 19:12:31 +0000 (21:12 +0200)] 
runtime(doc): update documentation on tabstop settings

Unify the treatment of tabstop, correct errors and deprecate smarttab
usage.

closes: #17444

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vim): Update base-syntax, contain let-heredocs
Doug Kearns [Tue, 10 Jun 2025 19:02:43 +0000 (21:02 +0200)] 
runtime(vim): Update base-syntax, contain let-heredocs

Limit heredoc matches to assignment statements.  Matching these at the
top level is very slow.

closes: #17473

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(reva): set 'cms' option in ftplugin, update URL
Riley Bruins [Tue, 10 Jun 2025 19:00:07 +0000 (21:00 +0200)] 
runtime(reva): set 'cms' option in ftplugin, update URL

closes: #17488

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(abap): set 'comments' and 'commentstring' option in ftplugin
Riley Bruins [Tue, 10 Jun 2025 18:57:14 +0000 (20:57 +0200)] 
runtime(abap): set 'comments' and 'commentstring' option in ftplugin

Reference:
https://en.wikipedia.org/wiki/ABAP#Comments

closes: #17489

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1452: completion: redundant check for completion flags v9.1.1452
glepnir [Tue, 10 Jun 2025 18:52:41 +0000 (20:52 +0200)] 
patch 9.1.1452: completion: redundant check for completion flags

Problem:  completion: redundant check for completion flags
Solution: refactor code slightly (glepnir)

refactor: nest fuzzy completion logic to avoid duplicate flag checks

- Combine COT_FUZZY checks into single nested condition
- Reduce redundant bitwise operations in ins_compl_new_leader()

closes: #17494

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1451: tabpanel rendering artifacts when scrolling v9.1.1451
Hirohito Higashi [Tue, 10 Jun 2025 18:42:06 +0000 (20:42 +0200)] 
patch 9.1.1451: tabpanel rendering artifacts when scrolling

Problem:  tabpanel rendering artifacts when scrolling
Solution: update scrolling logic (Hirohito Higashi)

fixes: #17495
closes: #17496

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): get rid of s:Strlen() and use strdisplaywidth()
Luca Saccarola [Tue, 10 Jun 2025 18:39:50 +0000 (20:39 +0200)] 
runtime(netrw): get rid of s:Strlen() and use strdisplaywidth()

closes: #17498

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(java): Match raw-, non-generic-, and generic-type names of "java.lang"
Aliaksei Budavei [Tue, 10 Jun 2025 18:37:39 +0000 (20:37 +0200)] 
runtime(java): Match raw-, non-generic-, and generic-type names of "java.lang"

And only match innermost element types of parameterised
array types.

References:
https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.8
https://docs.oracle.com/javase/specs/jls/se21/html/jls-6.html#jls-6.1
https://docs.oracle.com/javase/specs/jls/se21/html/jls-10.html

closes: #17499

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(gdshader): add comments and commentstring to ftplugin
Maxim Kim [Tue, 10 Jun 2025 18:35:03 +0000 (20:35 +0200)] 
runtime(gdshader): add comments and commentstring to ftplugin

closes: #17500

Co-authored-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1450: Session has wrong arglist with :tcd and :arglocal v9.1.1450
zeertzjq [Tue, 10 Jun 2025 18:31:44 +0000 (20:31 +0200)] 
patch 9.1.1450: Session has wrong arglist with :tcd and :arglocal

Problem:  Session has wrong arglist with :tcd and :arglocal.
Solution: Also use absolute path for :argadd when there is tabpage-local
          directory (zeertzjq).

related: neovim/neovim#34405
closes: #17503

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(8th): updated 8th syntax script
Ron Aaron [Tue, 10 Jun 2025 18:27:57 +0000 (20:27 +0200)] 
runtime(8th): updated 8th syntax script

closes: #17505

Signed-off-by: Ron Aaron <ron@aaron-tech.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1449: typo in pum_display() v9.1.1449
glepnir [Tue, 10 Jun 2025 18:23:42 +0000 (20:23 +0200)] 
patch 9.1.1449: typo in pum_display()

Problem:  typo in pum_display()
Solution: update the comment, remove empty new lines
          (glepnir)

closes: #17506

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoCI: update Cirrus runner to FreeBSD 14.3
Philip H. [Tue, 10 Jun 2025 18:21:29 +0000 (20:21 +0200)] 
CI: update Cirrus runner to FreeBSD 14.3

closes: #17508

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1448: tabpanel is not displayed correctly when msg_scrolled v9.1.1448
Hirohito Higashi [Tue, 10 Jun 2025 18:19:04 +0000 (20:19 +0200)] 
patch 9.1.1448: tabpanel is not displayed correctly when msg_scrolled

Problem:  tabpanel is not displayed correctly when msg_scrolled
Solution: remove the msg_scrolled condition (Hirohito Higashi)

fixes: #17502
closes: #17510

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1447: completion: crash when backspacing with fuzzy completion v9.1.1447
zeertzjq [Tue, 10 Jun 2025 18:06:53 +0000 (20:06 +0200)] 
patch 9.1.1447: completion: crash when backspacing with fuzzy completion

Problem:  completion: crash when backspacing with fuzzy completion
Solution: Don't dereference compl_first_match when it's NULL
          (zeertzjq).

related: neovim/neovim#34419
closes: #17511

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(rpl): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:10:11 +0000 (21:10 +0200)] 
runtime(rpl): set commentstring option in ftplugin

closes: #17487

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(postscr): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:08:33 +0000 (21:08 +0200)] 
runtime(postscr): set commentstring option in ftplugin

closes: #17486

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(occam): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:06:23 +0000 (21:06 +0200)] 
runtime(occam): set commentstring option in ftplugin

closes: #17485

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(lprolog): set com, cms options for lambda prolog
Riley Bruins [Mon, 9 Jun 2025 19:03:04 +0000 (21:03 +0200)] 
runtime(lprolog): set com, cms options for lambda prolog

closes: #17481

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vue): set 'com' and 'cms' options in ftplugin
Riley Bruins [Mon, 9 Jun 2025 18:55:31 +0000 (20:55 +0200)] 
runtime(vue): set 'com' and 'cms' options in ftplugin

closes: #17479

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1446: filetype: cuda-gdb config files are not recognized v9.1.1446
Wu, Zhenyu [Mon, 9 Jun 2025 18:48:24 +0000 (20:48 +0200)] 
patch 9.1.1446: filetype: cuda-gdb config files are not recognized

Problem:  filetype: cuda-gdb config files are not recognized
Solution: detect .cuda-gdbinit and cuda-gdbinit files as gdb filetype
          (Wu Zhenyu)

closes: #17471

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1445: negative matchfuzzy scores although there is a match v9.1.1445
Girish Palya [Mon, 9 Jun 2025 18:43:03 +0000 (20:43 +0200)] 
patch 9.1.1445: negative matchfuzzy scores although there is a match

Problem:  negative matchfuzzy scores although there is a match
          (Maxim Kim)
Solution: reset the score if a match has been found but the score is
          negative (Girish Palya)

The fuzzy algorithm may miss some matches in long strings due to recursion
limits. As a result, the score can end up negative even when matches exist.
In such cases, reset the score to ensure it is non-negative.

fixes: ##17449
closes: #17469

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1444: Unused assignment in set_fuzzy_score() v9.1.1444
zeertzjq [Mon, 9 Jun 2025 18:34:57 +0000 (20:34 +0200)] 
patch 9.1.1444: Unused assignment in set_fuzzy_score()

Problem:  Unused assignment in set_fuzzy_score() (after 9.1.1441).
Solution: Remove it (zeertzjq).

closes: #17472

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1443: potential buffer underflow in insertchar() v9.1.1443
jinyaoguo [Mon, 9 Jun 2025 18:31:17 +0000 (20:31 +0200)] 
patch 9.1.1443: potential buffer underflow in insertchar()

Problem:  potential buffer underflow in insertchar()
Solution: verify that end_len is larger than zero
          (jinyaoguo)

When parsing the end-comment leader, end_len can be zero if
copy_option_part() writes no characters. The existing check
unconditionally accessed lead_end[end_len-1], causing potential
underflow when end_len == 0.

This change adds an end_len > 0 guard to ensure we only index lead_end
if there is at least one character.

closes: #17476

Signed-off-by: jinyaoguo <guo846@purdue.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1442: tests: Test_diff_fold_redraw() is insufficient v9.1.1442
Gary Johnson [Mon, 9 Jun 2025 18:19:35 +0000 (20:19 +0200)] 
patch 9.1.1442: tests: Test_diff_fold_redraw() is insufficient

Problem:  tests: Test_diff_fold_redraw() is insufficient
          (after v9.1.1439, Christ van Willegen)
Solution: improve the test (Gary Johnson)

The original Test_diff_fold_redraw() function, added 2025-06-08 at patch
9.1.1439, had a bug and didn't do a very good job of testing the fold
behavior.  This new version is simpler and more thorough.

The bug was that it checked the fold state of one window twice instead
of checking both windows.

closes: #17492

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): cleanup Decho related comments
Luca Saccarola [Mon, 9 Jun 2025 14:04:05 +0000 (16:04 +0200)] 
runtime(netrw): cleanup Decho related comments

closes: #17465

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1441: completion: code can be improved v9.1.1441
Girish Palya [Sun, 8 Jun 2025 14:20:06 +0000 (16:20 +0200)] 
patch 9.1.1441: completion: code can be improved

Problem:  completion: code can be improved
Solution: remove reposition_match() and use mergesort_list(),
          for fuzzy completion, sort by fuzzy score immediately after
          setting a new leader (Girish Palya)

closes: #17460

Co-authored-by: glepnir <glephunter@gmail.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(nginx): Add NGINX directive for background cache updates
S0AndS0 [Sun, 8 Jun 2025 14:15:00 +0000 (16:15 +0200)] 
runtime(nginx): Add NGINX directive for background cache updates

Docs: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_background_update

closes: #17458

Signed-off-by: S0AndS0 <strangerthanbland@gmail.com>
Signed-off-by: Chris Aumann <me@chr4.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1440: too many strlen() calls in os_win32.c v9.1.1440
John Marriott [Sun, 8 Jun 2025 14:05:53 +0000 (16:05 +0200)] 
patch 9.1.1440: too many strlen() calls in os_win32.c

Problem:  too many strlen() calls in os_win32.c
Solution: refactor code and remove calls to strlen()
          (John Marriott)

The following changes have been made:
- In mch_init_g():
  - refactor to remove calls to STRLEN().
  - use vim_strnsave() instead of vim_strsave().
  - set a flag if vimrun_path is stored in allocated memory so it can be
     freed at exit.
- In mch_exit() free vimrun_path if it was stored in allocated memory.
- In fname_case() make a small optimisation by measuring the length of
  name only if needed.
- In copy_extattr() make a small optimisation by replacing call to
  STRCAT() with STRCPY().

closes: #17462

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1439: Last diff folds not merged v9.1.1439
Gary Johnson [Sun, 8 Jun 2025 14:00:06 +0000 (16:00 +0200)] 
patch 9.1.1439: Last diff folds not merged

Problem:  Last diff folds not merged (after v8.1.1922)
Solution: loop over all windows in the current tabpage and update all
          folds (Gary Johnson)

This commit fixes a bug where the last two folds of a diff are not
merged when the last difference between the two diff'd buffers is
resolved.

Normally, when two buffers are diff'd, folding is used to show only the
text that differs and to hide the text that is the same between the two
buffers.  When a difference is resolved by making a block of text the
same in both buffers, the folds are updated to merge that block with the
folds above and below it into one closed fold.

That updating of the folds did not occur when the block of text was the
last diff block in the buffers.

The bug was introduced by this patch on August 24, 2019:

    patch 8.1.1922: in diff mode global operations can be very slow

    Problem:    In diff mode global operations can be very slow.
    Solution:   Do not call diff_redraw() many times, call it once when
redrawing.  And also don't update folds multiple times.

Unfortunately, folds were then not updated often enough.

The problem was fixed by adding a short loop to the ex_diffgetput()
function in diff.c to update all the folds in the current tab when the
last difference is removed.

A test for this was added to test_diffmode.vim.  Two of the reference
screen dumps for another test in that file,
Test_diffget_diffput_linematch(), had to be changed to have all the
folds closed rather than to have the last diff block remain open.

closes: #17457

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1438: tests: Test_breakindent_list_split() fails v9.1.1438
Aliaksei Budavei [Sun, 8 Jun 2025 13:52:42 +0000 (15:52 +0200)] 
patch 9.1.1438: tests: Test_breakindent_list_split() fails

Problem:  tests: Test_breakindent_list_split() fails
          (Phạm Bình An)
Solution: Always reset "&columns" and "&lines" for GUI builds
          (Aliaksei Budavei)

Ensure that "&columns" and "&lines" are always set to their
default values before calling "SetUp()", if any, for EACH
test run by a GUI build to avoid yet-to-be-run tests from
inheriting possibly changed values (after window resizing)
and leading to broken assumptions about available estate and
occasional test failures.

fixes: #17453
closes: #17447

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1437: MS-Windows: internal compile error in uc_list() v9.1.1437
Mike Williams [Sun, 8 Jun 2025 13:41:52 +0000 (15:41 +0200)] 
patch 9.1.1437: MS-Windows: internal compile error in uc_list()

Problem:  MS-Windows: internal compile error in uc_list() with VS 17.14
          (ibear)
Solution: refactor code slightly (Mike Williams)

fixes: #17402
closes: #17464

Signed-off-by: Mike Williams <mrmrdubya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): fix some style issues and remove obsolete docs
Hirohito Higashi [Sat, 7 Jun 2025 16:31:42 +0000 (18:31 +0200)] 
runtime(doc): fix some style issues and remove obsolete docs

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): vimHLGroup is not highlighted correctly
Eisuke Kawashima [Sat, 7 Jun 2025 15:59:11 +0000 (17:59 +0200)] 
runtime(vim): vimHLGroup is not highlighted correctly

Problem: vimHLGroup is not highlighted in "hi def link"
          and "hi clear" commands
Solution: highlight vimHLGroup similarly to vimGroup
          (Eisuke Kawashima)

closes: #17450

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): remove trailing whitespace in Vim syntax generator
Eisuke Kawashima [Sat, 7 Jun 2025 15:55:58 +0000 (17:55 +0200)] 
runtime(vim): remove trailing whitespace in Vim syntax generator

related: #17450

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1436: GUI control code is displayed on the console on startup v9.1.1436
Hirohito Higashi [Sat, 7 Jun 2025 15:49:35 +0000 (17:49 +0200)] 
patch 9.1.1436: GUI control code is displayed on the console on startup

Problem:  GUI control code is displayed on the console on startup
Solution: check if Vim is starting up (Hirohito Higashi)

closes: #17456

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoCI: bump xcode to 16.4
Philip H. [Sat, 7 Jun 2025 15:45:21 +0000 (17:45 +0200)] 
CI: bump xcode to 16.4

closes: #17446

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(netrw): upstream snapshot of v181
Luca Saccarola [Sat, 7 Jun 2025 15:35:18 +0000 (17:35 +0200)] 
runtime(netrw): upstream snapshot of v181

closes: #17461

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(typescript): remove Fixedgq() function from indent script
Phạm Bình An [Thu, 5 Jun 2025 19:21:35 +0000 (21:21 +0200)] 
runtime(typescript): remove Fixedgq() function from indent script

Problem:
1. The `Fixedgq()` function is broken (see #17412)
2. The `'formatexpr'` for Typescript is not documented, which causes
   confusion to users when they try to set `'formatprg'`, since
   `'formatexpr'` always takes precedence over `'formatprg'`. See also
   https://github.com/HerringtonDarkholme/yats.vim/issues/209
3. Typescript already has a very good and popular formatter called
   `prettier`, that can be easily integrated to Vim via `'formatprg'`
   (see #16989). I don't think there are any good reasons to reinvent a
   half-baked version in Vim.

Solution:  Remove the Fixedgq() 'formatexpr' function.

fixes: #17412
closes: #17452

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): Add missing 'wfb' (winfixbuf) tag
Doug Kearns [Thu, 5 Jun 2025 19:18:09 +0000 (21:18 +0200)] 
runtime(doc): Add missing 'wfb' (winfixbuf) tag

closes: #17455

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1435: completion: various flaws in fuzzy completion v9.1.1435
Girish Palya [Thu, 5 Jun 2025 19:04:29 +0000 (21:04 +0200)] 
patch 9.1.1435: completion: various flaws in fuzzy completion

Problem:  completion: various flaws in fuzzy completion
Solution: fix the issues (Girish Palya)

- Remove the brittle `qsort()` on `compl_match_array`.
- Add a stable, non-recursive `mergesort` for the internal doubly
  linked list of matches.
- The sort now happens directly on the internal representation (`compl_T`),
  preserving sync with external structures and making sorting stable.
- Update fuzzy match logic to enforce `max_matches` limits after
  sorting.
- Remove `trim_compl_match_array()`, which is no longer necessary.
- Fixe test failures by correctly setting `selected` index and
  maintaining match consistency.
- Introduce `mergesort_list()` in `misc2.c`, which operates generically
  over doubly linked lists.
- Remove `pum_score` and `pum_idx` variables

fixes: #17387
closes: #17430

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1434: MS-Windows: missing out-of-memory checks in os_win32.c v9.1.1434
John Marriott [Thu, 5 Jun 2025 18:49:39 +0000 (20:49 +0200)] 
patch 9.1.1434: MS-Windows: missing out-of-memory checks in os_win32.c

Problem:  MS-Windows: missing out-of-memory checks in os_win32.c
Solution: Add out-of-memory checks to os_win32.c (John Marriott)

closes: #17441

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1433: Unnecessary :if when writing session v9.1.1433
zeertzjq [Thu, 5 Jun 2025 18:25:51 +0000 (20:25 +0200)] 
patch 9.1.1433: Unnecessary :if when writing session

Problem:  Unnecessary :if in session where both branches have the same
          effect (after 9.1.1431).
Solution: Remove the superfluous :if (zeertzjq).

closes: #17448

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): Update base-syntax, improve Vim9 block start pattern
Doug Kearns [Thu, 5 Jun 2025 18:23:07 +0000 (20:23 +0200)] 
runtime(vim): Update base-syntax, improve Vim9 block start pattern

The opening curly brace must be followed by whitespace, comment or
trailing bar.

closes: #17454

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>