Commit Graph

20015 Commits

Author SHA1 Message Date
Muraoka Taro
86855ea8ee patch 9.1.2006: MS-Windows: ANSI colors not correct in terminal
Problem:  ANSI escape colors are not displayed correctly in
          non-termguicolors in vim (cli) on Windows. The red and blue
          channels seem to be swapped.
Cause:    When converting VTerm ANSI index colors to cterm colors in
          terminal.c, the Windows case equivalent to NR-16 (:help
          cterm-colors) is ignored.
Solution: Created and used a table to convert ANSI indexed colors to
          cterm's NR-16 representation (Windows only). This table
          corresponds to the inverse conversion of cterm_ansi_idx in
          term.c. The values in both tables are exactly the same, but
          the meanings are opposite, so they are separate tables
          (Muraoka Taro).

closes: #18931

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 19:45:02 +00:00
Mao-Yining
49e0f833dd patch 9.1.2005: MS-Windows: Missing fullscreen support for GUI version
Problem:  MS-Windows: Missing fullscreen support for GUI version
Solution: Add "s" flag to guioptions (Mao-Yining)

- Implement fullscreen mode controlled by the 'go-s' flag in 'guioptions'
- Update documentation with usage examples and platform-specific details

See :help 'go-s' and :help gui-w32-fullscreen for complete documentation.

closes: #18836

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 19:33:53 +00:00
Muraoka Taro
bd686d85dc patch 9.1.2004: MS-Windows: executable() cannot find file in directory with single char
Problem:  MS-Windows: If a directory with a single character name is
          included in the PATH environment variable without a trailing
          path separator, executable() will not be able to find the
          executable file under it.
Solution: The second argument of the after_pathsep() function is now
          passed the next pointer where a path separator may exist
          (Muraoka Taro).

As a specific example, the default installation path for PowerShell v7
is "C:\Program Files\PowerShell\7", but if you set this as is in the
PATH environment variable, Vim will not be able to find the pwsh.exe
command. In this case, Vim will try to search for "C:\Program
Files\PowerShell\7pwsh.exe".

Cause: The after_pathsep() function determines whether the location
passed as its second argument immediately follows a path separator.
However, in the code where the problem occurred, the second argument was
passed a location that might contain a path separator. As a result, it
was mistakenly determined that a path separator was present in cases
where the final directory name was a single character and not followed
by a path separator, and the path to search was incorrect.

closes: #18979

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 19:19:39 +00:00
Muraoka Taro
fa2fca1ebf patch 9.1.2003: tests: Test_glob_symlinks may fail on Window
Problem:  tests: Test_glob_symlinks may fail on Windows with UCRT
          runtime
Solution: Comment out the code, do not use _wstat().
          (author)

For Test_glob_symlinks() to succeed, vim_stat() (which is actually
mswin_stat_impl()) must fail on empty symlinks.  When the dynamically
linked C runtime is linked, _wstat() succeeds even on empty symbolic
links. As a result, Test_glob_symlinks() fails.

For details, see here:
https://github.com/koron/vc-stat-behavior-verification

closes: #18962

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 19:09:20 +00:00
Yegappan Lakshmanan
c1d77520b8 patch 9.1.2002: Vim9: heap-use-after-free when when accessing protect class member
Problem:  Vim9: heap-use-after-free when when accessing protect class
          member (Foxe Chen)
Solution: Set cl->class_type_list and return directly, add tests for
          using protected class method and variable from another class
          (Yegappan Lakshmanan).

closes: #18971

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 19:03:31 +00:00
gagik
d57b4a3681 translation(hy): Update Armenian language translation
closes: #18990

Signed-off-by: gagik <hakgagik@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-21 18:42:18 +00:00
glepnir
b43f9ded7e patch 9.1.2001: cursor may end up in wrong window after :botright copen
Problem:  After :botright copen and closing the quikfix window, the
          cursor ends up in the wrong window. The problem is fr_child
          always points to the first (leftmost for FR_ROW, topmost for
          FR_COL) child frame. When do :vsplit, the new window is
          created on the left, and frame_insert() updates the parent's
          fr_child to point to this new left window.
Solution: Create a snapshot before open the quickfix window and restore
          it when close it (glepnir).

