Commit Graph

20326 Commits

Author SHA1 Message Date
Foxe Chen 49a5a80410 patch 9.2.0138: winhighlight option handling can be improved
Problem:  winhighlight option handling can be improved
          (after: v9.2.0093)
Solution: Check entire override stack in update_highlight_overrides();
          update w_hl of every window in highlight_changed() (Foxe Chen).

closes: #19633

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 19:42:46 +00:00
Christian Brabandt 36d6e87542 patch 9.2.0137: [security]: crash with composing char in collection range
Problem:  Using a composing character as the end of a range inside a
          collection may corrupt the NFA postfix stack
          (Nathan Mills, after v9.1.0011)
Solution: When a character is used as the endpoint of a range, do not emit
          its composing characters separately. Range handling only uses
          the base codepoint.

supported by AI

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-9phh-423r-778r

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 18:52:56 +00:00
Huihui Huang 93a7855f01 patch 9.2.0136: memory leak in add_interface_from_super_class()
Problem:  memory leak in add_interface_from_super_class() in
          src/vim9class.c
Solution: Free variable intf_name in the error case, decrement the
          impl_gap grow array (Huihui Huang).

closes: #19629

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-10 19:56:08 +00:00
Huihui Huang e945350f11 patch 9.2.0135: memory leak in eval_tuple()
Problem:  memory leak in eval_tuple() in src/tuple.c
Solution: Free variable tuple on early return (Huihui Huang).

closes: #19628

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-10 19:49:55 +00:00
Huihui Huang ede5252d89 patch 9.2.0134: memory leak in socket_server_send_reply()
Problem:  memory leak in socket_server_send_reply() in src/os_unix.c
Solution: Free final in the error case when returning early
          (Huihui Huang).

closes: #19627

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-10 19:40:33 +00:00
Huihui Huang 248de84d86 patch 9.2.0133: memory leak in netbeans_file_activated()
Problem:  memory leak in netbeans_file_activated()
Solution: Free q on early return (Huihui Huang).

closes: #19626

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-10 19:33:22 +00:00
James McCoy ff16ebdb08 patch 9.2.0132: tests: Test_recover_corrupted_swap_file1 fails on be systems
Problem:  tests: Test_recover_corrupted_swap_file1 fails on big-ending
          systems (after v9.2.0077)
Solution: Skip the test on big-endian systems (James McCoy)

The POC files were generated on 64-bit little-endian systems and
therefore are not portable to any other system type.

Extract the 64-bit / endianness detection from
Test_recover_corrupted_swap_file() into a SetUp() function and use that
data to determine if the test should be run.

closes: #19620

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-10 18:39:40 +00:00
Christian Brabandt 9360647715 patch 9.2.0131: potential buffer overflow in regdump()
Problem:  Potential buffer overflow in regdump()
Solution: Add the size to the compiled regular expression and ensure we
          don't read over the limit.

Note: this is not a security issue, because regdump() is typically not
compiled in any version of Vim, so should not affect anybody.

supported by AI claude.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 20:18:52 +00:00
Doug Kearns 49b8d9903b patch 9.2.0130: missing range flags for the :tab command
Problem:  :tab accepts a tab address range but doesn't specify this in
          the command specification.
Solution: Add EX_RANGE and EX_ZEROR to the command specification and use
          ADDR_TABS (Doug Kearns).

As command modifers are handled separately before these flags are tested
in the ex-command parser they have no effect.  However, it's better to
use an accurate description and the command specification table has uses
in other areas like runtime file generation for the Vim filetype.

closes: #19100

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 19:52:30 +00:00
Yasuhiro Matsumoto 433bcf3bec patch 9.2.0129: popup: wrong handling of wide-chars and opacity:0
Problem:  popup: wrong handling of wide-chars and opacity:0
Solution: Correctly handle opacity 0, correctly handle wide chars
          (Yasuhiro Matsumoto)

closes: #19606

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 18:47:10 +00:00
Christoffer Aasted 1f1b86ac60 patch 9.2.0128: Wayland: using _Boolean instead of bool type
Problem:  Wayland: using _Boolean instead of bool type
Solution: Change type of variable (Christoffer Aasted).

related: #19473
closes:  #19610

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 18:36:34 +00:00
Christian Brabandt ffeb2339cb patch 9.2.0127: line('w0') and line('w$') return wrong values in a terminal
Problem:  In a terminal window, line('w0') and line('w$') return wrong
          values instead of the first and last visible line number,
          because a terminal buffer does not go through the normal
          redraw path that updates w_topline and w_botline (ubaldot).
