]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
2 months agopatch 9.1.1396: 'errorformat' is a global option v9.1.1396
glepnir [Fri, 16 May 2025 17:49:23 +0000 (19:49 +0200)] 
patch 9.1.1396: 'errorformat' is a global option

Problem:  The 'grepformat' option is global option, but it would be
          useful to have it buffer-local, similar to 'errorformat' and
          other quickfix related options (Dani Dickstein)
Solution: Add the necessary code to support global-local 'grepformat',
          allowing different buffers to parse different grep output
          formats (glepnir)

fixes: #17316
closes: #17315

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1395: search_stat not reset when pattern differs in case v9.1.1395
Christian Brabandt [Fri, 16 May 2025 17:38:50 +0000 (19:38 +0200)] 
patch 9.1.1395: search_stat not reset when pattern differs in case

Problem:  search_stat not reset when pattern differs in case
          (tahzibijafar)
Solution: use STRNCMP instead of MB_STRNICMP macro

There was a long standing todo comment, that using MB_STRNICMP is wrong.
So let's change it to STRNCMP() instead. Even if it not handle
multi-byte characters correctly, then Vim will rather recompute the
search stat, instead of re-using the old (and possibly wrong) value.

fixes: #17312
closes: #17314

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1394: tabpanel not correctly redrawn on tabonly v9.1.1394
Hirohito Higashi [Fri, 16 May 2025 17:34:34 +0000 (19:34 +0200)] 
patch 9.1.1394: tabpanel not correctly redrawn on tabonly

Problem:  tabpanel not correctly redrawn on tabonly
          (Maxim Kim, after v9.1.1391)
Solution: force redraw of the tabpanel, tweak style
          (Hirohito Higashi)

fixes: #17322
closes: #17330

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix typo in description of :redrawtabpanel
Christian Brabandt [Thu, 15 May 2025 18:16:04 +0000 (20:16 +0200)] 
runtime(doc): fix typo in description of :redrawtabpanel

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(gleam): add @Spell clusters to syntax script
Kat [Thu, 15 May 2025 18:10:48 +0000 (20:10 +0200)] 
runtime(gleam): add @Spell clusters to syntax script

closes: #17324

Signed-off-by: Kat <65649991+00-kat@users.noreply.github.com>
Signed-off-by: Kirill Morozov <kirill@robotix.pro>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(pandoc): update YAML metadata block parsing in compiler runtime
Alexander Abrosimov [Thu, 15 May 2025 18:06:29 +0000 (20:06 +0200)] 
runtime(pandoc): update YAML metadata block parsing in compiler runtime

Previously the incorrect regexp forced title to be a single letter
because of using '+' instead of the '\+' regexp modifier.

closes: #17321

Signed-off-by: Alexander Abrosimov <alexander.n.abrosimov@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1393: missing test for switching buffers and reusing curbuf v9.1.1393
Sean Dewar [Thu, 15 May 2025 17:59:37 +0000 (19:59 +0200)] 
patch 9.1.1393: missing test for switching buffers and reusing curbuf

Problem:  The check in buf_freeall that restores curwin subtly prevents
          leaving an unloaded buffer in a window when reusing curbuf, if
          autocommands switch to a different buffer.
Solution: Add a test case that covers this. Also ensure splitting isn't
          possible, as that could do the same (Sean Dewar)

closes: #17325

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1392: missing patch number
Christian Brabandt [Wed, 14 May 2025 21:32:13 +0000 (23:32 +0200)] 
patch 9.1.1392: missing patch number

Problem:  missing patch number
          (Tony Mechelynck)
Solution: add missing patche number

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1391: Vim does not have a vertical tabpanel v9.1.1391
Naruhiko Nishino [Wed, 14 May 2025 19:20:28 +0000 (21:20 +0200)] 
patch 9.1.1391: Vim does not have a vertical tabpanel

Problem:  Vim does not have a tabpanel
Solution: include the tabpanel feature
          (Naruhiko Nishino, thinca)

closes: #17263

Co-authored-by: thinca <thinca@gmail.com>
Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: git: ignore more style changes from v9.1.1390
Christian Brabandt [Wed, 14 May 2025 19:03:39 +0000 (21:03 +0200)] 
git: git: ignore more style changes from v9.1.1390

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1390: style: more wrong indentation v9.1.1390
Yegappan Lakshmanan [Wed, 14 May 2025 18:31:55 +0000 (20:31 +0200)] 
patch 9.1.1390: style: more wrong indentation

Problem:  style: more wrong indentation
Solution: reformat a few more places
          (Yegappan Lakshmanan)

closes: #17309

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1389: completion: still some issue when 'isexpand' contains a space v9.1.1389
glepnir [Wed, 14 May 2025 18:26:19 +0000 (20:26 +0200)] 
patch 9.1.1389: completion: still some issue when 'isexpand' contains a space

Problem:  Cannot get completion startcol when space is not the first
          trigger character (after v9.1.1383)
Solution: Detect the next comma followed by a space in the option string
          and use in next compare loop (glepnir)

closes: #17311

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling v9.1.1388
Luuk van Baal [Wed, 14 May 2025 18:21:55 +0000 (20:21 +0200)] 
patch 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling

Problem:  One-off error in "count" to make "w_skipcol" zero with
          'nosmoothscroll' page scrolling when last virtual line
          in a buffer line is exactly the entire window width.
          (Hirohito Higashi)
Solution: Properly compute the smallest integer value necessary
          to make "w_skipcol" zero (Luuk van Baal)

fixes: #17317
closes: #17318

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1387: memory leak when buflist_new() fails to reuse curbuf v9.1.1387
Sean Dewar [Wed, 14 May 2025 18:16:52 +0000 (20:16 +0200)] 
patch 9.1.1387: memory leak when buflist_new() fails to reuse curbuf

Problem:  buflist_new() leaks ffname and fails to reuse curbuf when
          autocommands from buf_freeall change curbuf. Plus, a new
          buffer is not allocated in this case, despite what the comment
          above claims.
Solution: Remove the condition so ffname is not leaked and so a new
          buffer is allocated like before v8.2.4791. It should not be
          possible for undo_ftplugin or buf_freeall autocommands to
          delete the buffer as they set b_locked, but to stay consistent
          with other uses of buf_freeall, guard against that anyway
          (Sean Dewar).

Note that buf is set to NULL if it was deleted to guard against the (rare)
possibility of messing up the "buf != curbuf" condition below if a new buffer
happens to be allocated at the same address.

