Commit Graph

14470 Commits

Author SHA1 Message Date
zeertzjq
cb086f1886 vim-patch:9.0.0739: mouse column not correctly used for popup_setpos
Problem:    Mouse column not correctly used for popup_setpos.
Solution:   Adjust off-by-one error and handle Visual line selection properly.
            (Yee Cheng Chin, closes vim/vim#11356)
17822c507c

The test_termcodes.vim test cannot be used. Use a Lua test instead.

(cherry picked from commit 72d2f5aef4)
2022-10-19 03:33:04 +00:00
zeertzjq
24769cf1b5 vim-patch:9.0.0786: user command does not get number from :tab modifier
Problem:    User command does not get number from :tab modifier.
Solution:   Include the number. (closes vim/vim#11393, closes vim/vim#6901)
208567e9d7
(cherry picked from commit a43a46f1e6)
2022-10-18 12:47:19 +00:00
Mahmoud Al-Qudsi
50f756ceb2 fix(qflist): avoid read of uninitialized memory
If the call to `qf_setup_state()` in `qf_init_ext()` fails, control flow jumps
to label `qf_init_end` where a call to `qf_update_buffer()` is made with
`old_last` as a function call argument.

Prior to this patch, `old_last` would not yet have been initialized to its
default value of `NULL`, resulting in `qf_update_buffer()` attempting to compare
against its uninitialized value (quickfix.c:3882) then later forwarding it to
`qf_fill_buffer()` where the address is dereferenced and repeatedly read from/
written to for performing core qflist operations.

Depending on what the default value of `old_last` was, the results may range
from a best case scenario of neovim terminating with SIGSEGV from an attempt to
dereference an invalid pointer (quickfix.c:4056) to memory corruption if it
contained some other value that results in `qfp` being initialized from
`old_last->qf_next` (after which it is subsequently written to and read from in
a fairly arbitrary fashion).

Though extremely unlikely, it's possible for there to be security considerations
as a user can ensure that the next call to `qf_setup_state()` fails.

This patch ensures that `old_last` is NULL-assigned before control flow jumps to
`qf_init_end`.

Closes #20639.

(cherry picked from commit 8a762eba60)
2022-10-18 02:16:00 +00:00
Lewis Russell
47454d0012 [Backport release-0.8] fix(decoration): call providers in win_update() earlier (#20699)
fix(decoration): call providers in win_update() earlier

Fixes #20651

(cherry picked from commit 2921de6a96)
2022-10-18 00:14:27 +01:00
github-actions[bot]
c52d256e91 [Backport release-0.8] fix(decoration): redraw correctly when re-using ids (#20708)
Co-authored-by: Lewis Russell <lewis6991@gmail.com>
2022-10-17 22:07:49 +01:00
zeertzjq
89fbffff13 vim-patch:9.0.0616: spell test fails because error message changed
Problem:    Spell test fails because error message changed.
Solution:   Adjust expected error message.
371951d0c3
(cherry picked from commit a9452cf3d5)
2022-10-17 13:02:22 +00:00
zeertzjq
7ba968ef3b vim-patch:9.0.0614: SpellFileMissing autocmd may delete buffer
Problem:    SpellFileMissing autocmd may delete buffer.
Solution:   Disallow deleting the current buffer to avoid using freed memory.
ef976323e7
(cherry picked from commit 6bc2d6b66b)
2022-10-17 13:02:22 +00:00
zeertzjq
8595f0298a vim-patch:8.1.0342: crash when a callback deletes a window that is being used
Problem:    Crash when a callback deletes a window that is being used.
Solution:   Do not unload a buffer that is being displayed while redrawing the
            screen. Also avoid invoking callbacks while redrawing.
            (closes vim/vim#2107)
94f01956a5

Omit parse_queued_messages(): N/A.
Cherry-pick a break statement from patch 8.1.0425.

(cherry picked from commit 65cbe0cc35)
2022-10-17 13:02:22 +00:00
github-actions[bot]
7a011cb58d vim-patch:9.0.0750: crash when popup closed in callback (#20660)
vim-patch:9.0.0750: crash when popup closed in callback

Problem:    Crash when popup closed in callback. (Maxim Kim)
Solution:   In syntax_end_parsing() check that syn_block is valid.
0abd6cf62d
(cherry picked from commit 2a2ae32ceb)
2022-10-15 07:31:41 +08:00
github-actions[bot]
f294712d8c [Backport release-0.8] doc (#20616)
docs: various

- increase python line-length limit from 88 => 100.
- gen_help_html: fix bug in "tag" case (tbl_count => tbl_contains)

ref #15632
fix #18215
fix #18479
fix #20527
fix #20532

Co-authored-by: Ben Weedon <ben@weedon.email>
(cherry picked from commit f37cd2bb15)

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2022-10-12 05:08:18 -07:00
Wei Tang
aaee148392 refactor: explicitly convert HANDLE to intptr_t for _open_osfhandle()
Problem:
The first parameter of "_open_osfhandle()" is an intptr_t; however, a HANDLE is passed.
The official documentation of [_open_osfhandle](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/open-osfhandle) suggests to cast the HANDLE to intptr_t.
MSVC/cl is able to perform an implicit type cast.
However, LLVM/clang-cl will generate an compilation error.

Solution:
Explicitly convert HANDLE to intptr_t for _open_osfhandle().

(cherry picked from commit 63ab3337e0)
2022-10-11 03:30:35 +00:00
zeertzjq
bca4588e17 vim-patch:9.0.0713: <amatch> of MenuPopup event is expanded like a file name
Problem:    <amatch> of MenuPopup event is expanded like a file name.
Solution:   Do not expand <amatch> for MenuPopup. (closes vim/vim#11328)
c601d988b6
(cherry picked from commit 4b2c5be6e6)
2022-10-10 13:27:01 +00:00
github-actions[bot]
126e434fec [Backport release-0.8] fix(lua): assert failure with vim.regex() error inside :silent! (#20560)
Co-authored-by: Rustum Zia <ziarustum@gmail.com>
Co-authored-by: RZia <36330543+grassdne@users.noreply.github.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-10-10 08:43:57 +08:00
zeertzjq
68eb063416 fix(tui): resume main thread if suspending isn't implemented
Not doing anything is better than hanging.

(cherry picked from commit 356332b4b2)
2022-10-08 12:18:31 +00:00
zeertzjq
8fc775e3a4 fix: find multibyte file name in line
And remove unnecessary unsigned casts in fold marker comparison.

(cherry picked from commit 6113587138)
2022-10-07 01:43:55 +00:00
zeertzjq
d66e7a13c9 fix(ui): setting 'cmdheight' with global statusline
(cherry picked from commit 14d02bb13a)
2022-10-07 00:53:24 +00:00
zeertzjq
9857cc1dbf vim-patch:9.0.0670: no space for command line when there is a tabline
Problem:    No space for command line when there is a tabline.
Solution:   Correct computation of where the command line should be.
            (closes vim/vim#11295)
c9f5f73206
(cherry picked from commit 31996f7748)
2022-10-06 12:04:36 +00:00
zeertzjq
947ec159ae vim-patch:9.0.0665: setting 'cmdheight' has no effect if last window was resized (#20502)
Problem:    Setting 'cmdheight' has no effect if last window was resized.
Solution:   Do apply 'cmdheight' when told to.  Use the frame height instead
            of the cmdline_row.  (closes vim/vim#11286)
0816f473ab
2022-10-06 09:46:46 +08:00
Enan Ajmain
ce422ba763 fix: :! pwsh redirection for command not found
Problem:
If the shell command passed to the filtered bang command isn't found,
the error isn't redirected to the temp.out file when shell is set to
powershell.

Solution: Use anonymous function with Invoke-Command operator (&).
(cherry picked from commit f2482b3b53)
2022-10-03 20:20:35 +00:00
Enan Ajmain
bb9c5c3f60 fix: make_filter_cmd for :! powershell
Problem:
`Start-Process` requires the command to be split into the shell
command and its arguments. Previously it was done by parsing, which
didn't handle cases such as
  - commands with escaped space in their filepath
  - quoted commands with space in their filepath

Solution:
Use
  - `pwsh -Command` instead of `Start-Process`
  - `Get-Content` instead of `-RedirectStandardInput`
  - `Out-File` instead of `-RedirectStandardOutput`

(cherry picked from commit b4d42bb905)
2022-10-03 20:20:35 +00:00
zeertzjq
4db8c25bda fix(folds): fix fold marker multibyte comparison
(cherry picked from commit 98ef374f10)
2022-10-02 08:33:08 +00:00
Justin M. Keyes
892da763bb fix(dist): update neovim-qt, win32tools.zip #20413
- fix regression by #20411
  - `diff.exe` is required for non-default 'diffopt' (diffopt=filler, diffopt=context, …)
  - the names of some required nvim-qt DLLs changed
2022-09-30 07:53:10 -07:00
Justin M. Keyes
ad6af3c1a9 dist(win): update neovim-qt, win32tools.zip #20411
- update curl.exe (+ ca bundle), tee.exe, xxd.exe
- remove diff.exe because `diffopt=internal` is now the default
- update neovim-qt
2022-09-30 04:24:46 -07:00
bfredl
37a1c0914d feat: update unicode tables 2022-09-30 10:45:51 +02:00
bfredl
5399513fd0 Merge pull request #20343 from zeertzjq/virt-lines-vcol
fix(extmarks): make virt_lines always start at 0 virtcol
2022-09-30 10:15:51 +02:00
bfredl
b414e9fdbb Merge pull request #20364 from zeertzjq/parse-cmd-omit
fix(api)!: nvim_parse_cmd omit "count" "range" "reg" if not supported
2022-09-30 09:59:45 +02:00
dundargoc
df646572c5 docs: fix typos (#20394)
Co-authored-by: Raphael <glephunter@gmail.com>
Co-authored-by: smjonas <jonas.strittmatter@gmx.de>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-09-30 09:53:52 +02:00
zeertzjq
cb62592bcb fix(api)!: nvim_parse_cmd omit "count" "range" "reg" if not supported 2022-09-30 11:24:23 +08:00
Famiu Haque
e46eef75ac feat(nvim_cmd): allow using first argument as count
Allows `nvim_cmd` to use the first argument as count for applicable
commands. Also adds support for non-String arguments to `nvim_cmd`.
2022-09-29 19:31:40 +06:00
James McCoy
c7cc6591c1 Merge pull request #20381 from cryptomilk/asn-vterm
build(deps): require libvterm version 0.3
2022-09-29 07:00:44 -04:00
James McCoy
0f04c14c0d Merge pull request #20382 from cryptomilk/asn-termkey
build(deps): require libtermkey version 0.22
2022-09-29 06:59:28 -04:00
zeertzjq
45707c1eae fix(api): fix nvim_cmd crash with filename expansion (#20397) 2022-09-29 16:04:14 +08:00
zeertzjq
1cf44d6f57 fix(column): move sign sentinel after inserting/deleting lines (#20400) 2022-09-29 15:48:39 +08:00
zeertzjq
bafeb32b95 fix(spell): correct spell move behavior without "noplainbuffer" (#20386) 2022-09-28 21:55:22 +08:00
bfredl
3965210055 Merge pull request #20375 from famiu/refactor/get_option
refactor: replace unnecessary helper functions in optionstr.c
2022-09-28 14:28:12 +02:00
zeertzjq
35e2c4a2ed fix(lua): fix architecture-dependent behavior in usercmd "reg" (#20384)
I don't think using an integer as a NUL-terminated string can work on
big-endian systems, at least.

This is also not tested. Add a test.

Also fix a mistake in the docs of nvim_parse_cmd.
2022-09-28 18:27:59 +08:00
dundargoc
d7358118aa fix: compiler warnings from clang 15 (#20321)
Add -Wno-strict-prototypes flag to external dependencies to suppress
cjson warnings. These needs to be fixed upstream first.
2022-09-28 10:53:44 +02:00
Andreas Schneider
6917a2e569 build(deps): require libvterm version 0.3 2022-09-28 10:13:48 +02:00
Andreas Schneider
6427dc8ab6 build(deps): require libtermkey version 0.22
Reduces #ifdef code.
2022-09-28 09:41:18 +02:00
Famiu Haque
4b7904d16b refactor: replace unnecessary helper functions in optionstr.c
Replaces unnecessary helper functions in `optionstr.c` such as
`get_option_flags()`, `get_option_fullname()`, `set_option_flag()`,
`is_global_option()`, etc. with a single `get_option()` helper function
that allows direct access to the `options` array.

Also refactors `f_exists()` to use `get_varp_scope` instead of using
`get_option_tv`. This opens up the path for removing `getoptions_T`
altogether later down the line since the hidden option logic is no
longer needed.
2022-09-28 09:29:43 +06:00
zeertzjq
e6c214033a fix(window): fix equalization with cmdheight=0 (#20369) 2022-09-28 06:22:11 +08:00
bfredl
d84abfeb1d Merge pull request #15373 from smolck/lua-notify-dictwatcher
fix(nvim): notify dict watchers on nvim_set_var and vim.g setter
2022-09-27 18:16:58 +02:00
ObserverOfTime
f46060c4cb vim-patch:9.0.0604: luacheckrc file is not recognized (#20371)
Problem:    Luacheckrc file is not recognized.
Solution:   Use lua filetype for luacheckrc. (closes vim/vim#11236)
49c311c9b1
2022-09-27 16:10:19 +02:00
smolck
c7d30c152d fix(api): notify dict watchers on nvim_set_var and vim.g setter
Co-authored-by: bfredl <bjorn.linse@gmail.com>
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
2022-09-27 14:47:53 +02:00
Christian Clason
fe0727a1bf vim-patch:9.0.0602: new TypeScript extensions are not recognized
Problem:    New TypeScript extensions are not recognized.
Solution:   Recognize .mts and .cts files. (closes vim/vim#11237)
7fc6c0e4da
2022-09-27 13:04:34 +02:00
Christian Clason
e176f9dacf vim-patch:9.0.0600: GYP files are not recognized
Problem:    GYP files are not recognized.
Solution:   Recognize GYP files. (closes vim/vim#11242)
d324742292
2022-09-27 12:39:09 +02:00
Christian Clason
760a8754c0 vim-patch:9.0.0599: latexmkrc files are not recognized
Problem:    Latexmkrc files are not recognized.
Solution:   Use Perl filetype for latexmkrc files. (closes vim/vim#11241)
cde0319385
2022-09-27 12:37:44 +02:00
zeertzjq
1d337d4e2f vim-patch:9.0.0595: extra newline in messages after a verbose shell message (#20359)
Problem:    Extra newline in messages after a verbose shell message.
Solution:   Output the newline with msg_putchar_attr(). (closes vim/vim#11233)
            Make it possible to filter a screendump before comparing it.
1190139ed0

Cherry-pick Test_message_more_scrolledback() from patch 9.0.0592 because
Nvim already behaves as intended.
2022-09-27 08:29:21 +08:00
zeertzjq
7e98821e56 fix(ui): redraw end of buffer if last line is modified (#20354) 2022-09-27 06:33:48 +08:00
zeertzjq
be693462d5 fix(ui): allow redrawing statusline when msgsep is used (#20337) 2022-09-26 21:23:43 +08:00