Commit Graph

13063 Commits

Author SHA1 Message Date
zeertzjq
1bbe8ec282 vim-patch:8.2.3110: a pattern that matches the cursor position is complicated
Problem:    A pattern that matches the cursor position is bit complicated.
Solution:   Use a dot to indicate the cursor line and column. (Christian
            Brabandt, closes vim/vim#8497, closes vim/vim#8179)
04db26b360

Also use `n = ++vcol` in regexp_bt.c as `++vcol` alone fails lint.
2022-03-30 08:35:13 +08:00
zeertzjq
e5428d10b5 vim-patch:8.1.0439: recursive use of getcmdline() still not protected (#17726)
Problem:    Recursive use of getcmdline() still not protected.
Solution:   Instead of saving the command buffer when making a call which may
            cause recursiveness, save the buffer when actually being called
            recursively.
438d176e35

Co-authored-by: zeertzjq <zeertzjq@outlook.com>

Clear ccline earlier in save_cmdline() if ccline is in use so that
ccline.prev_ccline can be assigned.
2022-03-30 08:32:12 +08:00
zeertzjq
2f37823703 vim-patch:8.2.4646: using buffer line after it has been freed (#17907)
Problem:    Using buffer line after it has been freed in old regexp engine.
Solution:   After getting mark get the line again.
b55986c52d
2022-03-30 07:44:12 +08:00
dundargoc
e7ac16425c vim-patch:8.2.4473: Coverity warns for not checking return value of ftell() (#17914)
Problem:    Coverity warns for not checking return value of ftell().
Solution:   Bail out if ftell() returns a negative value.
416b5f4894
2022-03-30 05:54:02 +08:00
zeertzjq
a9665bb12c fix(event-loop): duplicate display updating logic in vgetorpeek() (#17913) 2022-03-30 05:25:00 +08:00
dundargoc
29aa08a09d vim-patch:8.2.3449: sort fails if the sort compare function returns 999 (#17909)
Problem:    Sort fails if the sort compare function returns 999.
Solution:   Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes vim/vim#8884)
c04f62346b
2022-03-30 04:14:37 +08:00
dundargoc
7a6978ba29 vim-patch:8.2.3551: checking first character of url twice (#17910)
Problem:    Checking first character of url twice.
Solution:   Only check once. (closes vim/vim#9026)
94e7d345c1
2022-03-30 02:23:58 +08:00
dundargoc
524f6294a3 build(clint): link to wiki when accessing list_T internals directly (#17876) 2022-03-29 22:27:57 +08:00
zeertzjq
ba257d74b1 fix(decorations): do not put empty virt_text (#17872) 2022-03-29 19:56:45 +08:00
Lewis Russell
81d7628c3f vim-patch:8.2.4644: redrawing too often when 'relativenumber' is set (#17756)
Problem:  Redrawing too often when 'relativenumber' is set.
Solution: Only redraw when the cursor line changed. (Lewis Russell,
          closes vim/vim#10040)
1624639ec8
2022-03-29 19:37:42 +08:00
zeertzjq
3cc6cfecf3 vim-patch:8.2.4640: some boolean options use "long" instead of "int" (#17896)
Problem:    Some boolean options use "long" instead of "int".
Solution:   Adjust the type. (James McCoy, closes vim/vim#10033)
8be423b7ac

N/A patches for version.c:

vim-patch:8.2.4641: may mark the wrong window for redrawing

Problem:    May mark the wrong window for redrawing.
Solution:   Use redraw_win_later(). (closes vim/vim#10032)
471b3aed3e
2022-03-29 11:57:04 +08:00
zeertzjq
ab02b28b4e vim-patch:8.2.4630: 'cursorline' not always updated with 'culopt' is "screenline"
Problem:    'cursorline' not always updated with 'cursorlineopt' is
            "screenline".
Solution:   Call check_redraw_cursorline() more often. (closes vim/vim#10013)
bf269ed0b0

Code was reverted in patch 8.2.4638, so this just ports the test.
2022-03-28 06:15:26 +08:00
zeertzjq
4baeb96c1b vim-patch:8.2.4638: superfluous check if a redraw is needed for 'cursorline'
Problem:    Superfluous check if a redraw is needed for 'cursorline'.
Solution:   Remove check_redraw_cursorline(). (closes vim/vim#10030, closes vim/vim#10029)
3e559cd884

redraw_after_callback() is N/A.
Omits changes that just revert code from patch 8.2.4630.
2022-03-28 06:15:26 +08:00
Justin M. Keyes
72652cbc46 feat(test): use nvim_exec in helpers.source() #16064
helpers.source() was a hack to work around the lack of anonymous
:source. Its "create tempfile" behavior is not a required part of most
tests that use it.

Some tests still need the old "create tempfile" behavior either because
they test SID behavior, or because of missing nvim_exec features: #16071
2022-03-27 10:25:55 -07:00
Famiu Haque
05edab85d7 refactor: assume STATUS_HEIGHT to be 1 (#17804)
Since https://github.com/neovim/neovim/pull/17790 being merged means we can assume the value of `STATUS_HEIGHT` to always be 1, this commit removes code that's unnecessary if `STATUS_HEIGHT` is 1.
2022-03-27 08:33:54 -07:00
zeertzjq
ae0a43ec23 fix(tabpage): correct check for failure to close window
Avoid closing window 999 times.
2022-03-27 10:01:35 +08:00
zeertzjq
f4f18a9833 vim-patch:8.2.4631: crash when switching window in BufWipeout autocommand
Problem:    Crash when switching window in BufWipeout autocommand.
Solution:   Put any buffer in the window to avoid it being NULL.
            (closes vim/vim#10024)
347538fad0

win_init_empty() cannot be made static because it is used in autocmd.c
2022-03-27 10:01:07 +08:00
Javier Lopez
a490db5ba8 refactor!: rename nvim_do_autocmd to nvim_exec_autocmd (#17854)
according to established code standards (`:h dev-api`)
2022-03-26 15:34:56 +01:00
zeertzjq
111dd6c322 Merge pull request #17869 from dundargoc/vim-8.2.3943
vim-patch:8.2.3943: compiler warning from gcc for uninitialized variable
2022-03-26 22:27:03 +08:00
かわえもん
85821d8b6f docs(api): fix wrong documentation of nvim_create_autocmd (#17870)
also add doc changes from typofix PR
2022-03-26 13:21:32 +01:00
Dundar Göc
82304038a2 vim-patch:8.2.3943: compiler warning from gcc for uninitialized variable
Problem:    Compiler warning from gcc for uninitialized variable.
Solution:   Initialize variable. (closes vim/vim#9429)
491669701c
2022-03-26 12:12:03 +01:00
zeertzjq
fb5587d2be Merge pull request #17839 from zeertzjq/vim-8.2.4281
vim-patch:8.2.{4281,4327}: fix two crashes with quickfix and wiping buffer
2022-03-26 12:59:34 +08:00
zeertzjq
a70b39965b fix(tui): avoid using uninitialized memory in kitty (#17866) 2022-03-26 10:48:31 +08:00
zeertzjq
d8b4f3e3b8 vim-patch:8.2.4327: may end up with no current buffer
Problem:    May end up with no current buffer.
Solution:   When deleting the current buffer to not pick a quickfix buffer as
            the new current buffer.
e3537aec2f

The test cannot be ported as-is because Nvim doesn't support "-Z"
command line argument. Just use only "--clean" instead.
2022-03-26 09:51:59 +08:00
zeertzjq
19bbc43947 vim-patch:8.2.4281: using freed memory with :lopen and :bwipe
Problem:    Using freed memory with :lopen and :bwipe.
Solution:   Do not use a wiped out buffer.
9b4a80a665

Cherry-pick some indent changes from patch 8.2.1432.
2022-03-26 09:02:42 +08:00
zeertzjq
9530c2d6d8 vim-patch:8.2.4626: Visual area not updated when removing sign in Visual mode (#17864)
Problem:    Visual area not fully updated when removing sign in Visual mode
            while scrolling.
Solution:   Adjust check for topline. (closes vim/vim#10017)
abb6fbd14d
2022-03-26 08:52:54 +08:00
zeertzjq
c2378be3dd vim-patch:8.2.3453: autocmd not executed when editing a directory (#17846)
Problem:    Autocmd not executed when editing a directory ending in a path
            separator inside try block.
Solution:   Return NOTDONE instead of FAIL. (closes vim/vim#8885)
40fa12aea3
2022-03-26 08:27:29 +08:00
dundargoc
876d22fca9 fix(clang/'Dead store'): do not assign endcol (#17788) 2022-03-25 18:02:42 -06:00
dundargoc
61205c1def chore: fix typos (#17755)
Co-authored-by: Jordan Haine <jhaine@securitycompass.com>
2022-03-25 19:57:59 +01:00
Javier Lopez
174deafcef docs(api): improve autocommand docs (#17545)
[skip ci]
2022-03-25 19:24:53 +01:00
Gregory Anders
b81c310d49 fix(tui): correct CSI sequence (#17844)
Follow up to #17771. The sequence `CSI > 4 ; 1 m` does not enable
distinguishing all available keys; notably, it excludes `<Tab>`. Using
`CSI > 4 ; 2 m` tells the terminal to disambiguate *all* keys, which is
much more useful.

The meaning of the final parameter is documented [here][1].

[1]: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys
2022-03-24 13:11:04 -06:00
bfredl
39af40580a Merge pull request #17809 from dundargoc/PVS/V1019
fix(PVS/V1019): compound assignment expression is used inside condition
2022-03-24 18:37:23 +01:00
Dundar Göc
93e0d9b556 fix(PVS/V1019): compound assignment expression is used inside condition 2022-03-24 17:57:36 +01:00
Gregory Anders
a11ff55555 feat(tui): enable CSI u keys
On TUI startup write the CSI sequence that signals to the controlling
terminal that Neovim supports the CSI u scheme for encoding modifiers
documented in [1].

This is similar to, but distinct from, Vim's usage of the `t_TI` and
`t_TE` variables to handle Xterm's `modifyOtherKeys` setting. For a
longer explanation on those differences see [2]. Since Neovim uses
libtermkey for key input handling, we use the CSI u encoding rather than
Xterm's modifyOtherKeys encoding.

[1]: http://www.leonerd.org.uk/hacks/fixterms/
[2]: https://invisible-island.net/xterm/modified-keys.html
2022-03-24 07:13:49 -06:00
zeertzjq
3b28bd57f9 Merge pull request #17821 from zeertzjq/vim-patch-cursorline
vim-patch:8.2.{4591,4614}: cursorline redrawing
2022-03-24 20:28:46 +08:00
bfredl
1194856b31 Merge pull request #17740 from dundargoc/doxygen/memline
refactor(memline): convert function comments to doxygen format
2022-03-24 13:15:20 +01:00
zeertzjq
4a11c7e56f chore(nvim_paste): assert the correct String (#17752) 2022-03-24 19:40:00 +08:00
dundargoc
534f5a419d refactor: convert function comments to doxygen format (#17710) 2022-03-24 12:17:21 +01:00
Lewis Russell
fcd57980f9 chore: add additional compiler flags (#17815)
Added:
  - -Wdouble-promotion
  - -Wmissing-noreturn
  - -Wmissing-format-attribute
  - -Wsuggest-attribute={pure,const,malloc,cold}

Resolves: #343
2022-03-24 12:14:04 +01:00
Dundar Göc
8b7f818ee7 refactor(memline): convert function comments to doxygen format 2022-03-24 11:19:15 +01:00
bfredl
ed88ca7503 feat(input): enable <tab>/<c-i>, <cr>/<c-m>, <esc>/<c-[> pairs unconditionally 2022-03-24 11:02:39 +01:00
zeertzjq
d7488bf386 feat(input)!: delay some conversions to vgetc() 2022-03-24 11:02:39 +01:00
zeertzjq
c29a14d1fa perf(screen): reduce cursorline redrawing when jumping around
vim-patch:8.2.4614: redrawing too much when 'cursorline' is set

Problem:    Redrawing too much when 'cursorline' is set and jumping around.
Solution:   Rely on win_update() to redraw the current and previous cursor
            line, do not mark lines as modified. (closes vim/vim#9996)
c20e46a4e3

This doesn't match the patch exactly, because I missed some lines when
porting patch 8.1.2029, and these lines were removed in this patch.

This also makes win_update() always update for 'concealcursor' like how
it always updates for 'cursorline', as 'cursorline' and 'concealcursor'
redrawing logic has been unified in Nvim.

As redrawing for 'cursorline' now always only requires VALID redraw
type, it is no longer necessary to call redraw_for_cursorline() in
nvim_win_set_cursor().
2022-03-24 16:08:59 +08:00
zeertzjq
3e9b4e917d vim-patch:8.2.4591: cursor line not updated when a callback moves the cursor
Problem:    Cursor line not updated when a callback moves the cursor.
Solution:   Check if the cursor moved. (closes vim/vim#9970)
e7a74d5375

redraw_after_callback() is N/A. Nvim handles timers on the main loop.
2022-03-24 16:08:59 +08:00
zeertzjq
a72f338d76 fix(float): do not switch window before deleting last listed buffer (#17840)
Just allow close_windows() to close the current window instead.
This fixes wrong working directory or autocommands not being triggered.
2022-03-24 14:53:20 +08:00
zeertzjq
ff82b2785f fix(float): don't always switch window when deleting last listed buffer (#17836) 2022-03-24 11:56:22 +08:00
dundargoc
d3af109d10 fix(PVS/V560): ignore false "conditional expression is always false" (#17830)
"'qi' points to the global variable 'ql_info' or the window local location list stack 'wp->w_llist'.  The contents of these structures can be changed out-of-band by an autocmd."

https://github.com/vim/vim/pull/9993#issuecomment-1076544168
2022-03-24 06:25:20 +08:00
zeertzjq
06131370a4 refactor(memline.c): make swapfile_unchanged() return bool (#17827)
vim-patch:8.2.4613: return type of swapfile_unchanged() is wrong

Problem:    Return type of swapfile_unchanged() is wrong.
Solution:   Use "int". (closes vim/vim#10000  Yeah!)
3c5999e53d
2022-03-23 22:33:34 +08:00
zeertzjq
52fe8eae07 fix(screen): do not update syntax_last_parsed when drawing folded line (#17826) 2022-03-23 20:23:41 +08:00
zeertzjq
f5a3edb0c0 refactor: remove cpo-& behavior (#17745)
cpo-& has been removed, but its behavior was accidentally made the
default behavior. That should be removed instead.
2022-03-23 19:52:50 +08:00