1
mirror of https://github.com/neovim/neovim.git synced 2024-12-31 17:13:26 -07:00
Commit Graph

638 Commits

Author SHA1 Message Date
zeertzjq
748198f5bf vim-patch:9.0.1854: test_crash1() fails on CI
Problem:  test_crash1() fails on CI
Solution: don't run Screendump test, verify that it doesn't crash
          by running it through a shell command line, testing
          the exit value and concatenating success cmd using '&&'

db510ca805

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 09:54:03 +08:00
zeertzjq
6952b1951b
vim-patch:9.0.2107: [security]: FPE in adjust_plines_for_skipcol ()
Problem:  [security]: FPE in adjust_plines_for_skipcol
Solution: don't divide by zero, return zero

Prevent a floating point exception when calculating w_skipcol (which can
happen with a small window when the number option is set and cpo+=n).

Add a test to verify

cb0b99f067

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 08:40:02 +08:00
zeertzjq
9d39ad6318 vim-patch:9.0.2111: [security]: overflow in get_number
Problem:  [security]: overflow in get_number
Solution: Return 0 when the count gets too large

[security]: overflow in get_number

When using the z= command, we may overflow the count with values larger
than MAX_INT. So verify that we do not overflow and in case when an
overflow is detected, simply return 0

73b2d3790c

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 07:19:14 +08:00
zeertzjq
809b05bf27 vim-patch:9.0.2110: [security]: overflow in ex address parsing
Problem:  [security]: overflow in ex address parsing
Solution: Verify that lnum is positive, before substracting from
          LONG_MAX

[security]: overflow in ex address parsing

When parsing relative ex addresses one may unintentionally cause an
overflow (because LONG_MAX - lnum will overflow for negative addresses).

So verify that lnum is actually positive before doing the overflow
check.

060623e4a3

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 07:16:04 +08:00
zeertzjq
016c6fae27 vim-patch:9.0.2109: [security]: overflow in nv_z_get_count
Problem:  [security]: overflow in nv_z_get_count
Solution: break out, if count is too large

When getting the count for a normal z command, it may overflow for large
counts given. So verify, that we can safely store the result in a long.

58f9befca1

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 07:13:49 +08:00
zeertzjq
a4c111ae69 vim-patch:9.0.2108: [security]: overflow with count for :s command
Problem:  [security]: overflow with count for :s command
Solution: Abort the :s command if the count is too large

If the count after the :s command is larger than what fits into a
(signed) long variable, abort with e_value_too_large.

Adds a test with INT_MAX as count and verify it correctly fails.

It seems the return value on Windows using mingw compiler wraps around,
so the initial test using :s/./b/9999999999999999999999999990 doesn't
fail there, since the count is wrapping around several times and finally
is no longer larger than 2147483647. So let's just use 2147483647 in the
test, which hopefully will always cause a failure

ac63787734

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-17 07:06:52 +08:00
zeertzjq
354b57b01f vim-patch:9.0.1535: test commented out in a wrong way
Problem:    Test commented out in a wrong way.
Solution:   Use legacy script comment character.

a4467c433a

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-17 07:06:52 +08:00
zeertzjq
f6658a1e78 vim-patch:9.0.1534: test for expanding "~" in substitute takes too long
Problem:    Test for expanding "~" in substitute takes too long.
Solution:   Disable the test for now.

916d6dd5b1

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-17 07:06:52 +08:00
zeertzjq
d2f2e2725c vim-patch:9.0.1532: crash when expanding "~" in substitute causes very long text
Problem:    Crash when expanding "~" in substitute causes very long text.
Solution:   Limit the text length to MAXCOL.

ab9a2d884b

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-17 07:06:52 +08:00
luukvbaal
f4d95c05b9
vim-patch:9.0.2105: skipcol not reset when topline changed ()
Problem:  Skipcol is not reset when topline changed scrolling cursor to top
Solution: reset skipcol

closes: 

bb800a7907
2023-11-15 06:28:56 +08:00
Christian Clason
9e2248ab58 vim-patch:9.0.2104: wast filetype should be replaced by wat filetype
Problem:  wast filetype should be replaced by wat filetype
Solution: start using the official wat filetype name

runtime: rename `wast` filetype to `wat` (Wasm text format)

The problem is the name of the current filetype wast. When the plugin
was initially created, the file extension for Wasm text format was not
fixed and .wast was more popular.

However, recently .wat became the official file extension for
WebAssembly text (WAT) format and .wast is now a file extension for the
unofficial WAST format, which is a superset of .wat for the convenience
to describe the Wasm specification conformance tests.

https://webassembly.js.org/docs/contrib-wat-vs-wast.html

However for now, let's keep using the `wat` filetype even for the .wast
extension, so that we at least do not lose the filetype settings and
syntax highlighting. This can be adjusted later, if it turns out to have
a separate need for.

closes: 

bc8f79d36a

Co-authored-by: rhysd <lin90162@yahoo.co.jp>
2023-11-14 21:51:28 +01:00
zeertzjq
91872d7712
vim-patch:8.1.0970: text properties test fails when 'encoding' is not utf-8 ()
Problem:    Text properties test fails when 'encoding' is not utf-8.
Solution:   Compare with original value of 'encoding'. (Christian Brabandt,
            closes )

