Commit Graph

20344 Commits

Author SHA1 Message Date
pyllyukko fba75cad9a patch 9.2.0156: perleval() and rubyeval() ignore security settings
Problem:  perleval() and rubyeval() ignore security settings
Solution: Disable those functions in restricted (-Z) or 'secure' mode
          (pyllyukko).

closes: #19664

Signed-off-by: pyllyukko <pyllyukko@maimed.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 21:22:28 +00:00
Hannah b11c8efbe6 patch 9.2.0155: filetype: ObjectScript are not recognized
Problem:  filetype: ObjectScript are not recognized
Solution: Add ObjectScript filetype detection for *.cls files
          (Hannah Kimura)).

Reference:
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_intro

closes: #19668

Signed-off-by: Hannah <hannah.kimura@intersystems.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 21:08:42 +00:00
Christian Brabandt e88e360a51 patch 9.2.0154: if_lua: runtime error with lua 5.5
Problem:  Lua 5.5 makes for-loop control variables read-only.
          The path-parsing logic in if_lua.c attempts to modify the
          loop variable 's', causing the script to fail during
          runtime initialization (Binbin Qian)
Solution: Use a Lua capture group in gmatch() to extract the path
          without the semicolon, avoiding the need to re-assign
          to the loop variable.

fixes:  #19639
closes: #19658

supported by AI

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 19:26:05 +00:00
Yasuhiro Matsumoto ba861f8c53 patch 9.2.0153: No support to act as a channel server
Problem:  Vim can only act as a channel client (ch_open). There is
          no way for an external process to initiate a connection
          to a running Vim instance using the Channel API.
Solution: Implement ch_listen() and the underlying server-side
          socket logic. This allows Vim to listen on a port or
          Unix domain socket. When a client connects, a new
          channel is automatically created and passed to a
          user-defined callback (Yasuhiro Matsumoto).

closes: #19231

Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-03-13 19:15:25 +00:00
Yasuhiro Matsumoto 16d421a4d9 patch 9.2.0152: concatenating strings is slow
Problem:  concatenating strings is slow
Solution: Use grow_string_tv() to grow the existing string buffer in
          place when possible (Yasuhiro Matsumoto).

closes: #19642

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 17:45:36 +00:00
Yasuhiro Matsumoto 475d6e2f1d patch 9.2.0151: blob_from_string() is slow for long strings
Problem:  blob_from_string() is slow for long strings
Solution: Use ga_grow() to allocate memory once, perform a bulk copy
          with mch_memmove() then translate NL to NUL in-place
          (Yasuhiro Matsumoto).

closes: #19665

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 17:36:34 +00:00
Yasuhiro Matsumoto 7c8168aa0a patch 9.2.0150: synchronized terminal update may cause display artifacts
Problem:  When using synchronized terminal output, the internal
          output buffer  is not flushed before sending the
          End Synchronized Update (ESU) sequence. This causes
          redrawing artifacts.
Solution: Call out_flush() immediately before sending the ESU
          sequence to ensure all pending drawing commands are
          contained within the synchronized update window.
          (Yasuhiro Matsumoto)

closes: #19662

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 17:08:17 +00:00
Christian Brabandt 3697153993 patch 9.2.0149: Vim9: segfault when unletting an imported variable
Problem:  do_unlet_var() unconditionally calls dictitem_remove() in its
          final else branch, but for imported items lp->ll_dict is NULL,
          causing a segfault (Peter Kenny)
Solution: Add a NULL check and return E1260 instead.

Affects :unlet at vim9script level and inside legacy :function.
The :def case already worked (handled in vim9cmds.c).

fixes:  #19637
closes: #19657

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-13 16:57:00 +00:00
John Marriott 9f983a9560 patch 9.2.0148: Compile error when FEAT_DIFF is not defined
Problem:  Compile error when FEAT_DIFF is not defined (after v9.2.0144)
Solution: Add ifdefs around those lines (John Marriott).

related: #19622

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 21:27:58 +00:00
Yasuhiro Matsumoto 67deae3b77 patch 9.2.0147: blob: concatenation can be improved
Problem:  blob: concatenation can be improved
Solution: Use ga_grow() to allocate space once and mch_memmove() to copy
          the blob data as a single block and fall back to the previous
          byte by byte append (Yasuhiro Matsumoto).

closes: #19645

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 19:35:42 +00:00
Yasuhiro Matsumoto 97a75d835b patch 9.2.0146: dictionary lookups can be improved
Problem:  dictionary lookups can be improved
Solution: Replace the vim_strncpy() by mch_memmove() call.
          (Yasuhiro Matsumoto).

closes: #19646

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 19:26:01 +00:00
Yasuhiro Matsumoto 55464b5d18 patch 9.2.0145: UTF-8 decoding and length calculation can be improved
Problem:  Vim often calls utf_ptr2char() and utf_ptr2len() separately.
Solution: Refactor UTF-8 hot paths into utf_ptr2char_and_len() to
          decode the codepoint and byte length in a single pass.
          Fold combining character logic into the same optimized flow.
          Improves redraw performance by ~8-10% in UTF-8 heavy
          scenarios (Yasuhiro Matsumoto).

closes: #19649

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 19:15:28 +00:00
Hirohito Higashi 2d14d62c50 patch 9.2.0144: 'statuslineopt' is a global only option
Problem:  'statuslineopt' is a global only option and configuring the
          line height is limited.
Solution: Make 'statuslineopt' global-local to a window and allow to
          configure a fixed-height height statusline per window
          (Hirohito Higashi).

closes: #19622

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 18:49:38 +00:00
Yinzuo Jiang 5890ea5397 patch 9.2.0143: termdebug: no support for thread and condition in :Break
Problem:  termdebug :Break does not support `thread` and `if` arguments
Solution: extend :Break and :Tbreak to accept optional location, thread
          {nr}, and if {expr} arguments (Yinzuo Jiang).

closes: #19613

Signed-off-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 18:34:37 +00:00
Christian Brabandt 401f9aeddf patch 9.2.0142: Coverity: Dead code warning
Problem:  Coverity: Dead code warning for expressions in non-gui builds
          (after v9.2.0139)
Solution: add ifdef FEAT_GUI

CID: 1685426
closes: #19654

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-12 18:23:38 +00:00
Christian Brabandt c5f283d641 patch 9.2.0141: :perl ex commands allowed in restricted mode
Problem:  :perl ex commands allowed in restricted mode (pyllyukko)
Solution: Add EX_RESTRICT flag to :perldo/:perl command definition.

closes: #19653

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 21:50:48 +00:00
Yasuhiro Matsumoto 2ca96b09d7 patch 9.2.0140: file reading performance can be improved
Problem:  Reading large files is slow because UTF-8 validation and
          newline scanning are performed byte-by-byte. Initial file
          loading also triggers listener and channel processing.
Solution: Use memchr() for SIMD-optimized newline scanning, implement
          word-at-a-time ASCII skipping during UTF-8 validation using a
          bitmask, skip listener/netbeans/channel notifications
          when the ML_APPEND_NEW flag is set during readfile()
          (Yasuhiro Matsumoto).

closes: #19612

Co-authored-by: NRK <nrk@disroot.org>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 20:18:26 +00:00
Foxe Chen c970b470fb patch 9.2.0139: Cannot configure terminal resize event
Problem:  Cannot configure terminal resize event
Solution: Add the 'termresize' option and allow to use in-band window
          resize events (Foxe Chen).

closes: #19596

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 20:03:36 +00:00
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