closes: #17319

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1386: MS-Windows: some minor problems building on AARCH64 v9.1.1386
Christian Brabandt [Wed, 14 May 2025 18:14:30 +0000 (20:14 +0200)] 
patch 9.1.1386: MS-Windows: some minor problems building on AARCH64

Problem:  MS-Windows: some minor problems building on AARCH64
Solution: Update Make_cyg_ming with aarch64 specific changes,
          document how to build on aarch64 using msys2 packages

closes: #17048

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling v9.1.1385
Luuk van Baal [Mon, 12 May 2025 18:45:41 +0000 (20:45 +0200)] 
patch 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling

Problem:  Loop that ensures "w_skipcol" is zero with 'nosmoothscroll'
  for (half)-page scrolling is inefficient.
Solution: Calculate the required "count" instead of looping until
  "w_skipcol" is zero (Luuk van Baal).

fixes: #17301
closes: #17306

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1384: still some problem with the new tutors filetype plugin v9.1.1384
Phạm Bình An [Mon, 12 May 2025 18:39:24 +0000 (20:39 +0200)] 
patch 9.1.1384: still some problem with the new tutors filetype plugin

Problem:  still some problem with the new tutors filetype plugin
Solution: refactor code to enable/disable tutor mode into
          tutor#EnableInteractive() function, include a test
          (Phạm Bình An)

I find it annoying that Tutor's interactive mode is always on (or debug
mode is off) even when I open a tutor file with :edit command.
I think it makes more sense to make this "interactive mode":

- Always on when it is opened with :Tutor command
- Off otherwise

For more references, see `:help` feature, it is a much better than
:Tutor, since I don't have to run `:let g:help_debug = 1` just to be able
to edit and save a help file

Therefore, I remove `g:tutor_debug`

closes: #17299

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1383: completion: 'isexpand' option does not handle space char correct v9.1.1383
glepnir [Mon, 12 May 2025 18:28:28 +0000 (20:28 +0200)] 
patch 9.1.1383: completion: 'isexpand' option does not handle space char correct

Problem:  When a space character is used as a trigger in 'isexpand' option
          it doesn't get recognized because skip_to_option_part() skips
          spaces after a comma, treating them as option separators
          rather than option value (after v9.1.1341)
Solution: manually set the part to a space character (glepnir).

closes: #17305

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(getscript): CI: failure on powershell
Christian Brabandt [Sun, 11 May 2025 16:30:24 +0000 (18:30 +0200)] 
runtime(getscript): CI: failure on powershell

Problem:  The CheckVimScriptURL() function does not work properly on
          pwershell. Most likely this is because curl is aliased to
          Invoke-WebRequest on Powershell and redirection seems to work
          slightly different
Solution: Disable CheckVimScriptURL() on Powershell and then simplify
          the curl download logic

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1382: if_ruby: unused compiler warnings from ruby internals v9.1.1382
Philip H. [Sun, 11 May 2025 13:01:31 +0000 (15:01 +0200)] 
patch 9.1.1382: if_ruby: unused compiler warnings from ruby internals

Problem:  if_ruby: unused compiler warnings from ruby internals
Solution: disable -Wunused-parameter for if_ruby internal code
          (Philip H.)

closes: #17297

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(getscript): check for network errors
Christian Brabandt [Sun, 11 May 2025 12:43:11 +0000 (14:43 +0200)] 
runtime(getscript): check for network errors

related: #17249

Co-authored-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1381: completion: cannot return to original text v9.1.1381
glepnir [Sun, 11 May 2025 11:48:33 +0000 (13:48 +0200)] 
patch 9.1.1381: completion: cannot return to original text

Problem:  Cannot return to the original text after selecting the next
          item when the currently selected item is the last one.
Solution: When continuing to move down past the last item, locate the
          original completion at the head/tail nodes of the completed
          linked list (glepnir).

closes: #17300

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1380: 'eventignorewin' only checked for current buffer v9.1.1380
Sean Dewar [Sun, 11 May 2025 11:45:21 +0000 (13:45 +0200)] 
patch 9.1.1380: 'eventignorewin' only checked for current buffer

Problem:  When an autocommand executes for a non-current buffer,
          'eventignorewin' is only checked from the buffer's last
          wininfo (overwrites win_ignore in the loop), not from the
          value of 'eventignorewin' in all windows showing the buffer as
          described (after v9.1.1084)

Solution: Fix the check and don't use wininfo, as that may only contain
          windows that recently showed the buffer. Consider all the
          buffer's windows in all tabpages (Sean Dewar).

closes: #17294

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(java): Search type and method declarations with "&inc" and "&def"
Aliaksei Budavei [Sat, 10 May 2025 19:44:07 +0000 (21:44 +0200)] 
runtime(java): Search type and method declarations with "&inc" and "&def"

=============== LIMITATIONS AND OBSERVATIONS ===============

* Remember that external-type names can only be found when
  they match filenames resolvable in "&path" with "import"
  declarations; load the source file of an external type to
  look up its nested types and sibling top types, if any.

* Strive to narrow the search by assigning only relevant
  pathnames for directories *or* an archive to "&path", e.g.
  ":set path-=/usr/include".

* Use "{Visual}gf" on fully-qualified names.

* Accept the fact that "&define" cannot contain end-of-line
  characters (":help definition-search").  A declaration
  whose matchable header is not contained within a line can
  be found iff all of its non-optional components belong to
  the same line; for types, such components are a keyword,
  e.g. "class", followed by a run of blank characters and
  an identifier, e.g. "Test"; for methods: a return type,
  e.g. "String", or a keyword "void", followed by a run of
  blank characters and an identifier, e.g. "toString", that
  is followed by "(".

* The members of the "java.lang" package are usually not
  associated with "import" declarations; to look up their
  declarations, load a source file for a member of that
  package, and then use, on a simple name of interest for
  a member, either "[-Ctrl-d" etc. for local declarations
  or "gf" for external declarations, assuming that "." *or*
  the appropriate pathname for a JDK archive is assigned to
  "&path".

* Follow the above instruction made for the "java.lang"
  members for any type whose simple name is not associated
  with an "import" declaration, i.e. a member type of the
  same package that is declared in another compilation unit.

* Append the "$" character to "&iskeyword" when looking up
  declarations of generated code.

See zzzyxwvut/java-vim#4.

closes: #17281

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(html): Optionally fold tags with the "expr" method
Aliaksei Budavei [Sat, 10 May 2025 19:40:41 +0000 (21:40 +0200)] 
runtime(html): Optionally fold tags with the "expr" method