ed79d1e348

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 15:01:40 +08:00
zeertzjq
c23c44f845 vim-patch:8.2.4850: mksession mixes up "tabpages" and "curdir" arguments
Problem:    Mksession mixes up "tabpages" and "curdir" arguments.
Solution:   Correct logic for storing tabpage in session. (closes )

d7c9564d8d

Co-authored-by: LemonBoy <thatlemon@gmail.com>
2023-11-13 13:58:32 +08:00
zeertzjq
3d9593523d vim-patch:8.2.2112: running tests may leave some files behind
Problem:    Running tests may leave some files behind.
Solution:   Delete the right files.  Fix a few typos. (Dominique Pellé,
            closes 

ac665c24c9

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:50:43 +08:00
zeertzjq
0ff3187fb8 vim-patch:8.1.2373: cannot build with +popupwin but without +quickfix
Problem:    Cannot build with +popupwin but without +quickfix. (John Marriott)
Solution:   Adjust #ifdefs.

5a4c3082d7

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:50:43 +08:00
zeertzjq
30d09d8258 vim-patch:8.1.2276: MS-Windows: session test leaves files behind
Problem:    MS-Windows: session test leaves files behind.
Solution:   Wipe out buffers before deleting the directory. (closes )

5bf46e9786

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:50:43 +08:00
zeertzjq
bcac7674f7 vim-patch:8.1.1581: shared functions for testing are disorganised
Problem:    Shared functions for testing are disorganised.
Solution:   Group finctions in script files. (Ozaki Kiichi, closes )

7a39dd7f00

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:50:43 +08:00
zeertzjq
538749410b vim-patch:partial:8.1.1218: cannot set a directory for a tab page
Problem:    Cannot set a directory for a tab page.
Solution:   Add the tab-local directory. (Yegappan Lakshmanan, closes )

00aa069db8

Session-related changes only.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:29:57 +08:00
zeertzjq
36ce30be20 vim-patch:8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Problem:    Vim doesn't use the new ConPTY support in Windows 10.
Solution:   Use ConPTY support, if available. (Nobuhiro Takasaki, closes )

aa5df7e312

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:24:51 +08:00
zeertzjq
4872e2da3c vim-patch:partial:8.0.1592: terminal windows in a session are not properly restored
Problem:    Terminal windows in a session are not properly restored.
Solution:   Add "terminal" in 'sessionoptions'.  When possible restore the
            command running in a terminal.

4d8bac8bf5

Tests only. Nvim has no equivalent to "norestore" yet.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 13:22:54 +08:00
zeertzjq
748eae6bb5
test(old): reorder test_mksession.vim to match upstream () 2023-11-13 12:34:49 +08:00
zeertzjq
2a58aa5709
vim-patch:9.0.2102: matchparen highlight not cleared in completion mode ()
Problem:  matchparen highlight not cleared in completion mode
Solution: Clear matchparen highlighting in completion mode

Remove hard-coded hack in insexpand.c to clear the :3match before
displaying the completion menu.

Add a test for matchparen highlighting. While at it, move all test tests
related to the matchparen plugin into a separate test file.

closes: 
closes: 

9588666360

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-13 10:47:12 +08:00
zeertzjq
629f117945 vim-patch:9.0.0525: manually deleting temp test files
Problem:    Manually deleting temp test files.
Solution:   Add the 'D' flag to writefile().

5917341f65

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 09:34:39 +08:00
zeertzjq
b9cffe40fa vim-patch:9.0.0336: tests are flaky because of using a common file name
Problem:    Tests are flaky because of using a common file name.
Solution:   Rename files and directories to be more unique.

61abe7d8f8

Cherry-pick Test_custom_complete_autoload() from patch 8.2.4584.
Cherry-pick test_delete.vim & test_edit.vim changes from patch 9.0.0323.
Cherry-pick test_edit.vim changes from patch 8.2.3637.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 09:26:59 +08:00
zeertzjq
5c69f8569a vim-patch:9.0.0137: debugger test may fail when $CWD is very long
Problem:    Debugger test may fail when $CWD is very long.
Solution:   Skip the test if the directory name is too long. (James McCoy,
            closes )

db7a88db8b

Co-authored-by: James McCoy <jamessan@jamessan.com>
2023-11-13 08:58:48 +08:00
zeertzjq
1fd0ded080
vim-patch:8.2.4809: various things no6 properly tested ()
Problem:    Various things no6 properly tested.
Solution:   Add various test cases. (Yegappan Lakshmanan, closes )

885de449c0

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-11-13 08:55:25 +08:00
zeertzjq
d064f55704 vim-patch:8.2.4541: Crash in debugger when a variable is not available
Problem:    Crash in debugger when a variable is not available in the current
            block.
Solution:   Check for a NULL name. (closes )

e406ff87c8

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 07:00:56 +08:00
zeertzjq
c5d4d1cc0d vim-patch:8.2.4020: debugger test fails
Problem:    Debugger test fails.
Solution:   Fix import statement.

84c62d59a3

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:59:40 +08:00
zeertzjq
2503de4c92 vim-patch:8.2.3984: debugger test fails
Problem:    Debugger test fails.
Solution:   Adjust the test for modified debugging of a for loop.

3d0da09bb2

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:59:10 +08:00
zeertzjq
331d213c0b vim-patch:8.2.3395: Vim9: expression breakpoint not checked in :def function
Problem:    Vim9: expression breakpoint not checked in :def function.
Solution:   Always compile a function for debugging if there is an expression
            breakpoint. (closes )

26a4484da2

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:55:58 +08:00
zeertzjq
49d126e005 vim-patch:8.2.3138: debugger test fails
Problem:    Debugger test fails.
Solution:   Adjust eval command.

31e21766d6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:49:57 +08:00
zeertzjq
b313109a25 vim-patch:8.2.3116: Vim9: crash when debugging a function with line continuation
Problem:    Vim9: crash when debugging a function with line continuation.
Solution:   Check for a NULL pointer. (closes )

303215d60c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:49:40 +08:00
zeertzjq
310d0f15c0 vim-patch:8.2.3096: temp files remain after running tests
Problem:    Temp files remain after running tests.
Solution:   Delete the right files. (Dominique Pellé, closes )

6c72fd51a8

Co-authored-by: Dominique Pelle <dominique.pelle@gmail.com>
2023-11-13 06:49:09 +08:00
zeertzjq
1cc2143710 vim-patch:8.2.3086: Vim9: breakpoint on "for" does not work
Problem:    Vim9: breakpoint on "for" does not work.
Solution:   Use the right line number in ISN_DEBUG. (closes )

6fc0161682

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:48:24 +08:00
zeertzjq
32012b3fe8 vim-patch:8.2.3066: Vim9: debugging lambda does not work
Problem:    Vim9: debugging lambda does not work.
Solution:   Use the compile type of the function when compiling a lambda.
            (closes )

17d868b8b2

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:47:43 +08:00
zeertzjq
06acf78cd3 vim-patch:8.2.3039: Vim9: breakpoint at a comment line does not work
Problem:    Vim9: breakpoint at a comment line does not work.
Solution:   Add the comment line number to the debug instruction.
            (closes )

8cec9273d2

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
7e789137e9 vim-patch:8.2.3027: Vim9: breakpoint in compiled function not always checked
Problem:    Vim9: breakpoint in compiled function not always checked.
Solution:   Check for breakpoint when calling compiled function from compiled
            function.

2ac4b2536a

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
0bca5bff53 vim-patch:8.2.3026: Vim9: cannot set breakpoint in compiled function
Problem:    Vim9: cannot set breakpoint in compiled function.
Solution:   Check for breakpoint when calling a function.

4f8f54280f

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
940d9c59a7 vim-patch:8.2.3017: Vim9: debugger shows too many lines
Problem:    Vim9: debugger shows too many lines.
Solution:   Truncate at a comment, "enddef", etc. (closes )

59b50c3bee

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
02a43ddf1e vim-patch:8.2.3013: Vim: when debugging only first line of command is displayed
Problem:    Vim: when debugging only the first line of a command using line
            continuation is displayed.
Solution:   Find the next command and concatenate lines until that one.
            (closes )

4cea536bdf

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
d46b6b2978 vim-patch:8.2.3011: Vim9: cannot get argument values during debugging
Problem:    Vim9: cannot get argument values during debugging.
Solution:   Lookup names in the list of arguments.  Put debug instruction
            halfway for command.

6bc30b05e6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
3e8541f4a0 vim-patch:8.2.3003: Vim9: closure compiled with wrong compile type
Problem:    Vim9: closure compiled with wrong compile type.
Solution:   Use COMPILE_TYPE() when calling a function. (closes )

968a5b62ff

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
04d951685b vim-patch:8.2.2996: Vim9: when debugging cannot inspect local variables
Problem:    Vim9: when debugging cannot inspect local variables.
Solution:   Make local variables available when debugging.

b69c6fb7b4

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
5ce3b89ff3 vim-patch:8.2.2985: Vim9: a compiled function cannot be debugged
Problem:    Vim9: a compiled function cannot be debugged.
Solution:   Add initial debugging support.

e99d422bbd

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-13 06:46:17 +08:00
zeertzjq
74e23b3b2a
vim-patch:2dd613f57bf1 ()
runtime(termdebug): improve the breakpoint sign label ()

// related 
// that should be the last chat (I) with Bram, r.i.p

2dd613f57b

Co-authored-by: Shane-XB-Qian <shane.qian@foxmail.com>
2023-11-13 05:44:30 +08:00
dundargoc
353a4be7e8 build: remove PVS
We already have an extensive suite of static analysis tools we use,
which causes a fair bit of redundancy as we get duplicate warnings. PVS
is also prone to give false warnings which creates a lot of work to
identify and disable.
2023-11-12 21:26:39 +01:00
zeertzjq
ad3568a701
vim-patch:9.0.2101: CI: test_termdebug may still fail ()
Problem:  CI: test_termdebug may still fail
Solution: use term_wait() to make it more robust

closes: 

fdbadea4b6

Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
2023-11-12 18:18:28 +08:00
zeertzjq
145d9ed0fc
vim-patch:9.0.2100: CI: test_termdebug fails ()
Problem:  CI: test_termdebug fails
Solution: only test for a changed winlayout, if the window
          width actually changed

Also, include an unrelated comment (which doesn't warrant its own patch
number)

305127f9f2

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-12 08:18:40 +08:00
ObserverOfTime
c23dd7c9ef
vim-patch:9.0.2098: No filetype support for xcompose files ()
Problem:  No filetype support for xcompose files
Solution: Add filetype detection

closes: 

4f9074b96c
2023-11-12 07:51:25 +08:00
Christian Clason
84688ec372 vim-patch:9.0.2097: No support for cypher files
Problem:  No support for cypher files
Solution: Add cypher filetype detection

Cypher query language support to work with (mostly) graph databases.

Already existing lsp support in Neovim's nvim-lspconfig:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#cypher_ls

closes: 

8f0fe20ff1

Co-authored-by: Gerrit Meier <meistermeier@gmail.com>
2023-11-12 00:22:28 +01:00
zeertzjq
bf5cf8ae82
vim-patch:8.2.4078: terminal test for current directory not used on FreeBSD ()
Problem:    Terminal test for current directory not used on FreeBSD.
Solution:   Make it work on FreeBSD. (Ozaki Kiichi, closes ) Add
            TermWait() inside Run_shell_in_terminal() as a generic solution.

ced2b38a56

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-10 14:20:32 +08:00
zeertzjq
04d299c170 vim-patch:8.2.4932: not easy to filter the output of maplist()
Problem:    Not easy to filter the output of maplist().
Solution:   Add mode_bits to the dictionary. (Ernie Rael, closes )

d8f5f76621

Co-authored-by: Ernie Rael <errael@raelity.com>
2023-11-09 21:34:04 +08:00
zeertzjq
f748a73a35 vim-patch:8.2.4861: it is not easy to restore saved mappings
Problem:    It is not easy to restore saved mappings.
Solution:   Make mapset() accept a dict argument. (Ernie Rael, closes )

51d04d16f2

Co-authored-by: Ernie Rael <errael@raelity.com>
2023-11-09 21:34:04 +08:00
zeertzjq
d4dbfb092b vim-patch:8.2.4825: can only get a list of mappings
Problem:    Can only get a list of mappings.
Solution:   Add the optional {abbr} argument. (Ernie Rael, closes )
            Rename to maplist().  Rename test file.

09661203ec

Co-authored-by: Ernie Rael <errael@raelity.com>
2023-11-09 21:34:04 +08:00
zeertzjq
2dfcd5a22b vim-patch:8.2.4820: not simple programmatic way to find a specific mapping
Problem:    Not simple programmatic way to find a specific mapping.
Solution:   Add getmappings(). (Ernie Rael, closes )

659c240cf7

Co-authored-by: Ernie Rael <errael@raelity.com>
2023-11-09 21:34:04 +08:00
zeertzjq
a4b80c71ea vim-patch:8.2.4140: maparg() does not indicate the type of script
Problem:    maparg() does not indicate the type of script where it was defined.
Solution:   Add "scriptversion".

a9528b39a6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-11-09 21:34:02 +08:00
zeertzjq
77bb69d7b0
vim-patch:7fbbd7fdc6df ()
runtime(termdebug):  handle buffer-local mappings properly

closes: 

7fbbd7fdc6

Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
2023-11-09 08:38:25 +08:00
zeertzjq
89d785e530 vim-patch:ca48202b6f46
runtime(termdebug): improve window handling, shorten var types

closes 

ca48202b6f

Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
2023-11-09 07:24:31 +08:00
zeertzjq
7b921c5501 vim-patch:9.0.1811: still some issues with term_debug test
Problem:  still some issues with term_debug test
Solution: Use WaitForAssert()

closes: 

85c3a5bc26

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-11-09 07:05:21 +08:00
zeertzjq
4d36892191 vim-patch:9.0.1809: termdebug test flayk
Problem:  termdebug test flayk
Solution: wait slightly longer

6c93c94929

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-09 07:05:21 +08:00
zeertzjq
c9e7e94fcc vim-patch:9.0.1808: termdebug: Typo in termdebug test
Problem:  termdebug: Typo in termdebug test
Solution: fix the typos

f2534434c9

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-09 07:05:21 +08:00
zeertzjq
8d3dbf2746 vim-patch:9.0.1791: No tests for the termdebug plugin
Problem:  No tests for the termdebug plugin
Solution: Add some simple tests for the termdebug plugin

closes: 

58f39d89a8

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-11-09 07:05:21 +08:00
zeertzjq
f7b2ea59a6
vim-patch:9.0.2095: statusline may look different than expected ()
Problem:  statusline may look different than expected
Solution: do not check for highlighting of stl and stlnc characters

statusline fillchar may be different than expected

If the highlighting group for the statusline for the current window
|hl-StatusLine| or the non-current window |hl-StatusLineNC| are cleared
(or do not differ from each other), than Vim will use the hard-coded
fallback values '^' (for the non-current windows) or '=' (for the
current window).  I believe this was done, to make sure the statusline
will always be visible and be distinguishable from the rest of the
window.

However, this may be unexpected, if a user explicitly defined those
fillchar characters just to notice that those values are then not used
by Vim.

So, let's assume users know what they are doing and just always return
the configured stl and stlnc values.  And if they want the statusline to
be non-distinguishable from the rest of the window space, so be it.  It
is their responsibility and Vim shall not know better what to use.

fixes: 
closes: 

6a650bf696

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-09 06:34:34 +08:00
Christian Clason
324fad1e88 vim-patch:9.0.2092: tests: failure in test_arabic
Problem:  tests: failure in test_arabic
Solution: adjust the test for the changed arabic keymap

2a94e98792

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-05 21:56:56 +01:00
zeertzjq
ec66a95fbc
vim-patch:9.0.2090: complete_info() skips entries with 'noselect' ()
Problem:  complete_info() skips entries with 'noselect'
Solution: Check, if first entry is at original text state

Unfortunately, Commit daef8c74375141974d61b85199b383017644978c
introduced a regression, that when ':set completeopt+=noselect' is set
and no completion item has been selected yet, it did not fill the
complete_info['items'] list.

This happened, because the current match item did not have the
CP_ORIGINAL_TEXT flag set and then the cp->prev pointer did point to the
original flag item, which caused the following while loop to not being
run but being skipped instead.

So when the 'noselect' is set, only start with to the previous selection
item, if the initial completion item has the CP_ORIGINAL_TEXT flag set,
else use the 2nd previous item instead.

fixes: 
closes: 

57f9ce1a09

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-11-04 21:59:03 +08:00
Christian Clason
c34e816608 vim-patch:9.0.2079: Not all Dart files detected
Problem:  Not all Dart files detected
Solution: Add shebang filetype detection for Dart

closes: 

c1c177a47b

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2023-10-29 01:36:51 +02:00
luukvbaal
f2fb05238a
vim-patch:9.0.2081: smoothscroll may result in wrong cursor position ()
Problem:  With 'smoothscroll' set, "w_skipcol" is not reset when unsetting 'wrap'.
          Resulting in incorrect calculation of the cursor position.
Solution: Reset "w_skipcol" when unsetting 'wrap'.

fixes:  
closes: 

1bf1bf569b
2023-10-29 06:05:29 +08:00
zeertzjq
ac353e87ae
vim-patch:9.0.2075: TextChangedI may not always trigger ()
Problem:  TextChangedI may not always trigger
Solution: trigger it in more cases: for insert/
          append/change operations, and when
          opening a new line,

fixes: 
closes: 

4bca4897a1

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-28 10:42:18 +08:00
zeertzjq
063a78fda2 vim-patch:9.0.2077: CI fails because of trailing whitespace in test
Problem:  CI fails because of trailing whitespace in test
Solution: Remove it

87ca5e86fa

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-28 06:17:08 +08:00
zeertzjq
0b23207c73 vim-patch:9.0.2074: Completion menu may be wrong
Problem:  Completion menu may be wrong
Solution: Check for the original direction of the completion menu,
          add more tests, make it work with 'noselect'

completion: move in right direction when  filling completion_info()

When moving through the insert completion menu and switching directions,
we need to make sure we start at the correct position in the list and
move correctly forward/backwards through it, so that we do not skip
entries and the selected item points to the correct entry in the list
of completion entries generated by the completion_info() function.

The general case is this:

1) CTRL-X CTRL-N, we will traverse the list starting from
   compl_first_match and then go forwards (using the cp->next pointer)
   through the list (skipping the very first entry, which has the
   CP_ORIGINAL_TEXT flag set (since that is the empty/non-selected entry

2) CTRL-X CTRL-P, we will traverse the list starting from
   compl_first_match (which now points to the last entry). The previous
   entry will have the CP_ORIGINAL_TEXT flag set, so we need to start
   traversing the list from the second prev pointer.

There are in fact 2 special cases after starting the completion menu
with CTRL-X:

3)  CTRL-N and then going backwards by pressing CTRL-P again.
    compl_first_match will point to the same entry as in step 1 above,
    but since compl_dir_foward() has been switched by pressing CTRL-P
    to backwards we need to pretend to be in still in case 1 and still
    traverse the list in forward direction using the cp_next pointer

