Commit Graph

22915 Commits

Author SHA1 Message Date
Paul Ollis 55c12373f0 patch 9.1.2144: garbage collection may invalidate the recorded buffer changes
Problem:  When garbage collection runs, the list of recorded buffer
	  changes may be incorrectly freed (Sainnhe Park).
Solution: In garbage_collect(), iterate through all buffers and call
          set_ref_in_list() for b_recorded_changes to ensure the list
          and its contents are marked as reachable (Paul Ollis).

fixes:  #19300
closes: #19375

Signed-off-by: Paul Ollis <paul@cleversheep.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2144
2026-02-09 19:32:51 +00:00
Christian Brabandt 52507a733f runtime(doc): Mark 'scrollfocus' as non-functional
related: #19368

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-09 19:21:47 +00:00
Yasuhiro Matsumoto 6ffe020b91 patch 9.1.2143: wrong rendering of popups when overlapping wide char
Problem:  When a popup window partially overlaps a wide character
          it results in truncated or garbage display.
Solution: When a wide character is partially blocked by a popup, clear both
          cells in the screen buffer to prevent garbage (Yasuhiro Matsumoto).

closes: #19271

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2143
2026-02-09 19:08:24 +00:00
Mao-Yining 18dd63808c patch 9.1.2142: MS-Windows: mouse scroll events not handled for popups
Problem:  MS-Windows: mouse scroll events not handled for popups
Solution: Do not return early (Mao-Yining)

Ensure mouse wheel events on popup windows are properly processed by
sending the corresponding key messages. Previously, early returns
prevented normal event flow, causing popup windows to ignore scroll
input.

fixes:  #19353
closes: #19369

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2142
2026-02-09 18:49:48 +00:00
Daniel Nylander 2e9db8fa9c runtime(doc): add Swedish entries to Make_all.mak, add conversion rule to Makefile
closes: #19373

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-09 18:35:43 +00:00
Chris Aumann 4442ac53f7 runtime(nginx): Update nginx syntax script
closes: #19374

Signed-off-by: Chris Aumann <me@chr4.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-08 21:24:53 +00:00
Josef Schönberger e92998ea4d runtime(nginx): highlight Lua in set_by_lua_block in syntax script
The set_by_lua_block directive of the Lua module takes an additional
variable as an argument which currently breaks the detection of inline
Lua blocks. For example:

    set_by_lua_block $myvar {
        return tonumber(ngx.var.myothervar)-1
    }

closes: #19362

Signed-off-by: Josef Schönberger <josef.schoenberger@tum.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-08 21:19:20 +00:00
Yasuhiro Matsumoto 60e93b5de7 patch 9.1.2141: Truncation when serializing libsodium encryption parameters
Problem:  Truncation when serializing libsodium encryption parameters.
Solution: Correctly cast to long long type (Yasuhiro Matsumoto).

fixes:  #19248
closes: #19357

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2141
2026-02-08 21:07:42 +00:00
Doug Kearns b422a33ac2 runtime(gdb): Update syntax and ftplugin
- Change syntax file maintainer.
- Add Guile and Python command highlighting.
- Update command list to version 12.
- Add foldable regions for the commands 'define', 'if' and 'while'
  multiline commands.
- Support documented partial command names.
- Add matchit, browsefilter, and comment formatting support.
- Support embedded C in compiler {code|print} commands.
- Add largely complete settings highlighting and folding.
- Add syntax tests (incomplete).

Thanks to Claudio Fleiner for many years of maintenance.

closes: #10649

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-08 20:51:47 +00:00
Anton Malinskiy 542d6ec4fb translation(ru): Update Russian translation and fix typos in tutor
closes: #19359

Signed-off-by: Anton Malinskiy <anton@malinskiy.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 22:00:32 +00:00
Aliaksei Budavei f0b8b2c32a Revert "CI: Manage multibyte characters in syntax tests"
This reverts commit 0fde6aebdd.

With "v9.1.2134" applied, arbitrary multibyte characters are
not replaced with spurious U+FFFD characters (typically when
the host system is under load); U+FFFD characters that are
intentionally written in an input file continue to remain
present for later output and comparison.  The workaround of
"v9.1.1592~3" is no longer necessary.

Also prefer "page_nr" to "nr" in syntax/testdir/runtest.vim

closes: #19348

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 15:48:33 +00:00
Christian Brabandt 35c428b02c patch 9.1.2140: tests: Test_wayland_protocol_error_overflow() fails
Problem:  tests: Test_wayland_protocol_error_overflow() fails
          (after v9.1.2139)
