commit 366d0c7887f76f0adc40671292db46f115c9317e
parent bbc74d51ad791edad1948178736589cb181236e8
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed, 18 Oct 2023 10:34:55 +0800
fix(move): check the correct buffer (#25698)
Diffstat:
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/nvim/move.c b/src/nvim/move.c
@@ -247,7 +247,7 @@ void update_topline(win_T *wp)
int old_topfill = wp->w_topfill;
// If the buffer is empty, always set topline to 1.
- if (buf_is_empty(curbuf)) { // special case - file is empty
+ if (buf_is_empty(wp->w_buffer)) { // special case - file is empty
if (wp->w_topline != 1) {
redraw_later(wp, UPD_NOT_VALID);
}
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua
@@ -3095,6 +3095,36 @@ it(':substitute with inccommand works properly if undo is not synced #20029', fu
baz]])
end)
+it(':substitute with inccommand does not unexpectedly change viewport #25697', function()
+ clear()
+ local screen = Screen.new(45, 5)
+ common_setup(screen, 'nosplit', long_multiline_text)
+ command('vnew | tabnew | tabclose')
+ screen:expect([[
+ ^ │£ m n |
+ {15:~ }│t œ ¥ |
+ {15:~ }│ |
+ {11:[No Name] }{10:[No Name] [+] }|
+ |
+ ]])
+ feed(':s/')
+ screen:expect([[
+ │£ m n |
+ {15:~ }│t œ ¥ |
+ {15:~ }│ |
+ {11:[No Name] }{10:[No Name] [+] }|
+ :s/^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ ^ │£ m n |
+ {15:~ }│t œ ¥ |
+ {15:~ }│ |
+ {11:[No Name] }{10:[No Name] [+] }|
+ |
+ ]])
+end)
+
it('long :%s/ with inccommand does not collapse cmdline', function()
clear()
local screen = Screen.new(10,5)