4)  CTRL-P and then going forwards by pressing CTRL-N again.
    compl_first_match will point to the same entry as in step 2 above,
    but since compl_dir_foward() has been switched by pressing CTRL-N
    to forwards we need to pretend to be in still in case 2 and still
    traverse the list in backward direction using the cp_prev pointer

For the 'noselect' case however, this is slightly different again. When
going backwards, we only need to go one cp_prev pointer back. And
resting of the direction works again slightly different. So we need to
take the noselect option into account when deciding in which direction
to iterate through the list of matches.

related: 
related: 
closes: 

daef8c7437

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-28 06:16:55 +08:00
Christian Clason
5753e5e7eb vim-patch:9.0.2071: objdump files not recognized
Problem:  objdump files not recognized
Solution: detect *.objdump files, add a filetype plugin

Added the objdump file/text format

closes: 

10407df7a9

Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
2023-10-27 10:03:09 +02:00
zeertzjq
9dc440400c
vim-patch:9.0.2068: [security] overflow in :history ()
Problem:  [security] overflow in :history
Solution: Check that value fits into int

The get_list_range() function, used to parse numbers for the :history
and :clist command internally uses long variables to store the numbers.
However function arguments are integer pointers, which can then
overflow.

Check that the return value from the vim_str2nr() function is not larger
than INT_MAX and if yes, bail out with an error. I guess nobody uses a
cmdline/clist history that needs so many entries... (famous last words).