Solution: try/catch the expected error

Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2140
2026-02-07 15:44:10 +00:00
Mao-Yining 27630b28ad runtime(python3complete): remove trailing white space
related: #19354

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 15:30:19 +00:00
Mao-Yining d15c718038 runtime(compiler): fix space escape in pyright
closes: #19354

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 15:28:02 +00:00
Christian Brabandt 2498a460e2 patch 9.1.2139: Buffer overflow in :wlrestore command
Problem:  Buffer overflow in :wlrestore command, caused by assuming
          wrong buffer length in vwl_log_handler() (Seungyeon Park)
Solution: Use correct buffer size (512 bytes) in vim_vsnprintf()
          to properly truncate long messages.

Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2139
2026-02-07 15:11:29 +00:00
Ingo Karkat abb4d74033 patch 9.1.2138: win_execute() and 'autochdir' can corrupt buffer name
Problem:  With 'autochdir' win_execute() can corrupt the buffer name,
          causing :write to use wrong path.
Solution: Save and restore b_fname when 'autochdir' is active
          (Ingo Karkat).

This is caused by a bad interaction of the 'autochdir' behavior,
overriding of the current directory via :lchdir, and the temporary
window switching done by win_execute(), manifesting when e.g. a custom
completion inspects other buffers:
1. In the initial state after the :lcd .. we have curbuf->b_fname =
   "Xsubdir/file".
2. do_autochdir() is invoked, temporarily undoing the :lcd .., changing
   back into the Xsubdir/ subdirectory.
3. win_execute() switches windows, triggering win_enter_ext() →
   win_fix_current_dir() → shorten_fnames(TRUE)
4. shorten_fnames() processes *all* buffers
5. shorten_buf_fname() makes the filename relative to the current
   (wrong) directory; b_fname becomes "file" instead of "Xsubdir/file"
6. Directory restoration correctly restores working directory via
   mch_chdir() (skipping a second do_autochdir() invocation because
   apply_acd is FALSE), but b_fname remains corrupted, with the
   "Xsubdir/" part missing.
7. expand("%:p") (and commands like :write) continue to use the
   corrupted filename, resolving to a wrong path that's missing the
   "Xsubdir/" part.

To fix the problem the short filename is saved if its in effect (i.e.
pointed to by curbuf->b_fname) and 'autochdir' happened. It's then
restored in case of a local cwd override. The conditions limit this
workaround to when 'autochdir' is active *and* overridden by a :lchdir.

closes: #19343

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Ingo Karkat <swdev@ingo-karkat.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2138
2026-02-07 10:41:32 +00:00
Kevin Goodsell a24cb278bd patch 9.1.2137: test: Update tests for OpenBSD
Problem:  Some tests are not valid on OpenBSD.
Solution: Add CheckNotOpenBSD, use it to skip certain tests
          (Kevin Goodsell).

Test_readdirex_sort performs locale-dependent sorting. OpenBSD has
minimal locale support.

Test_stdin_no_newline hangs on OpenBSD and FreeBSD. I don't know exactly
why, but it may be due to bash not exiting at the end of the test. This
is skipped in the FreeBSD CI runs because bash is not installed.

Test_detect_fifo uses /dev/fd/ files (via process substitution) as
FIFOs. On OpenBSD the files in /dev/fd are not FIFOs.

closes: #19351

Signed-off-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2137
2026-02-07 10:30:33 +00:00
zeertzjq 6da9f757c4 patch 9.1.2136: :tab sbuffer may close old tabpage
Problem:  :tab sbuffer may close old tabpage if BufLeave autocommand
          splits window (after 9.1.0143).
Solution: Only close other windows if the buffer will be unloaded
          (zeertzjq).