closes: #18961

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-20 17:26:39 +00:00
John Marriott
87c6eb804f patch 9.1.2000: Vim9: object member used char_u pointers
Problem:  Vim9: class and object member names are stored as char_u *
          pointer requiring repeated strlen() calls and making it harder
          to use length-aware string operations consistently.
Solution: Store ocm_name as a string_T instead of char_u *
          (John Marriott).

In addition in vim9class.c:
1: change some calls from ga_concat() to ga_concat_len() where the
   length is known.
2: in ex_class() remove unneeded variable name.
3. in intf_method_present() remove unneeded variable cl_name.
4: in update_member_method_lookup_table() move some assignments from
   inner loops into outer loops.
5: in member_lookup() remove unneeded else.
6: in is_duplicate_variable() and is_duplicate_enum() rearrange the
   string comparisons to first check the lengths match.

closes: #18973

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-20 16:00:17 +00:00
gagik
94097e0831 translation(hy): Update Armenian language translation
closes: #18969

Signed-off-by: gagik <hakgagik@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-20 15:55:40 +00:00
Mao-Yining
923fc09c81 translation(zh_CN): Update the Simplify Chinese translation
closes: #18978

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-20 15:45:36 +00:00
Foxe Chen
96ce55331f patch 9.1.1999: clipboard provider does not respect 'clipboard' option
Problem:  clipboard provider does not respect 'clipboard' option
          (Satoru Kitaguchi, after v9.1.1972)
Solution: make clipboard provider register respect "unnamed/unnamedplus"
          from the 'clipboard' option value

fixes:  #18930
closes: #18952

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-18 21:47:34 +01:00
zeertzjq
cedb1a3171 patch 9.1.1998: tests: not enough tests for :setlocal omnifunc
Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
          (zeertzjq).

closes: #18958

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-18 21:02:48 +01:00
John Marriott
de701aee9f patch 9.1.1997: Missing out-of-memory check in vim9class.c
Problem:  Missing out-of-memory check in vim9class.c in calls to
          vim_strnsave().
Solution: Refactor is_duplicate_variable() and is_duplicate_enum() and
          make use of string_T struct instead (John Marriott).

closes: #18947

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 22:31:59 +01:00
Christian Brabandt
bf1b41e387 patch 9.1.1996: tests: test_cmdline.vim leaves swapfiles behind
Problem:  tests: test_cmdline.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 22:16:31 +01:00
Aliaksei Budavei
05531d0079 patch 9.1.1995: tests: flaky test_cmdline.vim causes test failures
Problem:  Data races between test buffers are currently addressed by
          relying on arbitrary execution delays or blissfully dismissed.
Solution: Prefer more deterministic synchronisation between test buffers
          for test cases that generate screendump files with expected
          results (Aliaksei Budavei)

closes: #18920

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 22:13:10 +01:00
Aliaksei Budavei
6ac778723b patch 9.1.1994: CI: slow cursor positioning may cause flaky test failures
Problem:  More deterministic synchronisation can be established between
          processes running test cases and collecting visual effects to
          a screendump file for future verification by anticipating
          the availability of known parts of such a file and asserting
          the location of the cursor.
Solution: Provide a convenience test function that waits a specified
          time for cursor positioning (Aliaksei Budavei)

related: #18920

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 22:13:00 +01:00
Christian Brabandt
59a16f75b5 patch 9.1.1993: MS-Windows: compile error because of implicit type conversions
Problem:  MS-Windows: compile error because of implicit size conversions
          (after v9.1.1983)
Solution: Change type casts

closes: #18946

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 21:52:01 +01:00
Foxe Chen
b74c86416e patch 9.1.1992: Vim9: heap buffer overflow with COMPAREANY instruction
Problem:  Vim9: heap buffer overflow with COMPAREANY instruction
Solution: Verify the type and error out in case of different types
          (Foxe Chen)

closes: #18945

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 21:47:53 +01:00
zeertzjq
3e82b0ebfe patch 9.1.1991: :setlocal changes effective global 'omnifunc'
Problem:  :setlocal changes effective global 'omnifunc' (Maxim Kim)
Solution: Don't change global callback when using :setlocal (zeertzjq).

fixes:  #18948
closes: #18951

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 21:34:23 +01:00
Muraoka Taro
bbbc23ac2f patch 9.1.1990: tests: Test_term_gettty() fails when using conpty on Windows
Problem:  tests: Test_term_gettty() fails when using conpty on Windows,
          CI uses winpty, so this test passes.