Tag folding poses a few difficulties.  Many elements, e.g.
"blockquote", are always delimited by start and end tags;
end tags for some elements, e.g. "p", can be omitted in
certain contexts; void elements, e.g. "hr", have no end tag.
Although the rules for supporting omissible end tags are
ad-hoc and involved, they apply to elements in scope.
Assuming syntactical wellformedness, an end tag can be
associated with its nearest matching start tag discoverable
in scope and towards the beginning of a file, whereas all
unbalanced tags and inlined tags can be disregarded.

For example:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <p>Paragraph #1. <!--  = : 2 -->
    <p> <!-- >3 : 3 -->
      Paragraph #2. <!--  = : 3 -->
    </p> <!-- <3 : 3 -->
    <p>Paragraph #3.</p> <!--  = : 2 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

(HTML comments here, "<!-- ... -->", record two values for
each folded line that are separated by ":", a value obtained
from "&foldexpr" and a value obtained from "foldlevel()".)

Innermost foldedable tags will be flattened.  For example:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre><code> <!-- >4 : 4 -->
[CODE SNIPPET] <!--  = : 4 -->
      </code></pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

No folding will be requested for the "<code>"-"</code>" tag
pair and reflected by "&foldexpr" because such a fold would
have claimed the same lines that the immediate fold of the
"<pre>"-"</pre>" tag already claims.

Run-on folded tags may confuse Vim.  When a file such as:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #1] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
<!--  = : 3 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #2] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

is reformatted as follows:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #1] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div><div class="block"><pre><code> <!-- <3 : 3 -->
[CODE SNIPPET #2] <!--  = : 2 ? -->
</code> <!-- <5 : 2 ? -->
      </pre> <!-- <4 : 2 ? -->
    </div> <!-- <3 : 2 ? -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

"&foldexpr" values will not be used as is for the lines
between (and including) "[CODE SNIPPET #2]" and "</div>".
(Cf. v9.1.0002.)

Having syntax highlighting in effect, tag folding using the
"fold-expr" method can be enabled with:
------------------------------------------------------------
let g:html_expr_folding = 1
------------------------------------------------------------

By default, tag folding will be redone from scratch after
each occurrence of a TextChanged or an InsertLeave event.
Such frequency may not be desired, especially for large
files, and this recomputation can be disabled with:
------------------------------------------------------------
let g:html_expr_folding_without_recomputation = 1
        doautocmd FileType
------------------------------------------------------------

To force another recomputation, do:
------------------------------------------------------------
unlet! b:foldsmap
normal zx
------------------------------------------------------------

References:
https://web.archive.org/web/20250328105626/https://html.spec.whatwg.org/multipage/syntax.html#optional-tags
https://en.wikipedia.org/wiki/Dangling_else

closes: #17141

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(tutor): improve tutor.vim plugin and filetype plugin
Phạm Bình An [Sat, 10 May 2025 19:20:57 +0000 (21:20 +0200)] 
runtime(tutor): improve tutor.vim plugin and filetype plugin

- Set g:tutor_debug on startup if it doesn't exist so that users can get
  cmdline completion when interactively setting it.
- set b:undo_ftplugin in filetype plugin
- set default runtime file headers

closes: #17274

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Update syntax, improve wildcard character class matching
Doug Kearns [Sat, 10 May 2025 18:57:10 +0000 (20:57 +0200)] 
runtime(sh): Update syntax, improve wildcard character class matching

- Default to POSIX supported classes.
- Add a KornShell specific class list.
- Remove "or" from the Bash class list, presumably a typo.

closes: #17293

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
2 months agopatch 9.1.1379: MS-Windows: error when running evim when space in path v9.1.1379
GuyBrush [Sat, 10 May 2025 18:44:33 +0000 (20:44 +0200)] 
patch 9.1.1379: MS-Windows: error when running evim when space in path

Problem:  MS-Windows: error when running evim when space in path of Vim
Solution: properly parse quoted strings (Miguel Barro)

When vim is installed in a path with whitespaces (like
`C:\Program Files (x86)\Vim\vim91\vim.exe`). Launching `evim` or
`vim -d` will try to open the file ` (x86)\Vim\vim91\vim.exe`.

Modern versions of vim simplify shell operation by parsing its own
command line. For example on Linux all vim flavours like `evim`, `rvim`,
etc are symlinks to vim. Then vim uses the `parse_command_name()`
function to identify which version of vim it should launch.
For `evim` if a GUI is available `gvim` is launched for better user
experience. In order to launch `gvim` the original command line is
parsed to be passed *verbatim* to the new instance.
This parsing did not properly handle quoted command lines with
whitespaces such as
```
"C:\Program Files (x86)\Vim\vim91\vim.exe" -y myfile.txt
```

closes: #17295

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1378: sign without text overwrites number option v9.1.1378
glepnir [Sat, 10 May 2025 12:59:08 +0000 (14:59 +0200)] 
patch 9.1.1378: sign without text overwrites number option

Problem:  When 'signcolumn' is set to `number` but a line has a sign
          without text, the line number disappears (finite-state-machine)
Solution: Verify that a sign actually contains text before rendering the
          line number (glepnir)

fixes: #17169
closes: #17282

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): clarify single/multibyte support for 'fillchars'
Hirohito Higashi [Sat, 10 May 2025 12:56:17 +0000 (14:56 +0200)] 
runtime(doc): clarify single/multibyte support for 'fillchars'

closes: #17287

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1377: patch v9.1.1370 causes some GTK warning messages v9.1.1377
Drew Vogel [Sat, 10 May 2025 12:46:28 +0000 (14:46 +0200)] 
patch 9.1.1377: patch v9.1.1370 causes some GTK warning messages

Problem:  Some GTK3 users experienced unexpectedly small windows at
          startup (after v9.1.1368, @berggeist, Tony Mechelynck)
Solution: Update window manager hints in gui_mch_open, partly revert
          v9.1.1370 (Drew Vogel)

fixes: #17279
closes: #17288

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(lf): use syn iskeyword in syntax script
Andis Spriņķis [Sat, 10 May 2025 12:42:25 +0000 (14:42 +0200)] 
runtime(lf): use syn iskeyword in syntax script

Sets 'syn iskeyword' in syntax/lf.vim to fix the missing lf keyword
highlighting in lines like 'map e :open; open' (first 'open' not
highlighted).

applies PR andis-sprinkis/lf-vim#21 by @joelim-work
closes: andis-sprinkis/lf-vim#14