Solution: Before computing w0 and w$, sync the terminal contents to the
          buffer by calling may_move_terminal_to_buffer() so that
          w_topline and w_botline are correctly updated.

fixes:  #19585
closes: #19615

supported by AI claude.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 18:26:41 +00:00
John Marriott 727f6e2686 patch 9.2.0126: String handling can be improved
Problem:  String handling can be improved
Solution: Pass string length where it is known to avoid strlen() calls,
          do a few minor refactors (John Marriott).

This commit changes some calls to function `set_vim_var_string()` to pass
the string length where it is known or can be easily calculated.

In addition:
In `evalvars.c`:
  * In function `set_reg_var()` turn variable `regname` into a C string
    because that is how it used.
  * Small cosmetics.
In `option.c`:
  * Slightly refactor function `apply_optionset_autocmd()` to move some
    variables closer to where they are used.
In `getchar.c`:
  * Slightly refactor function `do_key_input_pre()`:
    -> change call to `dict_add_string()` to `dict_add_string_len()` and
       pass it the length of `buf`.
    -> only call `get_vim_var_string()` once.
In `message.c`:
  * Use a `string_T` to store local variable `p`.
In `normal.c`:
  * Move some variables closer to where they are used.

closes: #19618

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-09 18:17:22 +00:00
Christian Brabandt 271f4fe47b patch 9.2.0125: tests: test_textformat.vim leaves swapfiles behind
Problem:  tests: test_textformat.vim leaves swapfiles behind
Solution: Close open buffer using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 20:32:13 +00:00
Daniel Müller 24fd698045 patch 9.2.0124: auto-format may swallow white space
Problem:  With auto paragraph formatting enabled, when a user makes an
          attempt to add a new word before the end of a line and with
          the following space bringing the line width over 'textwidth',
          the space ends up just getting swallowed by the editor.
Solution: Detect such a constellation and do not auto-format in that
          case (Daniel Müller).

closes: #19593

Signed-off-by: Daniel Müller <deso@posteo.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 20:24:10 +00:00
Christian Brabandt 6c0321fb9d patch 9.2.0123: GTK: using deprecated gdk_pixbuf_new_from_xpm_data()
Problem:  GTK: gdk_pixbuf_new_from_xpm_data() is deprecated since
          2.44.5, causing build warnings
Solution: Replace XPM icon loading with PNG byte arrays loaded via
          g_memory_input_stream_new_from_data() and
          gdk_pixbuf_new_from_stream(). These APIs are available since
          GLib 2.12 and gdk-pixbuf 2.14 (around 2008) so should be safe
          to use today.

fixes:  #19446
closes: #19583

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 20:10:03 +00:00
Christian Brabandt 48b913d735 patch 9.2.0122: Vim still supports compiling on NeXTSTEP
Problem:  Vim still supports compiling on NeXTSTEP
Solution: Drop Support (Damien Lejay)

The NeXTSTEP operating system has been obsolete for decades. The
special-case code required to support it adds unnecessary complexity,
preprocessor conditionals, and non-standard workarounds to the codebase.

This commit removes all support for NeXTSTEP, simplifying the code and
build system in several ways:

-   Replaced custom configure checks for `union wait` with a standard `AC_CHECK_FUNCS` call for `waitpid`.
-   Removed all conditional code that used the non-standard `union wait` for process status, relying solely on a standard `int`.
-   Replaced calls to the non-standard `wait4()` function with the POSIX-standard `waitpid()`.
-   Cleaned up headers (`os_unix.h`, `os_unixx.h`) to remove NeXT-specific workarounds and macros.
-   Removed obsolete NeXT compilation instructions from the INSTALL file.

This change improves maintainability and makes the Unix process handling code more linear and compliant with modern POSIX standards.

related: #18079
closes:  #19582

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 19:48:32 +00:00
Huihui Huang 7ed37dc534 patch memory leak in list_extend_func() in list.c
Problem:  memory leak in list_extend_func() in list.c
Solution: Free l1 on early return (Huihui Huang)

closes: #19572

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 19:37:22 +00:00
Christian Brabandt 123a1e6410 patch 9.2.0120: tests: test_normal fails
Problem:  tests: test_normal fails
Solution: Ensure the terminal width is 40 columns and also
          check for existence of the tr.mo file