Solution: Skip the test Test_term_gettty(). Since conpty communicates
          via anonymous pipes, there is no name that can be obtained
          with term_gettty() (Muraoka Taro)

closes: #18954

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-17 20:52:32 +01:00
Christian Brabandt
ca12f62d0a patch 9.1.1989: Vim intro screen shows register message
Problem:  Vim intro screen shows register message (after v9.1.1893)
Solution: Remove the register message, registering is no longer useful
          and possible.

fixes:  #18933
closes: #18934

Signed-off-by:
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-16 20:39:31 +01:00
Foxe Chen
b9e45e82ba patch 9.1.1988: osc52 package can be further improved
Problem:  osc52 package can be further improved (after v9.1.1984).
Solution: Improve plugin, update test and check for clipboard_provider
          feature (Foxe Chen).

closes: #18935

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-16 20:35:53 +01:00
zeertzjq
c4b3aefd0d patch 9.1.1987: assert_equal() prepends unnecessary ':' when typed
Problem:  assert_equal() prepends unnecessary ':' when typed
          (after 9.0.1758).
Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

closes: #18936

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-16 20:07:27 +01:00
Foxe Chen
beeea8a1ce patch 9.1.1986: clipboard provider does not work when redirecting messages
Problem:  clipboard provider does not work when redirecting messages
          (BenYip, after v9.1.1972)
Solution: Adjust ifdefs in ex_redir()

fixes:  #18937
closes: #18939

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-16 20:02:20 +01:00
Muraoka Taro
878d00bb3a patch 9.1.1985: tests: test_sound.vim fails on Windows
Problem:  tests: test_sound.vim fails when run locally on Windows
Solution: Skip Test_play_silent in Windows non-GUI environments.

Cause: There are two causes:

1) The global variable g:id is undefined, causing an undefined
   reference. Due to the execution order of test cases, g:id is defined in
   Test_play_event. However, on Windows, this test is skipped, so g:id is
   not defined. It is referenced in Test_play_silent's WaitForAssert()
   without being defined, resulting in an undefined error.

   Solution: Define g:id at the beginning of Test_play_silent.

2) In the non-GUI Windows version of vim, there is no message loop,
   so the callback when play file sound ends does not occur, and
   Test_play_silent's WaitForAssert times out and fails. In CI,
   sound_playfile() returns 0, so Test_play_silent is skipped. The
   reason for this is unknown, but it may be because CI is running on
   Windows Server or something like that.

   Solution: Skip Test_play_silent in Windows non-GUI environments.

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>

closes: #18941
2025-12-16 19:51:26 +01:00
Foxe Chen
02b8ec7da5 patch 9.1.1984: terminal OSC52 support can be improved
Problem:  terminal OSC52 support to access the clipboard can be improved
Solution: Include and package the optional osc52 package, note: this
          requires a Vim with clipboard provider feature (Foxe Chen).

related: #14995
closes: #18575

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-15 21:52:32 +01:00
John Marriott
2019321e0b patch 9.1.1983: Vim9: class_name definition can be improved
Problem:  Vim9: class_name definition can be improved
Solution: Use string_T to store class_name, avoid using STRLEN() calls,
          simplify code, remove unused definition of struct
          oc_newmember_S (John Marriott)

Use struct string_T to store the field class_name in struct class_T,
which means we can just use the .length field in struct string_T
instead of measuring it.

In addition:
1. In eval.c use string_T to store class_name and s in function
   class_tv2string().
2. In vim9type.c change some calls from ga_concat() to ga_concat_len()
   where the length is known.
3. In vim9class.c remove unused struct definition oc_newmember_S.
   Change some calls from ga_concat() to ga_concat_len() where the
   length is known.
4. In scriptfile.c use string_T to store type_name, class_name and
   es_name in function estack_sfile().
5. In function estack_sfile() simplify construction of the grow array ga
   and change some calls from ga_concat() to ga_concat_len() when the
   length is known.

closes: #18925

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-15 21:09:29 +01:00
Foxe Chen
eb5995a876 patch 9.1.1982: Use after free with redraw_listener_add()
Problem:  Use after free with redraw_listener_add() (after: v9.1.1976)
Solution: Copy Callbacks into listener struct (Foxe Chen)