Co-authored-by: Joe Lim <50560759+joelim-work@users.noreply.github.com>
Signed-off-by: Andis Spriņķis <andis@sprinkis.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1376: quickfix dummy buffer may remain as dummy buffer v9.1.1376
Sean Dewar [Sat, 10 May 2025 12:33:28 +0000 (14:33 +0200)] 
patch 9.1.1376: quickfix dummy buffer may remain as dummy buffer

Problem:  when failing to wipeout a quickfix dummy buffer, it will
          remain as a dummy buffer, despite being kept.
Solution: clear its dummy BF_DUMMY flag in this case (Sean Dewar).

closes: #17283

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer v9.1.1375
Sean Dewar [Sat, 10 May 2025 12:30:36 +0000 (14:30 +0200)] 
patch 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer

Problem:  heap use-after-free possible when autocommands switch away from the
          quickfix dummy buffer, but leave it open in a window.
Solution: close its windows first before attempting the wipe.
          (Sean Dewar)

related: #17283

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoCI: use deb822 style for llvm source
Philip H. [Sat, 10 May 2025 12:23:36 +0000 (14:23 +0200)] 
CI: use deb822 style for llvm source

closes: #17285

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): remove duplicate sentence in builtin.txt
Christian Brabandt [Fri, 9 May 2025 06:19:51 +0000 (08:19 +0200)] 
runtime(doc): remove duplicate sentence in builtin.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotypo in comment in gui.c
Christ van Willegen [Thu, 8 May 2025 22:08:01 +0000 (00:08 +0200)] 
typo in comment in gui.c

Problem:  typo in comment in gui.c (after v9.1.1367)
Solution: fix the typo  (Christ van Willegen)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): update return types for builtin functions
Christian Brabandt [Thu, 8 May 2025 22:03:20 +0000 (00:03 +0200)] 
runtime(doc): update return types for builtin functions

fixes: #17273

credit: Github user @msoyka2024
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1374: completion: 'smartcase' not respected when filtering matches v9.1.1374
Girish Palya [Thu, 8 May 2025 21:28:52 +0000 (23:28 +0200)] 
patch 9.1.1374: completion: 'smartcase' not respected when filtering matches

Problem:  Currently, 'smartcase' is respected when completing keywords
          using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when
          a user continues typing and the completion menu is filtered
          using cached matches, 'smartcase' is not applied. This leads
          to poor-quality or irrelevant completion suggestions, as shown
          in the example below.
Solution: When filtering cached completion items after typing additional
          characters, apply case-sensitive comparison if 'smartcase' is
          enabled and the typed pattern includes uppercase characters.
          This ensures consistent and expected completion behavior.
          (Girish Palya)

closes: #17271

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1373: 'completeopt' checking logic can be simplified v9.1.1373
glepnir [Thu, 8 May 2025 21:05:10 +0000 (23:05 +0200)] 
patch 9.1.1373: 'completeopt' checking logic can be simplified

Problem:  Flag checking logic uses a temporary variable and multiple
          bitwise operations in insexpand.c
Solution: Consolidate into a single equality check using bitwise OR and
          comparison (glepnir)

closes: #17276

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: ignore more style changes from v9.1.1371 and v9.1.1372
Christian Brabandt [Thu, 8 May 2025 21:01:41 +0000 (23:01 +0200)] 
git: ignore more style changes from v9.1.1371 and v9.1.1372

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1372: style: braces issues in various files v9.1.1372
Hirohito Higashi [Thu, 8 May 2025 20:58:31 +0000 (22:58 +0200)] 
patch 9.1.1372: style: braces issues in various files

Problem:  style: braces issues in various files
Solution: fix style (Hirohito Higashi)

closes: #17277

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1371: style: indentation and brace issues in insexpand.c v9.1.1371
glepnir [Thu, 8 May 2025 20:50:38 +0000 (22:50 +0200)] 
patch 9.1.1371: style: indentation and brace issues in insexpand.c

Problem:  style: indentation issue in insexpand.c
Solution: update style (glepnir)

closes: #17278

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1370: CI Tests favor GTK2 over GTK3 v9.1.1370
Drew Vogel [Wed, 7 May 2025 20:05:17 +0000 (22:05 +0200)] 
patch 9.1.1370: CI Tests favor GTK2 over GTK3

Problem:  CI Tests favor GTK2 over GTK3
Solution: Install GTK3 dependencies and debug packages for CI workflows,
          update ASAN suppression list, update required dependency
          checks for the tests (Drew Vogel)

closes: #17253

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1369: configure still using autoconf 2.71 v9.1.1369
Christian Brabandt [Wed, 7 May 2025 19:44:33 +0000 (21:44 +0200)] 
patch 9.1.1369: configure still using autoconf 2.71

Problem:  configure still using autoconf 2.71
Solution: regenerate with autoconf 2.72

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1368: GTK3 and GTK4 will drop numeric cursor support. v9.1.1368
Drew Vogel [Wed, 7 May 2025 19:32:03 +0000 (21:32 +0200)] 
patch 9.1.1368: GTK3 and GTK4 will drop numeric cursor support.

Problem:  GTK3 and GTK4 will drop numeric cursor support.
Solution: Adopt GTK3 code and use CSS cursor convention (Drew Vogel).

closes: #14610

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1367: too many strlen() calls in gui.c v9.1.1367
John Marriott [Wed, 7 May 2025 17:59:42 +0000 (19:59 +0200)] 
patch 9.1.1367: too many strlen() calls in gui.c

Problem:  too many strlen() calls in gui.c
Solution: refactor gui.c slightly (John Marriott)

This does the following changes:
- use macro STRCMP() instead of strcmp().
- refactor gui_outstr_nowrap() to remove call to STRLEN().
- refactor get_tabline_label() in attempt to simply it. At the same time
  use standard looping construct for iterating over windows in a tab.
  Move variables closer to where they are used. Add check that we don't
  exceed size of NameBuff.
- small optimisation in get_find_dialog_text() to measure the string
  length once.

closes: #17269

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1366: v9.1.1364 unintentionally changed sign.c and sound.c v9.1.1366
Hirohito Higashi [Tue, 6 May 2025 16:13:29 +0000 (18:13 +0200)] 
patch 9.1.1366: v9.1.1364 unintentionally changed sign.c and sound.c

Problem:  v9.1.1364 unintentionally changed sign.c and sound.c
Solution: revert those parts, adjust the test (Hirohito Higashi)

closes: #17264

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(lua): update 'path' option in filetype plugin
Phạm Bình An [Tue, 6 May 2025 16:08:38 +0000 (18:08 +0200)] 
runtime(lua): update 'path' option in filetype plugin