It is only a moderate vulnerability, so impact should be low.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-q22m-h7m2-9mgm

9198c1f2b1

N/A patch:
vim-patch:9.0.2073: typo in quickfix.c comments

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-27 06:37:52 +08:00
zeertzjq
f2fc44550f
vim-patch:9.0.2064: cannot use buffer-number for errorformat ()
Problem:  cannot use buffer-number for errorformat
Solution: add support for parsing a buffer number using '%b' in
          'errorformat'

closes: 

b731800522

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-26 07:42:29 +08:00
Christian Clason
0b1ec3b162 vim-patch:9.0.2063: pacman hooks are detected as conf filetype
Problem:  pacman hooks are detected as conf filetype
Solution: make it consistent to pacman.conf and detect those
          hooks as confini

Because confini has much better syntax highlighting than conf.

For reference, I identified pacman.conf and pacman hooks as dosini in
https://github.com/vim/vim/pull/6335, then
https://github.com/vim/vim/pull/10213 changed them to conf, then
https://github.com/vim/vim/pull/10518 changed pacman.conf to confini but
forgot to change hooks.

closes: 

7d254dbc2d

Co-authored-by: Guido Cella <guido@guidocella.xyz>
2023-10-24 10:15:47 +02:00
Christian Clason
4f0adb6a78 vim-patch:9.0.2062: Janet files are not recognised
Problem:  Janet files are not recognised
Solution: Add filename and shebang detection (without
          adding an extra filetype plugin)