closes: #19608

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-08 19:33:01 +00:00
Foxe Chen 6495ca4c16 patch 9.2.0119: incorrect highlight initialization in win_init()
Problem:  When initializing a window in win_init(), w_hl is reset to
          NULL without ensuring existing highlight overrides are
          cleared (after v9.2.0113)
Solution: Clear highlight overrides and reset w_hl in win_init(). Remove
          the redundant VIM_CLEAR() from win_init_empty() (Foxe Chen).

closes: #19609

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 18:35:39 +00:00
Christian Brabandt d180f67a41 patch 9.2.0118: memory leak in w_hl when reusing a popup window
Problem:  When a popup info window is reused, win_init_empty() resets
          w_hl to NULL without freeing the previously allocated value,
          causing a memory leak (after v9.2.0113)
Solution: Free w_hl before resetting it to NULL in win_init_empty()
          using the VIM_CLEAR() macro.

closes: #19607

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 17:44:24 +00:00
Christian Brabandt f17b8b1df5 patch 9.2.0117: tests: test_wayland.vim fails
Problem:  tests: test_wayland.vim fails when X11 is not available or
          $XDG_RUNTIME_DIR is not defined
Solution: Skip test_wayland when prerequisites are not fulfilled

closes: #19579

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 17:40:50 +00:00
Foxe Chen f90fc1bd72 patch 9.2.0116: terminal: synchronized output sequences are buffered
Problem:  terminal: synchronized output sequences are buffered
Solution: Output the terminal sequences directly using ui_write(),
          bypassing buffering (Foxe Chen).

closes: #19597

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 14:23:27 +00:00
Yasuhiro Matsumoto f3b566481c patch 9.2.0115: popup: screen flickering possible during async callbacks
Problem:  popup: When an async redraw is triggered, the screen may flicker
          because the terminal may render the intermediate states of the
          redraw.
Solution: Enable synchronized output if possible to ensure the terminal
          renders the entire update at once (Yasuhiro Matsumoto).

closes: #19584
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 10:22:28 +00:00
gcrtnst 78ae2ff094 patch 9.2.0114: MS-Windows: terminal output may go to wrong terminal
Problem:  MS-Windows: terminal output may go to wrong terminal with
          ConPTY
Solution: Explicitly disable inheriting the terminal handles
          (gcrtnst).

closes: #19589

Signed-off-by: gcrtnst <52910071+gcrtnst@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-07 10:01:49 +00:00
Foxe Chen 9c4cb7145f patch 9.2.0113: winhighlight pointer may be used uninitialized
Problem:  winhighlight pointer may be used uninitialized causing a crash
Solution: Initialize pointer in win_init() and win_init_empty()
          (Foxe Chen).

closes: #19601

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-05 20:50:24 +00:00
Yasuhiro Matsumoto 4d0c57e15f patch 9.2.0112: popup: windows flicker when updating text
Problem:  popup: windows flicker when updating text
Solution: Only refresh the popup mask if the position or size changed,
          manually set the window redraw type instead of using
          redraw_win_later() to avoid triggering a full screen redraw.
          Handle opacity 100 correctly. Keep "firstline" sticky when
          setting options (Yasuhiro Matsumoto).

related: #19510
closes:  #19559

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-05 20:38:58 +00:00
Foxe Chen 0fe3ca6031 patch 9.2.0111: 'winhighlight' option not always applied
Problem:  'winhighlight' option not always applied
Solution: Apply 'winhighlight' setting in more places
          (Foxe Chen).

closes: #19555

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-05 20:17:57 +00:00
Foxe Chen 7ba60f17c2 patch 9.2.0110: No support for terminal synchronization mode
Problem:  No support for terminal synchronization mode
Solution: Add DEC 2026 support using the 'termsync' option
          (Foxe Chen).

related: #11718
closes:  #19541

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-04 21:09:25 +00:00
Martin Tournoij 6c34ace536 patch 9.2.0109: VIM_BACKTICK is always defined except for tiny builds
Problem:  VIM_BACKTICK is always defined except for tiny builds
Solution: Remove the VIM_BACKTICK define and always compile backtick
          expansion. This change however will cause the vim.tiny build
          to be slightly larger (Martin Tournoij).

closes: #19562