Problem:  Lua doesn't support importing module in path related to current
          file like JS does (https://www.reddit.com/r/lua/comments/wi0bau/whats_the_correct_way_to_run_a_lua_file_that_uses/)
Solution: Remove `.` from Lua buffer-local option `'path'`

closes: #17267

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Update syntax, match KornShell compound arrays
Doug Kearns [Tue, 6 May 2025 15:59:25 +0000 (17:59 +0200)] 
runtime(sh): Update syntax, match KornShell compound arrays

closes: #17268

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Tweak documentation style in develop.txt
Hirohito Higashi [Mon, 5 May 2025 18:19:09 +0000 (20:19 +0200)] 
runtime(doc): Tweak documentation style in develop.txt

closes: #17252

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(helptoc): the helptoc package can be improved
Peter Kenny [Mon, 5 May 2025 18:15:39 +0000 (20:15 +0200)] 
runtime(helptoc): the helptoc package can be improved

Adds the following changes:
- New Maintainer: Pete Kenny
- New filetypes supported (asciidoc, html, tex, vim, xhtml)
- improved Markdown support
- Sanitised ToCs and popup presentation
- Configuration improvements and options
- Add helptoc.txt help file

closes: #17255

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(spec): add more local macro names according to rpm 4.20
fundawang [Mon, 5 May 2025 18:12:40 +0000 (20:12 +0200)] 
runtime(spec): add more local macro names according to rpm 4.20

closes: #17258

Signed-off-by: fundawang <fundawang@yeah.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Update syntax, fix single-quoted strings in parameter expansions
Doug Kearns [Mon, 5 May 2025 18:10:11 +0000 (20:10 +0200)] 
runtime(sh): Update syntax, fix single-quoted strings in parameter expansions

Ignore single-quoted backslash escape sequences in parameter expansions.

\' is not an escaped single quote in ${foo:-'word\'}.

closes: #17261

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(new-tutor): Update Serbian translation of chapter 1
Ivan Pešić [Mon, 5 May 2025 18:07:46 +0000 (20:07 +0200)] 
runtime(new-tutor): Update Serbian translation of chapter 1

closes: #17262

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1365: MS-Windows: compile warnings and too many strlen() calls v9.1.1365
John Marriott [Sun, 4 May 2025 19:35:36 +0000 (21:35 +0200)] 
patch 9.1.1365: MS-Windows: compile warnings and too many strlen() calls

Problem:  MS-Windows: compile warnings and too many strlen() calls  in
          os_mswin.c
Solution: refactor os_mswin.c and fix the warning (John Marriott)

This change does the following:

- Fix compile warnings (clang 20.1.3) in `mch_libcall()`:
```
os_mswin.c:902:21: warning: cast from 'MYSTRPROCSTR' (aka 'char *(*)(char *)') to 'MYSTRPROCINT' (aka 'int (*)(char *)') converts to incompatible function type [-Wcast-function-type-mismatch]`
  902 |                     retval_int = ((MYSTRPROCINT)ProcAdd)((LPSTR)argstring);`
      |                                   ^~~~~~~~~~~~~~~~~~~~~`
os_mswin.c:914:21: warning: cast from 'MYINTPROCSTR' (aka 'char *(*)(int)') to 'MYINTPROCINT' (aka 'int (*)(int)') converts to incompatible function type [-Wcast-function-type-mismatch]`
  914 |                     retval_int = ((MYINTPROCINT)ProcAddI)(argint);`
      |                                   ^~~~~~~~~~~~~~~~~~~~~~`
2 warnings generated.
```

- Refactor `stat_impl()` to remove call to `STRLEN()` (via `STRCAT()`).

- Refactor `Messaging_WndProc()`, `enumWindowsGetServer()` and
  `serverSendToVim()` to remove calls to `STRLEN()`.

- Use `string_T` to store field `name` in `struct charset_pair` and
  `struct quality_pair`. This means we can dispense with some calls to
  `STRLEN()`.

- Use `ARRAY_LENGTH()` macro to determine end of array in
  `charset_id2name()` and `quality_id2name()` to be consistent with the
  rest of the code base.

closes: #17222

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: ignore indentation changes for git-blame (after v9.1.1364)
Christian Brabandt [Sun, 4 May 2025 19:13:47 +0000 (21:13 +0200)] 
git: ignore indentation changes for git-blame (after v9.1.1364)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1364: style: more indentation issues v9.1.1364
Yegappan Lakshmanan [Sun, 4 May 2025 19:05:51 +0000 (21:05 +0200)] 
patch 9.1.1364: style: more indentation issues

Problem:  style: more indentation issues
Solution: fix indentation style
          (Yegappan Lakshmanan)

closes: #17256

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base-syntax, match quote separated numbers
Doug Kearns [Sun, 4 May 2025 19:01:18 +0000 (21:01 +0200)] 
runtime(vim): Update base-syntax, match quote separated numbers

closes: #17250

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: ignore indentation changes for git-blame (after v9.1.1363)
Christian Brabandt [Sun, 4 May 2025 18:08:45 +0000 (20:08 +0200)] 
git: ignore indentation changes for git-blame (after v9.1.1363)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1363: style: inconsistent indentation in various files v9.1.1363
Naruhiko Nishino [Sun, 4 May 2025 18:05:47 +0000 (20:05 +0200)] 
patch 9.1.1363: style: inconsistent indentation in various files

Problem:  style: inconsistent indentation in various files
Solution: fix style, updated codestyle test
          (Naruhiko Nishino)

closes: #17254

Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1362: Vim9: type ignored when adding tuple to instance list var v9.1.1362
Yegappan Lakshmanan [Sat, 3 May 2025 17:11:45 +0000 (19:11 +0200)] 
patch 9.1.1362: Vim9: type ignored when adding tuple to instance list var

Problem:  Vim9: type ignored when adding tuple to instance list var
          (Lifepillar)
Solution: When getting the typval of class and object member variables,
          set the variable type (Yegappan Lakshmanan)

fixes: #17236
closes: #17244

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(tutor): Add Galician language versions of tutor1 and tutor2
fernandovilarino [Sat, 3 May 2025 17:07:35 +0000 (19:07 +0200)] 
runtime(tutor): Add Galician language versions of tutor1 and tutor2

Both latin-1 and utf-8 versions are included.

closes: #17245

Signed-off-by: fernandovilarino <fernando@cvc.uab.es>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1361: [security]: possible use-after-free when closing a buffer v9.1.1361
Sean Dewar [Sat, 3 May 2025 16:37:27 +0000 (18:37 +0200)] 
patch 9.1.1361: [security]: possible use-after-free when closing a buffer

Problem:  [security]: Possible to open more windows into a closing
          buffer without splitting, bypassing existing "b_locked_split"
          checks and triggering use-after-free
Solution: Disallow switching to a closing buffer. Editing a closing
          buffer (via ":edit", etc.) was fixed in v9.1.0764, but add an
          error message and check just "b_locked_split", as "b_locked"
          is necessary only when the buffer shouldn't be wiped, and may
          be set for buffers that are in-use but not actually closing.
          (Sean Dewar)

closes: #17246

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(abnf): include ABNF filetype plugin
A4-Tacks [Fri, 2 May 2025 13:40:33 +0000 (15:40 +0200)] 
runtime(abnf): include ABNF filetype plugin

closes: #17239

Signed-off-by: A4-Tacks <wdsjxhno1001@163.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1360: filetype: GNU Radio companion files are not recognized v9.1.1360
zeertzjq [Fri, 2 May 2025 13:35:58 +0000 (15:35 +0200)] 
patch 9.1.1360: filetype: GNU Radio companion files are not recognized

Problem:  filetype: GNU Radio companion files are not recognized
Solution: detect *.grc files as xml or yaml filetype depending on the
          first line (zeertzjq).

Ref:
- https://wiki.gnuradio.org/index.php/XML_GRC
- https://wiki.gnuradio.org/index.php/YAML_GRC

closes: #17241

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1359: filetype: GNU Radio config files are not recognized v9.1.1359
zeertzjq [Fri, 2 May 2025 13:32:23 +0000 (15:32 +0200)] 
patch 9.1.1359: filetype: GNU Radio config files are not recognized

Problem:  filetype: GNU Radio config files are not recognized.
Solution: detect GNU Radio config files as confini filetype.  Only
          allow '#' as start of comment in confini syntax (zeertzjq).

Ref:
- https://wiki.gnuradio.org/index.php/Configuration_Files

closes: #17242

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1358: if_lua: compile warnings with gcc15 v9.1.1358
lilydjwg [Fri, 2 May 2025 13:17:14 +0000 (15:17 +0200)] 
patch 9.1.1358: if_lua: compile warnings with gcc15

Problem:  if_lua: compile warnings with gcc15
Solution: update function prototypes (lilydjwg)

see also https://github.com/ruby/ruby/pull/13202.

closes: #17243

Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base-syntax, improve enum highlighting
Doug Kearns [Thu, 1 May 2025 15:43:17 +0000 (17:43 +0200)] 
runtime(vim): Update base-syntax, improve enum highlighting

Match enum values and missing class keywords.

fixes: #15970

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): update example ctags program and links
Phạm Bình An [Thu, 1 May 2025 15:40:15 +0000 (17:40 +0200)] 
runtime(doc): update example ctags program and links