Those are used by the Janet language:
http://www.janet-lang.org

closes: 

c038427d2a

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2023-10-24 10:15:47 +02:00
Christian Clason
94fee35446 vim-patch:9.0.2061: not able to detect xkb filetypes
Problem:  not able to detect xkb filetypes
Solution: Detect files below /u/s/X11/xkb as xkb files (without adding
          an extra filetype)

Those files are used from the X11 xkb extension

closes: 

ae9021a840

Co-authored-by: Guido Cella <guido@guidocella.xyz>
2023-10-24 10:15:47 +02:00
Christian Clason
5f0224e848 vim-patch:9.0.2060: *.{gn,gni} files are not recognized
Problem:  *.{gn,gni} files are not recognized
Solution: Detect some as gn filetype (without adding an extra filetype)

Those come from: https://gn.googlesource.com/gn/

closes: 

84394f2be4

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-10-24 10:15:47 +02:00
zeertzjq
9971bea6f1
vim-patch:9.0.2059: outstanding exceptions may be skipped ()
Problem:  outstanding exceptions may be skipped
Solution: When restoring exception state, process remaining outstanding
          exceptions

closes: 

0ab500dede

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-21 18:46:52 +08:00
zeertzjq
c049ce56cd
vim-patch:9.0.2058: tests: avoid error when no swap files exist ()
Problem:  tests: avoid error when no swap files exist
Solution: use unlet! so that no error message is reported
          in case the variable does not exists