Signed-off-by: Martin Tournoij <martin@arp242.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-04 19:58:49 +00:00
Yasuhiro Matsumoto 499e93d09a patch 9.2.0108: byteidx_common() and f_utf16idx() call ptr2len() twice
Problem:  byteidx_common() and f_utf16idx() are calling ptr2len() twice
          per iteration, instead of reusing the already computed clen.
Solution: Reuse clen for pointer advancement in both functions
          (Yasuhiro Matsumoto).

closes: #19573

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-04 19:29:45 +00:00
Hirohito Higashi 76abd0ccdf patch 9.2.0107: tests: Test_statuslineopt() is flaky
Problem:  tests: Test_statuslineopt() is flaky
Solution: Force a redraw earlier and read screen content directly using
          screenstring() instead of g:ScreenLines() (Hirohito Higashi).

closes: #19571

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-04 19:09:37 +00:00
Huihui Huang 648240fe9a patch 9.2.0106: memory leak in expand_findfunc()
Problem:  memory leak in expand_findfunc() (after v9.1.0811)
Solution: Free list variable l on early return (Huihui Huang).

closes: #19564

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:45:18 +00:00
Huihui Huang 7d1e0a7832 patch 9.2.0105: memory leak in heredoc_get() in src/evalvars.c
Problem:  memory leak in heredoc_get() in src/evalvars.c
Solution: Free variable l on early return (Huihui Huang).

closes: #19563

Signed-off-by: Huihui Huang <625173@qq.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:35:48 +00:00
Javier Jaramago Fernández 2a7414594a patch 9.2.0104: popup: flickering on opaque popups with overlapping text
Problem:  popup: flickering on opaque popups with overlapping text,
          even if they are opaque (after v9.2.0016).
Solution: Prevent double redrawing by skipping background updates for
          opaque popups. Revert changes to test dumps
          (Javier Jaramago Fernández).

A flickering effect was introduced in commit v9.2.0016 (commit:
6c203072f) for all popups. This is a consequence of a double redraw of
the overlapping background characters. This could be expected for
transparent popups, but, it should exclude opaque ones. For a complete
fix of the flickering this commit is required in combination with fix
present in v9.2.0064 (commit: 97c5bed84b).

Additionally this commit reverts changes introduced for tests dumps for
masks in commits 6c203072f and cded5e220. These dumps were updated
preventing characters from popups to take into account the masks
specified for them. This forces the redraw of popup characters, even
when masks attempt to prevent them, leading to flickering effects. See
issues #19510 and PR: #19534.

closes: #19534

Signed-off-by: Javier Jaramago Fernández <jaramago.fernandez.javier@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:33:03 +00:00
Hirohito Higashi ff9185e822 patch 9.2.0103: missing FEAT_MENU guard for w_winbar_height in window.c
Problem:  missing FEAT_MENU guard for w_winbar_height in window.c
          (Char, after v9.2.0083)
Solution: Use WINBAR_HEIGHT() macro (Hirohito Higashi)

fixes:  #19556
closes: #19560

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:13:53 +00:00
zeertzjq 5845741d69 patch 9.2.0102: 'listchars' "leadtab" not used in :list
Problem:  'listchars' "leadtab" not used in :list (after 9.2.0088).
Solution: Also check for "leadtab" when using :list. Fix memory leak on
          E1572 if "multispace" or "leadmultispace" is set (zeertzjq).

closes: #19557

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:08:12 +00:00
Hirohito Higashi b0ad5c077b patch 9.2.0101: statusline drawing issue for multi-lines
Problem:  statusline drawing issue for multi-lines
          (after v9.2.0083)
Solution: Correctly redraw multi-line statusline
          (Hirohito Higashi).

closes: #19551

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 20:02:07 +00:00
Wei Tang 238a84621d patch 9.2.0100: Using reserved keyword new as function argument
Problem:  A recent commit introduced a new function named
          `update_highlight_overrides()` in `highlight.pro` and
          `highlight.c`, one of the parameter names conflicts with the C++
          keyword `new`. This causes compilation issues on Windows when
          VIM is compiled with OLE enabled, as "if_ole.cpp" cannot compile
          due to the conflict (after v9.2.0093).
Solution: Rename the parameter name of `update_highlight_overrides()`
          from new to hl_new (Wei Tang)

fixes:  #19568
closes: #19558