- :helptags is also a tags generating program, it deserves mentioning
- JTags seems too dead: its website has been sold, the source, binary
  can't be found anywhere.
- update link of ptags

closes: #17233

Signed-off-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer v9.1.1357
Phạm Bình An [Thu, 1 May 2025 15:30:58 +0000 (17:30 +0200)] 
patch 9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer

Problem:  Vim incorrectly escapes tags containing "[" in a help buffer
Solution: check if the buffer has the "help" filetype set, instead of
          already being a help buffer (Phạm Bình An)

fixes: #17224
closes: #17232

Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1356: Vim9: crash when unletting variable v9.1.1356
Hirohito Higashi [Thu, 1 May 2025 06:56:39 +0000 (08:56 +0200)] 
patch 9.1.1356: Vim9: crash when unletting variable

Problem:  Vim9: crash when unletting variable
Solution: fix crash, allow to use :unlet
          (Hirohito Higashi)

closes: #17226

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(sh): Update syntax, highlight escaped chars in test expressions
Doug Kearns [Wed, 30 Apr 2025 18:04:28 +0000 (20:04 +0200)] 
runtime(sh): Update syntax, highlight escaped chars in test expressions

Highlight escape characters in unquoted test expression operands.

E.g., [[ foo == \[bar\] ]]

fixes #17221

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): document that :b cannot handle buffer names starting with "+"
Christian Brabandt [Wed, 30 Apr 2025 17:54:52 +0000 (19:54 +0200)] 
runtime(doc): document that :b cannot handle buffer names starting with "+"

closes: #17229

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): clarify the use of 'tagfunc', update a comment in tags.c
Christian Brabandt [Wed, 30 Apr 2025 17:31:58 +0000 (19:31 +0200)] 
runtime(doc): clarify the use of 'tagfunc', update a comment in tags.c

related: #17228

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): tweak documentation style in options.txt
Hirohito Higashi [Wed, 30 Apr 2025 17:12:37 +0000 (19:12 +0200)] 
runtime(doc): tweak documentation style in options.txt

closes: #17229

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1355: The pum_redraw() function is too complex v9.1.1355
glepnir [Tue, 29 Apr 2025 16:27:05 +0000 (18:27 +0200)] 
patch 9.1.1355: The pum_redraw() function is too complex

Problem:  The pum_redraw function is too complex and difficult to
          maintain with nested loops and mixed responsibilities handling
          both RTL and LTR text rendering.
Solution: Extracted core rendering logic into dedicated helper functions
          (pum_display_rtl_text, pum_display_ltr_text, pum_draw_scrollbar,
          pum_process_item) while preserving the original behavior. This
          improves code readability and maintainability (glepnir).

closes: #17204

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1354: tests: Test_terminalwinscroll_topline() fails on Windows v9.1.1354
Christian Brabandt [Tue, 29 Apr 2025 16:21:31 +0000 (18:21 +0200)] 
patch 9.1.1354: tests: Test_terminalwinscroll_topline() fails on Windows

Problem:  tests: Test_terminalwinscroll_topline() fails on Windows
          (after v9.1.1348)
Solution: instead of disabling it in Github Actions runners, disable it
          for all Windows runs

related: #17196

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1353: missing change from v9.1.1350 v9.1.1353
Girish Palya [Mon, 28 Apr 2025 16:29:52 +0000 (18:29 +0200)] 
patch 9.1.1353: missing change from v9.1.1350

Problem:  missing change from v9.1.1350
Solution: update the test Test_CmdlineTrigger() (Girish Palya)