When s:GetSwapFileList() does not find any swapfiles, it will return an
empty list []. This means, that the variable 'name' will not be
declared, cause the following unlet command to fail and causing a 1 sec
delay on running the tests.

So let's instead use the :unlet! command which simply skips reporting an
error when the variable given as parameter does not exists.

closes: 

a36acb7ac4
2023-10-21 18:14:32 +08:00
Christian Clason
f4b896198f vim-patch:9.0.2056: no digraph for quadruple prime
Problem:  no digraph for quadruple prime
Solution: add quadruple prime digraph using 4'

closes: 

47416d1a74

Co-authored-by: Jonathan Wright <quaggy@gmail.com>
2023-10-20 13:03:36 +02:00
Gregory Anders
3ea13bca14 vim-patch:9.0.2053: zig filetype detection test wrong
Problem:  zig filetype detection test wrong
Solution: Remove .zir pattern, add new test for .zon pattern

closes: 

a8c664a042

Co-authored-by: Gregory Anders <greg@gpanders.com>
2023-10-19 13:06:58 -05:00
zeertzjq
a096165977
vim-patch:9.0.2050: Vim9: crash with deferred function call and exception ()
Problem:  Vim9: crash with deferred function call and exception
Solution: Save and restore exception state

Crash when a deferred function is called after an exception and another
exception is thrown

closes: 
closes: 

c59c1e0d88

The change in check_due_timer() is N/A as Nvim calls timer callbacks on
the main loop.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-19 18:34:48 +08:00
zeertzjq
09fb243bdd vim-patch:9.0.2045: tests: checking for swap files takes time
Problem:  tests: checking for swap files takes time
Solution: don't check for swap files  when test has been skipped

Check for swap files takes a considerable about of time, so don't do
that for skipped tests to avoid wasting time.

closes: 

a0e1f06f04
2023-10-18 18:30:20 +08:00
zeertzjq
9e3640a779 vim-patch:9.0.2044: Vim9: exceptions confuse defered functions
Problem:  Vim9: exceptions confuse defered functions
Solution: save and restore exception state when calling defered
          functions