closes: #18926

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-15 19:58:54 +01:00
MURAOKA Taro
35de719c0c patch 9.1.1981: tests: test suite may stop on error in gen_opt_test.vim
Problem:  tests: test suite may stop on error in gen_opt_test.vim
Solution: Use a different output file for log files (Muraoka Taro)

When running newtests, it may unexpectedly stop just before
test_options_all.

Cause: When generating the opt_test.vim file for test_options_all, the
failure is detected by the existence of test.log. Therefore, if a test
performed before test_options_all fails and test.log is created, it is
mistakenly thought that the generation of opt_tet.vim has failed, and
the test suite stops there.

So let's change the filename created when utils/gen_opt_test.vim fails
from test.log to gen_opt_test.log, so that it can be detected
independently from other test failures.

closes: #18928

Signed-off-by: MURAOKA Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-15 19:51:55 +01:00
Ivan Pešić
6bfc468c9f translation(sr): Update the Serbian translation
closes: #18929

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-15 19:48:00 +01:00
Gordian Dziwis
6c027b25f1 patch 9.1.1980: filetype: N-Quads files are not recognized
Problem:  filetype: N-Quads files are not recognized
Solution: Detect *.nq files as nq filetype

Reference:
- https://www.w3.org/TR/n-quads/

closes: #18923

Signed-off-by: Gordian Dziwis <gordian@dziw.is>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-14 16:53:30 +01:00
Doug Kearns
4c141bae3b patch 9.1.1979: :helpclose allows range and counts
Problem:  :helpclose incorrectly accepts a range and a count.
Solution: Remove EX_COUNT and EX_RANGE from the command definition.
          (Doug Kearns)

closes: #18917

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-14 16:41:03 +01:00
Hirohito Higashi
5193375b10 patch 9.1.1978: tests: Test_smoothscroll_number() may fail
Problem:  tests: Test_smoothscroll_number() may fail because of
          'showcmd'
Solution: Send redraw command (Hirohito Higashi)

closes: #18921

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-14 16:23:18 +01:00
Christian Brabandt
b5cf53b8b1 patch 9.1.1977: MS-Windows: missing dependency on optiondefs.h in Make_cyg_ming.mak
Problem:  MS-Windows: missing dependency on optiondefs.h in Mingw and
          Cygwin Makefile (Mao-Yining)
Solution: Update $INCL variable

fixes: #18915

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-13 18:43:27 +01:00
Foxe Chen
4438b8e071 patch 9.1.1976: Cannot define callbacks for redraw events
Problem:  When using listeners, there is no way to run callbacks at
          specific points in the redraw cycle.
Solution: Add redraw_listener_add() and redraw_listener_remove() and
          allow specifying callbacks for redraw start and end
          (Foxe Chen).

closes: #18902

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-13 18:23:54 +01:00
Foxe Chen
3d06113c8c patch 9.1.1975: blob2str() may call STRNCPY() with a NULL pointer
Problem:  blob2str() may call strcpy with a NULL pointer
Solution: Check for NULL before calling STRNCPY()

closes: #18907

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-12 08:52:07 +01:00
zeertzjq
353103e59a patch 9.1.1974: tests: missing cleanup in Test_bwipe_during_save()
Problem:  tests: missing cleanup in Test_bwipe_during_save().
Solution: Reset &charconvert.

closes: #18908

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-12 08:47:18 +01:00
Foxe Chen
131d878aaa patch 9.1.1973: some minor problems with clipboard provider code
Problem:  some minor problems with clipboard provider code
          (after v9.1.1972)
Solution: Fix minor issues (Foxe Chen)

- allow empty register type for paste function to mean automatic
- fix internal inc_clip_provider() and dec_clip_provider() functions not
  setting the pause count correctly
- don't call paste function when yanking

closes: #18909

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-12 08:44:14 +01:00
Foxe Chen
fcd3958dcb patch 9.1.1972: No way to access the clipboard without X11/Wayland
Problem:  No way to access the clipboard without X11/Wayland.
Solution: Add the clipboard provider feature (Foxe Chen).

closes: #18781

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 21:13:35 +01:00
Christian Brabandt
98a0cbf05b patch 9.1.1971: crash with invalid positional argument 0 in printf()
Problem:  crash with invalid positional argument 0 in printf()
Solution: Reject positional arguments <= 0.