related: #17217

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agogit: ignore reformatting commit for git-blame (after v9.1.1352)
Christian Brabandt [Mon, 28 Apr 2025 16:09:49 +0000 (18:09 +0200)] 
git: ignore reformatting commit for git-blame (after v9.1.1352)

related: #17219

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1352: style: inconsistent indent in insexpand.c v9.1.1352
Hirohito Higashi [Mon, 28 Apr 2025 16:07:02 +0000 (18:07 +0200)] 
patch 9.1.1352: style: inconsistent indent in insexpand.c

Problem:  style: inconsistent indent in insexpand.c
Solution: fix indentation (Hirohito Higashi)

closes: #17219

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1351: Return value of getcmdline() inconsistent in CmdlineLeavePre v9.1.1351
zeertzjq [Mon, 28 Apr 2025 16:04:00 +0000 (18:04 +0200)] 
patch 9.1.1351: Return value of getcmdline() inconsistent in CmdlineLeavePre

Problem:  Return value of getcmdline() inconsistent in CmdlineLeavePre
          when leaving cmdline in different ways (after v9.1.1329).
Solution: Trigger CmdlineLeavePre before calling abandon_cmdline() so
          that getcmdline() can return the command line (zeertzjq).

closes: #17218

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1350: tests: typo in Test_CmdlineLeavePre_cabbr() v9.1.1350
Girish Palya [Mon, 28 Apr 2025 16:00:40 +0000 (18:00 +0200)] 
patch 9.1.1350: tests: typo in Test_CmdlineLeavePre_cabbr()

Problem:  tests: typo in Test_CmdlineLeavePre_cabbr()
          (after v9.1.1349)
Solution: fix typo, disable failing test on Windows for now
          (Girish Palya)

closes: #17217

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(java): Consent to HTML tags folding in Javadoc comments
Aliaksei Budavei [Mon, 28 Apr 2025 15:58:22 +0000 (17:58 +0200)] 
runtime(java): Consent to HTML tags folding in Javadoc comments

HTML tags in Javadoc comments can additionally be folded
after applying
------------------------------------------------------------
let g:html_syntax_folding = 1
set foldmethod=syntax
------------------------------------------------------------

and giving explicit consent with
------------------------------------------------------------
let g:java_consent_to_html_syntax_folding = 1
------------------------------------------------------------

Do not default to this kind of folding unless ALL start tags
and optional end tags are balanced in Javadoc comments;
otherwise, put up with creating runaway folds that break
syntax highlighting.

resolves: zzzyxwvut/java-vim#8.
closes: #17216

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(syntax-tests): Regenerate changed syntax test pages for vim
Aliaksei Budavei [Mon, 28 Apr 2025 15:55:05 +0000 (17:55 +0200)] 
runtime(syntax-tests): Regenerate changed syntax test pages for vim

See #17213 (v9.1.1348~1).

closes: #17215

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1349: CmdlineLeavePre may trigger twice v9.1.1349
Girish Palya [Sun, 27 Apr 2025 17:28:06 +0000 (19:28 +0200)] 
patch 9.1.1349: CmdlineLeavePre may trigger twice

Problem:  CmdlineLeavePre may trigger twice
          (after v9.1.1329)
Solution: check that the key was typed, trigger it when it wasn't before
          (Girish Palya)

There are two problems:
- CmdlineLeavePre may be triggered twice when a cabbr is present.
- CmdlineLeavePre fails to trigger when exiting the command-line via
  <Backspace>.

Check if the Carriage Return (Enter) key was actually typed.
Trigger the event when the command-line is exited using Backspace and
other keys.

closes: #17214

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(vim): Update base-syntax, fix inline Vim9 dict comments at SOL
Doug Kearns [Sun, 27 Apr 2025 17:17:06 +0000 (19:17 +0200)] 
runtime(vim): Update base-syntax, fix inline Vim9 dict comments at SOL

Match Vim9 comments at start-of-line (no leading whitespace) in
dictionaries, lists and parenthesised expressions and argument lists.

Addresses https://github.com/vim/vim/pull/14975#issuecomment-2832643115

Report and fix by Aliaksei Budavei.

closes: #17211

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1348: still E315 with the terminal feature v9.1.1348
Hirohito Higashi [Sun, 27 Apr 2025 13:36:43 +0000 (15:36 +0200)] 
patch 9.1.1348: still E315 with the terminal feature

Problem:  still E315 with the terminal feature
          (user202729)
Solution: call update_topline() in limit_scrollback()
          (Hirohito Higashi)

fixes: #17195
closes: #17196

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): Fix notation of "Vim script" and "Vim9 script"
Hirohito Higashi [Sun, 27 Apr 2025 13:28:30 +0000 (15:28 +0200)] 
runtime(doc): Fix notation of "Vim script" and "Vim9 script"

closes: #17213

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1347: small problems with gui_w32.c v9.1.1347
John Marriott [Sun, 27 Apr 2025 13:05:06 +0000 (15:05 +0200)] 
patch 9.1.1347: small problems with gui_w32.c

Problem:  small problems with gui_w32.c
Solution: fix compile warnings and refactor code (John Marriott)

Compiler (clang v20.1.3) warnings on `_OnMenuSelect()` and
`_OnGetDpiScaledSize()`:
```
clang -c -I. -Iproto -DWIN32 -DWINVER=0x0601 -D_WIN32_WINNT=0x0601
-DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_STDINT_H -D__USE_MINGW_ANSI_STDIO
-pipe -Wall -Wno-deprecated-declarations -D_REENTRANT -U_FORTIFY_SOURCE
-D_FORTIFY_SOURCE=1 -Wall -Wextra -Wshadow -Wstrict-prototypes
-Wmissing-prototypes -Wno-deprecated-declarations
-Wno-error=missing-field-initializers -Werror=uninitialized
-Wunused-but-set-variable -DEXITFREE -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD
gui_w32.c -o gobjx86-64/gui_w32.o
gui_w32.c:5038:55: warning: comparison of integers of different signs:
'UINT' (aka 'unsigned int') and 'int' [-Wsign-compare]
 5038 |                 && GetMenuState(s_menuBar, pMenu->id, MF_BYCOMMAND) != -1)
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~
gui_w32.c:5054:26: warning: unused parameter 'hwnd' [-Wunused-parameter]
 5054 | _OnGetDpiScaledSize(HWND hwnd, UINT dpi, SIZE *size)
      |                          ^
2 warnings generated.
```