closes: 
closes: 

0672595fd5

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-18 18:29:47 +08:00
zeertzjq
4db4168aaf
vim-patch:8.2.4497: wrong color for half of wide character next to pum scrollbar ()
Problem:    Wrong color for half of wide character next to pum scrollbar.
Solution:   Redraw the screen cell with the right color. (closes )

35d8c2010e

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-10-18 06:40:08 +08:00
zeertzjq
bc5dfda441
vim-patch:9.0.2041: trim(): hard to use default mask ()
Problem:  trim(): hard to use default mask (partly revert v9.0.2040)
Solution: use default mask when it is empty

The default 'mask' value is pretty complex, as it includes many
characters.  Yet, if one needs to specify the trimming direction, the
third argument, 'trim()' currently requires the 'mask' value to be
provided explicitly.

Currently, an empty 'mask' will make 'trim()' call return 'text' value
that is passed in unmodified.  It is unlikely that someone is using it,
so the chances of scripts being broken by this change are low.

Also, this reverts commit 9.0.2040 (which uses v:none for the default
and requires to use an empty string instead).

closes: 

8079917447

vim-patch:9.0.2040: trim(): hard to use default mask

Problem:  trim(): hard to use default mask
Solution: Use default 'mask' when it is v:none

The default 'mask' value is pretty complex, as it includes many
characters.  Yet, if one needs to specify the trimming direction, the
third argument, 'trim()' currently requires the 'mask' value to be
provided explicitly.

'v:none' is already used to mean "use the default argument value" in
user defined functions.  See |none-function_argument| in help.

closes: 

6e6386716f

Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
2023-10-18 06:08:14 +08:00
zeertzjq
272ef27115
vim-patch:9.0.2035: [security] use-after-free with wildmenu ()
Problem:  [security] use-after-free with wildmenu
Solution: properly clean up the wildmenu when exiting

Fix wildchar/wildmenu/pum memory corruption with special wildchar's

Currently, using `wildchar=<Esc>` or `wildchar=<C-\>` can lead to a
memory corruption if using wildmenu+pum, or wrong states if only using
wildmenu. This is due to the code only using one single place inside the
cmdline process loop to perform wild menu clean up (by checking
`end_wildmenu`) but there are other odd situations where the loop could
have exited and we need a post-loop clean up just to be sure. If the
clean up was not done you would have a stale popup menu referring to
invalid memory, or if not using popup menu, incorrect status line (if
`laststatus=0`).

For example, if you hit `<Esc>` two times when it's wildchar, there's a
hard-coded behavior to exit command-line as a failsafe for user, and if
you hit `<C-\><C-\><C-N>` it will also exit command-line, but the clean
up code would not have hit because of specialized `<C-\>` handling.

Fix Ctrl-E / Ctrl-Y to not cancel/accept wildmenu if they are also
used for 'wildchar'/'wildcharm'. Currently they don't behave properly,
and also have potentially memory unsafe behavior as the logic is
currently not accounting for this situation and try to do both.
(Previous patch that addressed this: )

Also, correctly document Escape key behavior (double-hit it to escape)
in wildchar docs as it's previously undocumented.

In addition, block known invalid chars to be set in `wildchar` option,
such as Ctrl-C and `<CR>`. This is just to make it clear to the user
they shouldn't be set, and is not required for this bug fix.

closes: 

8f4fb007e4

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-17 22:43:42 +08:00
zeertzjq
356a6728ac
vim-patch:9.0.2037: A few remaining cmdline completion issues with C-E/Y ()
Problem:  A few remaining cmdline completion issues with C-E/Y
Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not
          used at the end

Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not used at the end

A few places in the cmdline completion code only works properly when the
user hits Tab (or 'wildchar') at the end of the cmdline, even though
it's supposed to work even in the middle of the line.

For fuzzy search, `:e ++ff`, and `:set hl=`, fix completion code to make
sure to use `xp_pattern_len` instead of assuming the entire `xp_pattern`
is the search pattern (since it contains texts after the cursor).

Fix Ctrl-E / Ctrl-Y to not jump to the end when canceling/accepting a
wildmenu completion. Also, make them work even when not using
`set wildoptions+=pum` as there is no drawback to doing so.
(Related issue where this was brought up: )

closes: 

209ec90b9b

Cherry-pick ex_getln.c changes from patch 9.0.2035.

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-17 21:42:34 +08:00
zeertzjq
c9963e2212
vim-patch:9.0.2039: completion shows current word after completion restart ()
Problem:  completion shows current word after completion restart
Solution: remove the word being completed after completion restart

The word being completed is shown in a completion list after completion
restart, because it isn't removed from the current buffer before
searching for matches.

Also adjust `Test_complete_add_onechar` to match the new behavior.

closes: 

2e3cd52fa0

Co-authored-by: nwounkn <nwounkn@gmail.com>
2023-10-17 17:49:22 +08:00
zeertzjq
75b488d3ef
vim-patch:9.0.2025: no cmdline completion for ++opt args ()
Problem:  no cmdline completion for ++opt args
Solution: Add cmdline completion for :e ++opt=arg and :terminal
          [++options]

closes: 