closes: #18898

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 20:51:03 +01:00
glepnir
fe1c57cd2c patch 9.1.1971: Crash when buffer gets deleted inside charconvert during save
Problem:  Crash when buffer gets deleted inside charconvert during save
Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
          unload a buffer while it’s still being saved (glepnir).

closes: #18901

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 20:48:43 +01:00
phanium
fa3bdc2501 patch 9.1.1970: visual end column returns wrong value after block edit
Problem:  visual end column returns wrong value after block edit
Solution: update visual end column after block insert (phanium)

fixes:  #18900
closes: #18903

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: phanium <91544758+phanen@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 20:39:27 +01:00
zeertzjq
50325c3d59 patch 9.1.1969: Wrong cursor position after formatting with long 'formatprg'
Problem:  Wrong cursor position after formatting with long 'formatprg'.
Solution: Don't show hit-enter prompt when there are stuffed characters.

Previously a stuffed character at the hit-enter prompt will dismiss the
prompt immediately and be put in the typeahead buffer, which leads to
incorrect behavior as the typeahead buffer is processed after the stuff
buffers. Using vungetc() when KeyStuffed is TRUE can fix this problem,
but since the hit-enter prompt isn't visible anyway (and is likely not
desired here), just skip the prompt instead, which also avoids a wait
when using "wait" instead of "hit-enter" in 'messagesopt'.

fixes:  #18905
closes: #18906

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 20:28:48 +01:00
Christian Brabandt
44d480e0c3 patch 9.1.1968: tests: test_python3.vim leaves swapfiles behind
Problem:  tests: test_python3.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 20:26:06 +01:00
lsq
a52b11d057 patch 9.1.1967: if_python: 64bit numbers truncated
Problem:  if_python: 64bit numbers truncated
Solution: cast python result to long long (lsq)

fixes:  #18899
closes: #18904

Signed-off-by: lsq <lsqypj@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 19:59:13 +01:00
Mao-Yining
e758eac336 patch 9.1.1966: MS-Windows: dark mode in gui is not supported
Problem:  MS-Windows: dark mode in gui is not supported
Solution: Inplement the 'd' flag in 'guioptions'
          (Mao-Yining).

related: #12282
closes: #18877

Co-Authored-By: LemonBoy <thatlemon@gmail.com>
Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 15:23:39 +01:00
Bjoern Foersterling
ecce3497fa patch 9.1.1965: q can accidentally start recording at more prompt
Problem:  When exiting at the end of the more prompt (at the hit enter
          prompt) by hitting q the recording mode will be started.
          (Jakub Łuczyński)
Solution: Don't add the q key to the typeahead buffer
          in the function wait_return (Bjoern Foersterling)

fixes: #2589
closes: #18889

Signed-off-by: Bjoern Foersterling <bjoern.foersterling@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 13:27:00 +01:00
zeertzjq
e72eacceab patch 9.1.1964: Wrong display when using setline() at hit-enter prompt
Problem:  Wrong display when using setline() at hit-enter prompt
          (after 8.2.3204).
Solution: Only skip scrolling for changed lines in top area if it's
          scrolled down due to w_topline change. Also add more testing
          for what 8.2.3204 fixed (zeertzjq).

closes: #18887

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 13:10:12 +01:00
Yee Cheng Chin
4af6d9755c patch 9.1.1963: diff: missing diff size limit for xdiff
Problem:  diff: missing diff size limit for xdiff
Solution: Impose file size limit for internal diff (xdiff)
          (Yee Cheng Chin).

Git imposes a hard cap on file size for content that it passes to xdiff
(added to Git in dcd1742e56e, defined in xdiff-interface.h), due to
integer overflow concerns in xdiff. Vim doesn't specify such a limit
right now, which means it's possible for a user to diff a large file
(1GB+) and trigger these overflow issues.

Add the same size limit (1GB minus 1MB) to Vim and simply throws an
error when Vim encounters files larger than said limit. For now, reuse
the same error message regarding internal diff failures. There is no
need to add the same limit for external diff as it's up to each tool to
error check their input to decide what is appropriate or not.

closes: #18891

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 13:05:17 +01:00
Doug Kearns
cf5c255260 patch 9.1.1962: filetype: Erlang application resource files are not recognized
Problem:  filetype: Erlang application resource files are not recognized
Solution: Add content-based filetype detection for application resource
          files matching extension '*.app' (Doug Kearns)

related: #18835
closes:  #18842

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-07 19:12:33 +01:00