This commit contains the following changes:
- Fixes Warning 1:
  The prototype of `GetMenuState()` says that it returns a UINT, but
  returns -1 on failure. Huh?!?

  Also, Microsoft says that this function has been superseded (see
  https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmenustate)
  and replaced by `GetMenuItemInfo()`. Both of these functions have a
  minimum support of Windows 2000.
  Therefore in `_OnMenuSelect()`, replace the call to `GetMenuState()`
  with `GetMenuItemInfo()`.

- Fixes Warning 2:
  Add `UNUSED` to the definition of `_OnGetDpiScaledSize()`.

- Simplify `logfont2name()`.
- Add small optimisations in `_OnNotify()` and `gui_mch_do_spawn()`.
- Add out-of-memory check in `gui_mch_do_spawn()`.
- Code cosmetics (see definitions of `process_message_usual_key_classic()`
  and `process_message()`).

closes: #17208

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): clarify complete_match() and 'isexpand' option
glepnir [Sun, 27 Apr 2025 12:59:17 +0000 (14:59 +0200)] 
runtime(doc): clarify complete_match() and 'isexpand' option

clarify complete_match() documentation to better explain its backward
search behavior, argument handling, and return value format and add an
example of isexpand

closes: #17212

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(vim): Update base-syntax, match continued strings and tail comments
Doug Kearns [Sat, 26 Apr 2025 18:14:15 +0000 (20:14 +0200)] 
runtime(vim): Update base-syntax, match continued strings and tail comments

Continued strings are currently only matched after operators, in
parenthesised expressions and in function call argument lists.

closes: #14975

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): tagfunc should refer to 'complete' option
Christian Brabandt [Sat, 26 Apr 2025 18:06:41 +0000 (20:06 +0200)] 
runtime(doc): tagfunc should refer to 'complete' option

fixes: #17205

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1346: missing out-of-memory check in textformat.c v9.1.1346
John Marriott [Fri, 25 Apr 2025 17:14:38 +0000 (19:14 +0200)] 
patch 9.1.1346: missing out-of-memory check in textformat.c

Problem:  missing out-of-memory check in textformat.c
Solution: add out-of-memory check, add small optimizations to
          internal_format() and same_leader() (John Marriott)

closes: #17200

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1345: tests: Test_xxd_color2() test failure dump diff is misleading v9.1.1345
Drew Vogel [Fri, 25 Apr 2025 17:06:53 +0000 (19:06 +0200)] 
patch 9.1.1345: tests: Test_xxd_color2() test failure dump diff is misleading

Problem:  tests: Test_xxd_color2() test failure dump diff is misleading
Solution: Ensure the reference dump and the test dump are both processed the
          same (Drew Vogel).

Background:

Commit b6dc76b6fd23e571d309064b795847ee9ffc7689 sought to make the xxd
screendump tests compatible with non-standard `XXD` overrides. It provides a
vim script that matches a very general `xxd` command pattern but then also
removed the matching line from the reference dump. This second step was
unnecessary because `VerifyScreenDump()` runs the associated vim script against
both the reference dump and the test dump.

Problem Details:

As part of some unrelated work, the GUI tests were failing with a window size 1
column too narrow. The screendumps in `Test_xxd_color2` were failing as a
result. When I loaded the diff using `term_dumpdiff()` the associated vim
scripts are not run. As a result, the test dump contained the `xxd` invocation
on line 1 while reference dump did not. This throws the diff off, obscuring the
true issue of the GUI window being too narrow.

Verification:

In addition to the test suite, locally I've tried to recreate the issue being
fixed in b6dc76b6fd23e571d309064b795847ee9ffc7689. Setting a very non-standard
`XXD` path, this test still passes:

```
XXD=/home/dvogel/opt/vim/bin/xxd TEST_FILTER=Test_xxd_color2 TERM=xterm-color make test_xxd
rm -f test_xxd.res test.log messages starttime
if test -n "${ASAN_OPTIONS}"; then \
   XXD=../xxd/xxd; export XXD; ASAN_OPTIONS="${ASAN_OPTIONS}_test_xxd" \
UBSAN_OPTIONS="${UBSAN_OPTIONS}_test_xxd" VIMRUNTIME=../../runtime  ../vim -f \
-u unix.vim --gui-dialog-file guidialog -U NONE --noplugin --not-a-term -S \
runtest.vim test_xxd.vim ; \
fi

From test_xxd.vim:
Executed Test_xxd_color2()               in   0.066049 seconds
Filtered 17 tests with $TEST_FILTER and $TEST_SKIP_PAT
Executed 1 test                          in   0.096862 seconds
```

closes: #17202

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(debversions): Add questing (25.10) as Ubuntu release name
James McCoy [Fri, 25 Apr 2025 17:04:20 +0000 (19:04 +0200)] 
runtime(debversions): Add questing (25.10) as Ubuntu release name

closes: #17201

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1344: double free in f_complete_match() (after v9.1.1341) v9.1.1344
Christian Brabandt [Fri, 25 Apr 2025 17:01:06 +0000 (19:01 +0200)] 
patch 9.1.1344: double free in f_complete_match() (after v9.1.1341)

Problem:  double free in f_complete_match() (after v9.1.1341)
Solution: remove additional free of trig pointer, correctly free
          regmatch.regprog and before_cursor in the error case

closes: #17203

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1343: filetype: IPython files are not recognized v9.1.1343
Christian Brabandt [Thu, 24 Apr 2025 20:34:46 +0000 (22:34 +0200)] 
patch 9.1.1343: filetype: IPython files are not recognized

Problem:  filetype: IPython files are not recognized
          (user202729)
Solution: detect *.ipy files as python filetype

fixes: #17163

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(groff,nroff): improve ftplugin
Eisuke Kawashima [Thu, 24 Apr 2025 20:26:02 +0000 (22:26 +0200)] 
runtime(groff,nroff): improve ftplugin

- set options in ftplugin but not in syntax
- implement ftplugin/groff.vim (wrapper of ftplugin/nroff.vim)

closes: #17174

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1342: Shebang filetype detection can be improved v9.1.1342
Eisuke Kawashima [Thu, 24 Apr 2025 20:03:21 +0000 (22:03 +0200)] 
patch 9.1.1342: Shebang filetype detection can be improved

Problem:  Shebang filetype detection can be improved
Solution: Improve detection logic (Eisuke Kawashima)

Vim does not correctly detect filetype from
  - `#!/usr/bin/env --split-string=awk -f`
  - `#!/usr/bin/env -S -i awk -f`
  - `#!/usr/bin/env -S VAR= awk -f`
So update the current detection logic to detect those cases.

closes: #17199

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>