related: neovim/neovim#37749
closes: #19352

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2136
2026-02-07 10:23:41 +00:00
Christian Brabandt 7ccb81bdb6 runtime(tar): Make the path traversal detection more robust
closes: #19341

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 10:12:34 +00:00
Kalin KOZHUHAROV f73bd2546e runtime(doc): clarify term_cols allowed range in terminal.txt
Patch 9.0.1527 (related issue: vim/vim#12362) introduced range checking
for `term_cols` parameter of the various terminal related functions, but
did not update the documentation. This is the fix, hopefully I found
everything that mentions is. Also improve the style for `term_rows` to
match.

Code reference ( https://github.com/vim/vim/blob/master/src/job.c#L456 ):
	if (opt->jo_term_cols < 0 || opt->jo_term_cols > 1000)

closes: #19346

Signed-off-by: Kalin Kozhuharov <kalin@thinrope.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 14:55:12 +00:00
Daniel Nylander db4ff9a407 runtime(doc): Add Swedish to help-translated list
Swedish Vim documentation is available at:
https://github.com/yeager/vimdoc-sv
https://www.vim.org/translations.php

Translated by Daniel Nylander.

closes: #19344

Signed-off-by: Daniel Nylander <daniel@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 14:44:18 +00:00
Christian Brabandt b677aded59 runtime(doc): Remove Swedish translation help.svx
The translation file should not be included with Vims runtime files.
Translated help files should be made available via a separate project,
like what has been mentioned here:
https://www.vim.org/translations.php

related: #19321

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 10:21:10 +00:00
Mao-Yining 422ef984b5 runtime(doc): fix pattern problem in cmdline.txt
closes: #19322

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 10:19:55 +00:00
Kevin Goodsell 18d844e365 patch 9.1.2135: tests: tar plugin does not consider 'nowrapscan'
Problem:  search() is used to check for the message from tar that
          indicates leading slashes found in the tar archive, or to
          check for the leading slashes themselves. However, if
          'nowrapscan' is in effect these searches are limited to the
          last line and don't find any results. This causes the warning
          message from tar to be seen in the buffer, the "Path Traversal
          Attack Detected" message to be omitted, and editing actions
          can fail. This can be seen, for example, when editing
          src/testdir/samples/evil.tar.
Solution: Use the 'w' flag for search() (Kevin Goodsell)

closes: #19333

Signed-off-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2135
2026-02-06 10:08:22 +00:00
CatsDeservePets 56d470a008 runtime(lf): update syntax to support lf version r41
Also, mark @CatsDeservePets as maintainer.

closes: #18640

Signed-off-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 09:55:53 +00:00
zeertzjq b24a1d9291 patch 9.1.2134: Terminal doesn't handle split UTF-8 sequence after ASCII
Problem:  Terminal doesn't handle split UTF-8 sequence after ASCII.
Solution: Only use one UTF-8 encoding state per vterm state (zeertzjq).

fixes:  #16559
closes: #18640

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2134
2026-02-06 09:48:20 +00:00
Amelia Clarke de5d100c2f runtime(hare): update to match upstream
closes: #18640

Signed-off-by: Amelia Clarke <selene@perilune.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-06 09:44:56 +00:00
zeertzjq 21d591fb12 patch 9.1.2133: Another case of buffer overflow with 'helpfile'
Problem:  Another case of buffer overflow with 'helpfile'.
Solution: Leave room for "tags" in the buffer (zeertzjq).

closes: #19340

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2133
2026-02-06 09:37:58 +00:00
Christian Brabandt 0714b15940 patch 9.1.2132: [security]: buffer-overflow in 'helpfile' option handling
Problem:  [security]: buffer-overflow in 'helpfile' option handling by
          using strcpy without bound checks (Rahul Hoysala)
Solution: Limit strncpy to the length of the buffer (MAXPATHL)

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-5w93-4g67-mm43

Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2132
2026-02-05 19:01:12 +00:00
Emir SARI 8bd1b7c51e translation(tr): Update Turkish translations
closes: #19334

Signed-off-by: Emir SARI <emir_sari@icloud.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 17:24:53 +00:00
zeertzjq 91ec2c3ba8 CI: update FreeBSD runner to 15.0
closes: #19336

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 17:19:28 +00:00
zeertzjq 991434d8df patch 9.1.2131: tests: Test_diff_screen() fails on BSD
Problem:  tests: Test_diff_screen() fails on BSD
Solution: Use gdiff on BSD systems if available (zeertzjq).

related: #19336

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2131
2026-02-04 17:18:29 +00:00
Christian Brabandt 1cac0a5755 translation(sv): Remove duplicates from [g]vim.desktop.in
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 16:44:49 +00:00
Lifepillar bf18b5eb7b runtime(context): fix issue with SyncTeX and update command
Remove `--nonstopmode` because (a) ConTeXt always stops anyway, and (b)
`--nonstopmode` disables SyncTeX unconditionally. Add `--paranoid`,
which prevents the command to descend to `..` and `../..`.

Pass the typesetting command only the name of the input file rather than
its full path, as that is more compatible with ConTeXt's syncing
mechanism.

closes: #19323

Signed-off-by: Lifepillar <lifepillar@lifepillar.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 16:31:05 +00:00
Mao-Yining 03b42b2926 runtime(doc): add note for -complete=shellcmdline
closes: #19330

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 16:21:40 +00:00
zeertzjq a8ce914db1 patch 9.1.2130: Page scrolling in Insert mode beeps
Problem:  Page scrolling in Insert mode beeps (after 9.1.0211).
Solution: Fix incorrect return value of pagescroll(). Also invert the
          return value of scroll_with_sms() to be less confusing and
          match comments (zeertzjq).

fixes:  #19326
closes: #19327

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2130
2026-02-04 15:51:01 +00:00
Arkissa 61044eb536 runtime(haskellcomplete): fix Undefined variable b:completingLangExtension.
closes: #19259

Signed-off-by: Arkissa <mrarkssac@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 15:45:05 +00:00
Yasuhiro Matsumoto b46594eefb patch 9.1.2129: MS-Windows: font size calculation slightly wrong, causing line gaps
Problem:  MS-Windows: font size calculation slightly wrong, causing
          vertical line gaps (Maxim Kim, after v9.1.2127)
Solution: Update font size calculation when using DirectX
          (Yasuhiro Matsumoto).

Use pre-calculated font ascent from font metrics instead of fixed
formula (h * 0.83) to calculate text baseline. This prevents vertical
text shift when font fallback occurs with CJK characters.

closes: #19318

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2129
2026-02-04 15:32:36 +00:00
Christian Brabandt 1ff963e15c runtime(doc): Update version9.txt with numbered patches
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-04 15:07:40 +00:00
Mateo Gjika 4b83d5ca76 runtimei(vim9): Always launch programs in background (linux)
closes: #19293

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 15:24:26 +00:00
தமிழ் நேரம் ac8e08c6aa translation(ta): Include Tamil Translation
closes: #19312

Signed-off-by: தமிழ் நேரம் <67970539+TamilNeram@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 15:21:41 +00:00
Sean Dewar 392b428d12 patch 9.1.2128: Heap use after free in buf_check_timestamp()
Problem:  heap UAF if autocommands from reloading a file changed outside
          of Vim wipe its buffer.
Solution: Validate the bufref after buf_reload (Sean Dewar)

closes: #19317

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2128
2026-02-03 15:00:12 +00:00
Mao-Yining a2e76bb8fe runtime(c): only set keywordprg when there has 'man'
closes: #19319

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 14:51:24 +00:00
Mark Woods ac5af8ecd3 runtime(vim): Fix for :VimKeywordPrg when syntax does not match
When using vim9-syntax plugin, :VimKeywordPrg does not lookup functions
correctly, as it relies solely on syntax names to find the help topic.

The syntax keyword used for builtin function is vi9FuncNameBuiltin in
vim9-syntax plugin, not vimFuncName expected by :VimKeywordPrg, so the
fallback rules apply, and there is no fallback rule for function calls.

Fix by just checking if the first char after topic is '(', and if so
assume help topic is a function.

closes: #19320

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 14:48:58 +00:00
Daniel Nylander 0eb8e4de49 translation(sv): Update tutor1.sv to version 1.7
Updated Swedish translation of the Vim tutor from version 1.5 to 1.7.

Added missing lessons:
- Lesson 1.1.5: TEXT EDITING - APPENDING
- Lesson 1.1.6: EDITING A FILE
- Lesson 1.1 SUMMARY
- Lesson 1.2.3: ON OPERATORS AND MOTIONS
- Lesson 1.2.4: USING A COUNT FOR A MOTION
- Lesson 1.2.5: USING A COUNT TO DELETE MORE
- Lesson 1.2 SUMMARY
- Lesson 1.3.2: THE REPLACE COMMAND
- Lesson 1.3 SUMMARY
- Lesson 1.5.3: SELECTING TEXT TO WRITE (visual mode)
- Lesson 1.6: OPEN, APPEND, REPLACE, COPY/PASTE, OPTIONS
- Lesson 1.7: ONLINE HELP
- Lesson 1.8: CREATE A STARTUP SCRIPT
- Lesson 1.9: CONCLUSION

Original Swedish translation by Johan Svedberg.
Updated by Daniel Nylander.

closes: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 14:44:04 +00:00
Daniel Nylander a4ee225290 translation(sv): Add Swedish translation of tutor2
Translated by Daniel Nylander.

Covers:
- Text objects (iw, aw, i[, a[, etc.)
- Named registers (a-z)
- Expression register (=)
- Numbered registers (0-9)
- Special registers (+, *, _, -)
- Marks and mark motions

related: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 14:41:08 +00:00
Daniel Nylander 5c93eae7c6 translation(sv): Fix typo and help.svx formatting
- Fix typo: paranteser -> parenteser (line 240)
- Fix h j k l navigation block being too wide
- Shorten Swedish text to fit proper column width

Closes feedback from PR #18849

related: #19321

Signed-off-by: Daniel Nylander <po@danielnylander.se>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-03 14:40:47 +00:00
Christian Brabandt 093d0cb1cf runtime(doc): Clarify the behaviour of command completion functions
closes: #19294

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-02 16:55:41 +00:00
Yasuhiro Matsumoto fccd6f9b14 patch 9.1.2127: MS-Windows: DirectX renders font too small
Problem:  MS-Windows: DirectX renders font too small in comparison to
          the GDI rendering (Linwei, after v9.1.2125)
Solution: Implement proper font clipping (Yasuhiro Matsumoto)

related: #19254
closes:  #19304

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.1.2127
2026-02-02 10:23:27 +00:00
Maxim Kim c50be218cd runtime(odin): update indent and syntax scripts
- fix indent of a closing } after another } on previous line
- fix indent of consequent #+feature lines
- highlight #+features

closes: #19310

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-02 10:16:36 +00:00