989426be6e

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-15 17:52:08 +08:00
zeertzjq
d974a3dcbb
vim-patch:9.0.2032: cannot get mouse click pos for tab or virt text ()
Problem:  Cannot accurately get mouse clicking position when clicking on
          a TAB or with virtual text.
Solution: Add a "coladd" field to getmousepos() result.

closes: 

f5a94d5165
2023-10-15 17:19:01 +08:00
zeertzjq
a350fb2976
vim-patch:9.0.2031: TextChangedI may be triggered by non-insert mode change ()
Problem:  `TextChangedI` can trigger on entering Insert mode if there
          was previously a change not in Insert mode.
Solution: Make it trigger only when text is actually changed in Insert
          mode.

closes: 
closes: 

d7ae263af8

Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
2023-10-15 17:14:18 +08:00
Christian Clason
729a9c4c61 vim-patch:9.0.2024: no filetype detection for Debian sources
Problem:  no filetype detection for Debian sources
Solution: Add new deb822sources filetype

closes: 

bd734c3bea

Co-authored-by: James McCoy <jamessan@jamessan.com>
2023-10-14 16:41:33 +02:00
zeertzjq
bcda800933
vim-patch:9.0.2022: getmousepos() returns wrong index for TAB char ()
Problem:  When clicking in the middle of a TAB, getmousepos() returns
          the column of the next char instead of the TAB.
Solution: Break out of the loop when the vcol to find is inside current
          char. Fix invalid memory access when calling virtcol2col() on
          an empty line.

closes: 

b583eda703
2023-10-14 19:18:25 +08:00
zeertzjq
d2d38858d1
vim-patch:9.0.2018: complete_info() returns wrong index ()
Problem:  complete_info() returns wrong index
Solution: Make order of 'info' in completion_info consistent

Start the iteration from the same point and follow the same direction as
done when assigning the completion numbers. This way we remove the
dependence on the completion direction and make the order of 'info'
consistent.

closes: 
closes: 

69fb5afb3b

Co-authored-by: LemonBoy <thatlemon@gmail.com>
2023-10-12 08:21:01 +08:00
zeertzjq
e2406d119f
vim-patch:9.0.2017: linebreak applies for leading whitespace ()
Problem:  linebreak applies for leading whitespace
Solution: only apply linebreak, once we have found non-breakat chars in
          the line

closes: 
closes: 

dd75fcfbdf

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-12 06:49:11 +08:00
Christian Clason
7474874baa vim-patch:9.0.2011: INI files not detected
Problem:  INI files not detected
Solution: detect uppercase .INI as dosini files

It previo~1 only worked for lower-case .ini files, but upperc~1 .INI is
also somewhat common on account of DOS' old 8.3 upperc~2 only filena~1.

closes: 

4a82bdfaa8

Co-authored-by: Martin Tournoij <martin@arp242.net>
2023-10-11 23:54:41 +02:00
zeertzjq
c40a1c0f41
vim-patch:9.0.2009: cmdline-completion for comma-separated options wrong ()
Problem:  cmdline-completion for comma-separated options wrong
Solution: Fix command-line expansions for options with filenames with
          commas

Fix command-line expansions for options with filenames with commas

Cmdline expansion for option values that take a comma-separated list
of file names is currently not handling file names with commas as the
commas are not escaped. For such options, the commas in file names need
to be escaped (to differentiate from a comma that delimit the list
items). The escaped comma is unescaped in `copy_option_part()` during
option parsing.

Fix as follows:
- Cmdline completion for option values with comma-separated file/folder
  names will not start a new match when seeing `\\,` and will instead
  consider it as one value.
- File/folder regex matching will strip the `\\` when seeing `\\,` to
  make sure it can match the correct files/folders.
- The expanded value will escape `,` with `\\,`, similar to how spaces
  are escaped to make sure the option value is correct on the cmdline.

This fix also takes into account the fact that Win32 Vim handles file
name escaping differently. Typing '\,' for a file name results in it
being handled literally but in other platforms '\,' is interpreted as a
simple ',' and commas need to be escaped using '\\,' instead.

Also, make sure this new logic only applies to comma-separated options
like 'path'. Non-list options like 'set makeprg=<Tab>' and regular ex
commands like `:edit <Tab>` do not require escaping and will continue to
work.

Also fix up documentation to be clearer. The original docs are slightly
misleading in how it discusses triple slashes for 'tags'.

closes: 
related: 

54844857fd

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-10 09:15:21 +08:00
zeertzjq
4ab2b43c8f
vim-patch:9.0.2008: test: undofile left behind ()
Problem:  test: undofile left behind
Solution: cleanup undofile

fix: tmp file not deleted when running make test_undo

Temporary file `.Xtestfile.txt.un~` was left running `make test_undo`
and vim was configured with:
```
./configure --with-features=normal --enable-gui=no --enable-terminal
```

closes: 

b07b9dc4da

Co-authored-by: Dominique Pellé <dominique.pelle@tomtom.com>
2023-10-10 05:56:28 +08:00
zeertzjq
1ac588543d
vim-patch:9.0.1995: Invalid memory access with empty 'foldexpr' ()
Problem:  Invalid memory access when 'foldexpr' returns empty string.
Solution: Check for NUL.

closes: 

a991ce9c08
2023-10-07 06:32:06 +08:00