Signed-off-by: Wei Tang <gauchyler@uestc.edu.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 19:50:15 +00:00
Christian Brabandt b2bc54534c patch 9.2.0099: compiler warning about unused variable
Problem:  Coverity complains about uninitialized var, also gcc warns
          about a few other variables possibly being used uninitialized
          (Tony Mechelynck, after v9.2.0093)
Solution: Initialize a few other variables.

Coverity CID: 1683101

closes: #19561

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 18:37:25 +00:00
Christian Brabandt bc959db163 patch 9.2.0098: Coverity: Error handling issue in win_init()
Problem:  Coverity: error handling issues in win_init() (after
          v9.2.0093)
Solution: Only call pop_highlight_overrides() when
          push_highlight_overrides() was successful.

CID: 1683100

related: #19561

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 18:34:01 +00:00
Christian Brabandt e352bb632a patch 9.2.0097: Memory leak in qf_push_dir()
Problem:  Memory leak in qf_push_dir() (after v9.2.0091)
Problem:  free dirname, if it is not a directory.

closes: #19552

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 18:25:24 +00:00
Yasuhiro Matsumoto 327e0e34c9 patch 9.2.0096: has() function is slow due to linear feature scan
Problem:  The has() function is slow because it performs a linear scan
          of the feature list for every call.
Solution: Move common runtime checks and the patch-version parser to the
          beginning of the f_has() function (Yasuhiro Matsumoto).

closes: #19550

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 20:41:44 +00:00
AstroSnail 962a8c7f00 patch 9.2.0095: keypad keys may shadow normal keys
Problem:  In XTerm, typing Home, End, PgUp or PgDn on the editing pad
	  will cause vim to recognize <kHome>, <kEnd>, <kPageUp> or
	  <kPageDown> (keypad keys) instead of <Home>, <End>, <PageUp>
	  or <PageDown> (editing pad keys) respectively, affecting
          mappings and the :terminal. This is caused because the keypad
          termcaps are sorted before the editing pad ones in
	  termcodes, meaning vim will match the former if they are the
	  same.
Solution: Only recognize keypad keys when nothing else matches
          (AstroSnail).

fixes:  #17331
closes: #19145

Signed-off-by: AstroSnail <astrosnail@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 20:06:48 +00:00
Christian Brabandt 9166f1c09b translation: regenerate po/vim.pot after v9.2.0093
also update one failing syntax test

related: #19493

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:58:22 +00:00
Yasuhiro Matsumoto 2c1f4dcbcc patch 9.2.0094: popup: concealed text causes incorrect truncation
Problem:  In popup windows, concealed characters and tab expansion
          may cause wrong truncation for fixed width windows.
Solution: Do not adjust the screen column and bogus column counters
          for popup windows when handling concealed text or extra
          padding characters (Yasuhiro Matsumoto).

closes: #19121

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:45:11 +00:00
Foxe Chen 98174caabb patch 9.2.0093: Not possible to have window-local highlighting groups
Problem:  Not possible to have window-local highlighting groups
          (Hima)
Solution: Port Neovims 'winhighlight' option to Vim (Foxe Chen).

fixes:  #3576
closes: #19493

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:36:07 +00:00
Christian Brabandt 62cf4c2947 patch 9.2.0092: control flow commands using '|' fail inside a {} block
Problem:  inside_block() iterates through all cstack levels
          and returns TRUE when a CSF_BLOCK frame is found.  For control
          flow commands this causes '|' to no longer be
          recognised as a command separator, breaking
          "try | silent cmd | catch | endtry" (Martin Tournoij, after
          v9.2.0072).
Solution: Return FALSE from inside_block() for control flow commands
          that handle '|' themselves, so they always use '|' as
          separator regardless of block nesting.

fixes:  #19535
closes: #19543

supported by AI claude.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:02:06 +00:00
John Marriott 0155401538 patch 9.2.0091: missing out-of-memory checks in quickfix.c
Problem:  missing out-of-memory checks in quickfix.c
Solution: Improve error handline, refactor qf_push_dir() slightly
          (John Marriott).

closes: #19528

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 18:44:33 +00:00
zeertzjq 4b30e40a1f patch 9.2.0090: "leadtab" behavior inconsistent on line with only TABs
Problem:  "leadtab" behavior inconsistent on line with only TABs
          (after 9.2.0088).
Solution: Don't consider those as leading TABs. Also add more tests for
          existing behavior of "lead" and "leadmultispace" (zeertzjq).

closes: #19549

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 18:18:51 +00:00